Nukkit — много­обе­щающий ядрё­ный аналог PocketMine

Nukkit — это интересный проект, который, на мой взгляд, вполне имеет все шансы превратиться в интересную платформу для создания серверов для Minecraft Pocket Edition / Minecraft Windows 10 Edition.

Об этом проекте речь пойдёт ниже, однако сначала давайте остановимся на том, какие вообще существуют платформы для создания сервера для Minecraft Pocket Edition

Серверные платформы для Minecraft Pocket Edition

Официальной платформы для создания сервера Minecraft Pocket Edition / Minecraft Windows 10 Edition не существует. Теоретически, Вы можете запустить на компьютере Minecraft Windows 10 Edition (или попытаться запустить Minecraft Pocket Edition на Linux) и получить такой своеобразный ванильный сервер. Но… мы же ждём от сервера чего-то большего?!

PocketMine

В настоящее время существует, пожалуй, только один реальный способ создания сервера для MCPE — это сервер PocketMine-MP, рекомендуемая версия которого рассчитана на работу с Minecraft Pocket Edition 0.11 — т.е. безнадежно устарела. Когда выйдет версия для 0.13.0 — пока не ясно, при этом есть ещё один нюанс — платформой для проекта является php, т.е. сам сервер и плагины к нему пишутся на этом языке программирования. Конечно, php имеет ряд преимуществ: он достаточно прост в освоении и очень удобен… для создания сайтов. Он для этого и разрабатывался, поэтому делать на нём что-то ещё, на мой взгляд совсем не логично.

На мой взгляд, начиная разработку сервера для любой версии Майнкрафт, нельзя не забывать о bukkit’е — под эту платформу, написано (на Java) огромное множество плагинов. Система, которая позволит их достаточно просто переносить будет иметь явные преимущества перед всеми остальными. Лично мне совсем не хочется переносить какие-то из своих плагинов на PocketMine, а вот если бы он был написан на Java, то перенести практически любой плагин было бы достаточно просто и я с удовольствием этим бы занялся.

Dragonet

Можно попытаться создать сервер и на платформе Dragonet. Это тоже интересный проект: такой своеобразный комбайн, который не только содержит сразу два протокола — классический и для карманного Майнкрафта, но и предполагает запуск различных типов плагинов: Bukkit-плагины, Sponge-плагины и плагины на JavaScript (также планируется поддержка php-плагинов от PocketMine). Звучит впечатляюще, но у меня такой зоопарк доверия не вызывает. Возможно я не прав, но в любом случае к моменту, когда Dragonet превратится в стабильный пригодный для использования продукт у меня будет возможность пересмотреть свое мнение. И я буду только рад, если оно изменится.

MiNET

Серверная платформа, создаваемая с использованием C#. Пока для неё нет плагинов (по крайней мере в открытом доступе найти их не удалось), однако у системы похоже есть одно огромное преимущество: судя по всему по всему проект пользуется поддержкой проекта Hypixel, а такая поддержка многого стоит.

Один из тестовых серверов предлагаемый проектом — это как раз сервер Hypixel для Minecraft Pocket Edition.

Сервер: pe.hypixel.net — почему-то мой скин распространился на других игроков.
Сервер: pe.hypixel.net — почему-то мой скин распространился на других игроков.

Я с удовольствием попробовал сыграть на этом сервере и хочу отметить, что это была полноценная игра (не без каких-то недочетов).

Мобы, полноценный генератор миров, лодки, рельсы и вагонетки — вот список того, что не поддерживает платформа. Но уже и без этого можно обеспечить работу сервера с мини-играми.

ProtocolSupport — плагин для Spigot

Плагин ProtocolSupport для Spigot, разрабатываемый «отечественным производителем» — известным плагинотворцем Shevchik‘ом. На мой взгляд, это тоже очень интересное направление, которое вполне может дать результат, у которого будет громадное количество преимуществ перед другими проектами. Фактически Spigot+ProtocolSupport, позволят использовать огромнейшее количество плагинов на сервере Minecraft Pocket Edition. На текущий момент времени, как я понимаю, разработку пока ещё нельзя считать завершенной, при этом, тестовый сервер проекта работает очень быстро и по выглядит значительно лучше чем сервер Dragonet (нету глюков с двойной травой и цветами). Это как раз тот проект, за которым я обязательно буду следить и ждать момента, когда на его основе можно будет создать полноценный сервер для MCPE.

Nukkit

О существовании этого проекта я узнал совсем недавно. И на мой взгляд, Nukkit заслуживает того, чтобы поговорить о нём отдельно.

PocketMine + Bukkit = ?

Проект Nukkit появился относительно недавно: первые строки кода на github были размещены 23 мая, и на текущий момент он всё ещё далек от завершения. Сейчас уже можно попробовать его в действии, правда, у меня с этим возникли проблемы.

Nukkit написан полностью на Java, при этом, судя по всему, он хоть и писался под «впечатлением» от PocketMine — разработчик отдельно отмечает некоторую схожесть проектов, но безусловно у него есть и схожесть с BukkitAPI. По крайней мере, мне показалось, что без bukkit’а тут не обошлось.

На мой взгляд у тех, у кого есть опыт разработки плагинов для bukkit, изучить особенности Nukkit будет достаточно просто. Всё очень похоже и логично. И это безусловно очень большое преимущество.

Автор обещает большую скорость и стабильность сервера, по сравнению с PocketMine. Кроме того, с учетом, схожести с PocketMine, автор говорит о том, что тем кто создавал плагины на php будет довольно просто переписать их на Java. И это безусловно огромный плюс.

Я попробовал запустить сервер. Сначала у меня не получалось — при первой попытке удалось запустить сервер, подсоединиться к нему и повисеть в воздухе — почему-то не прогрузилась карта (возможно она просто не сгенерировалась). Но после того как перекачал билд сервера (разработка идёт полным ходом — новые версии, пусть пока нестабильные, выходят каждый день) всё заработало.

Ну куда же без команды /say :)
Ну куда же без команды /say :)

Вообще уже существует несколько пробных серверов, которые позволяют побродить в дебрях Nukkit’а. Если хотите попробовать, то озадачившись поиском, Вы быстро найдете парочку.

Первый плагин для Nukkit

Естественно, я сразу же решил попробовать написать плагин. И у меня это получилось с первой попытки! Да и со второй тоже. Я буквально за несколько минут написал два очень простых плагина для Nukkit.

Первый я назвал просто NoSteve, он призван запретить вход на сервер игрокам с именем Steve — ибо на MCPE такое стоит по умолчанию.

Screenshot_2015-12-06-11-09-02

Второй, — это порт ранее написанного (тоже очень просто) плагина SlashConsole, который я когда-то написал для Bukkit.

 

Если говорить о минусах проекта, то тут есть один очень важный: отсутствие достаточной информационной поддержки. Фактически, это своеобразная вещь в себе. Как о нём узнают сейчас люди — я не знаю, похоже вся информация распространяется от человека к человеку — по крайней мере так было со мной. У проекта нет ни форума ни какого-то сайта, на котором все заинтересованные могли бы делиться опытом. И если эта ситуация не изменится — это будет самоубийством хорошего начинания.

Вселяет надежду мысль, что авторы проекта это понимают: похоже в скором времени можно ожидать открытия сайта — доменные имена уже зарезервированы.

Сейчас же скачать и почитать о проекте можно только на GitHub’е, там же можно найти ссылку и скачать сам сервер Nukkit. Обсуждение же возможно пока только в виде комментариев к добавленному коду либо в чате проекта.

Скачать плагины:

NoSteve
SlashConsole
 

Кроме того, в чате проекта обнаружились русскоязычные участники, в кооперации с которыми была создана Группа ВК, куда приглашаю всех, кто заинтересовался новой серверной платформой.

 

 

 

 

28 thoughts on “Nukkit — много­обе­щающий ядрё­ный аналог PocketMine

        1. Олександр, возможно на php оно действительно быстрее ;)

          Но по большому счету, сейчас кроме Java ни одна среда не сможет обеспечить подобной гибкости для разработчика плагинов.
          Собственно, Minecraft стал таким популярным именно потому, что написан на Java.

          1. Олександр,
            я очень хорошо понимаю, чем Java отличается от C++ или, скажем, ассемблера. И знаю, что и почему быстрее.
            Однако, инициированный Вами спор бессмысленен. Просто потому, что за всё время существования майнкрафта, не было создано ни одной серверной платформы средствами отличными от Java, которая по удобству, гибкости и эффективности приблизилась бы к bukkit.

            Вообще Майнкрафт обязан своей популярности именно благодаря тому, что он был написан на Java. Все эти моды и плагины были созданы исключительно благодаря тому, что когда-то Нотч решил написать Майнкрафт на джаве.

            Вы, по сути, предлагаете сравнивать баккит с каким-то абстрактным сферическим конём в вакууме. Да, на c++ можно быстрее. Да у Java есть свои недостатки. Но баккит — это свершившийся факт. Успешный, удобный, гибкий.
            Именно поэтому меня радует появление Nukkit. Тем кто писал плагины на баккит, практически не придётся переучиваться, тогда как далеко не каждый побежал делать плагины на php для PocketMine или для какой-то другой системы.

            В общем, когда найдёте альтернативу bukkit’у написанную на чем угодно и как угодно, приходите — покажите. Обсудим, попробуем написать плагин. Сравним.

          2. Семён, не удивлюсь, если окажется так при соблюдении каких-то условий, но я никаких тестов не проводил. А в данном случае это был сарказм ;)

  1. Может оратору наконец-то стоит просто обновиться с пятой жавы и перестать везде кричать что жава медленная? Или еще лучше поизучать механику работы ЖВМ на сервере.

  2. Гибкость разработки плагинов это как раз о PHP а не о Java. Любой школьник может освоить php за пару недель, а с Java придётся попотеть. Как инсайдер скажу, что в компании, где я работаю(80% рынка серверов мобильного Minecraft) сделали ставку на nodejs именно по причине того, что технология доступна большему кругу лиц. Для производительности же был выбран C++. Java проигрывает обоим решениям поивсем показателям.
    Тем, кто кричит про популярность благодаря Java, рекомендую сначала посмотреть, сколько серверов работает на ней и сколько на PHP.

    1. Андрей, «те кто кричат» (уж извините, я обращаюсь к вам третьем лице) о популярности серверов на PHP, пусть сначала найдут альтернативу. Очень просто быть популярным, когда нет выбора.
      Однако, вспомните, откуда взялась популярность майнкрафта. Он стал популярен именно благодаря серверам. В первую очередь первым модам minecraft_server.jar — hMod (было что-то ещё но я уже не помню, а рыться и искать не хочу), а потом и bukkit. Без них не было бы популярного Майнкрафта и не было бы PocketMine.
      Сейчас на dev.bukkit.org загружено больше 12000 плагинов.
      В разделе plugins на форуме PocketMine сейчас — 471 тема. Т.е. несмотря на популярность Minecraft Pocket Edition говорить о популярности PocketMine по сравнению с bukkit пока очень и очень рано.
      Фактически сейчас уже можно взять и написать мост под Nukkit, который конечно не прибавит производительности, но позволит запускать огромное число плагинов. Ну а переносить их по Nukkit — очень и очень просто: для этого даже не надо изучать php.

      Да и ещё. Гибкость Java означает вовсе не низкий начальный уровень вхождения.
      Если Вы хотите создать плагин на php или на Java, у Вас должны быть приблизительно одинаковые навыки, и это вовсе не уровень школьника, который внезапно проснулся с мыслью «а не сделать ли мне сегодня сайт».

      1. Igor, я в целом согласен, лично я бы отдал предпочтение Java, НО(!) всё-таки тут играет роль именно порого вхождения. Господин Shoghi Cervantes, который так, между прочим нынче работает в Mojang выбрал PHP именно за его порог вхождения и простоту расширения. Альзо, нельзя отрицать, что интерпретируемый скриптовый язык как-то сам по себе намного больше подходит для написания плагинов. В случае с Java было бы нормально если бы внедрили либо какой-нибудь свой domain-specific language, либо взяли тот же Lua для плагинов. А пока этого нет — то спорить о расширяемости просто глупо.

      2. Igor,
        + опять таки повторюсь — зачем тогда использовать Java, когда можно взять C++? Если речь идет о производительности, то с С++ Java поспорить не может. Если говорить о простоте расширяемости, то они стоят примерно на одном уровне.

        1. Андрей, то что Шоги, работает в Mojang — вобщем-то ничего не значит. Dinnerbone тоже начинал как разработчик Bukkit. У Шоги единственное преимущество — это оперативный доступ к протоколу. Но даже в этом случае, он не смог обеспечить оперативный выход сервера для 0.13, 0.12 и для 0.11.
          Кроме того, сейчас существующие 471 плагин для PocketMine «сломаются» с переводом PocketMine на PHP7. Причины такого перехода понятны. Старый «php» почему-то торомозит.
          Скриптовый язык подходит дя написания скриптов, а не плагинов. Под bukkit есть и Lua и Python и Skript, VarTriggers и ReActions.
          Но они нужны и позиционируются именно как инструмент для тех, кто не может или не хочет сам писать плагины.
          Перенести подобные плагины на любую другую платформу на Java будь то Sponge (вот идиоты, тоже на Java стали делать ;)) или Nukkit — дело техники.

          Спорить с тем, что на С++ быстрее — никто не будет (при желании можно, правда, и медленнее ;)). Главное, что за всё время существования Майнкрафта ещё не было создано ни одного сервера на С++, который смог бы хоть что-то. А стартовали не раз.
          Может дело не только в потенциальной производительности?

          Сейчас главное преимущество ЛЮБОЙ Java-платформы для Майнкрафт — это способность очень быстрого переключения плагинотворцев с bukkit на Java.

          Я давно смотрел на PocketMine, но так и не вдохновился настолько чтобы перенести самый простейший плагин. С Nukkit же я перенёс простенький (просто чтобы попробовать) буквально за несколько минут. Мне не пришлось изучать документацию, новый синтаксис и т.п.

          Лично для меня выбор очевиден :)

          1. Igor, ну выбирай) Пока 80% рынка мобильного майнкрафта за PHP — публика у плагинов будет соответствующая, вот и всё)
            Альзо, с переходом на PHP 7 ничего особо не сломается, там нет таких фич, которые бы всё ломали без обратной совместимости, за исключением некоторых устаревших функций, которые и так никто не пользует. Во всяком случае, с форком PocketMine у меня проблем никаких не возникло при переносе на 7ю версию.

            > не было создано ни одного сервера на С++, который смог бы хоть что-то.
            Это ты с потолка взял?
            https://github.com/cuberite/cuberite

            И еще — если нет OpenSource сервера — это не значит, что его нет совсем))) это так, маленький намёк)

            Ну в общем-то мне твоя позиция ясна, не к чему спорить, это не очень продуктивно и не очень интересно) Я не из удовольствия занимаюсь разработкой серверов для мобильного MC, мне за это деньги платят)

  3. А то, что Сервантес работает в майнкрафт означает, что он больше не работает над pocketmine, что объясняет задержки с релизами. Форк покетмайна Katana довольно быстро реагирует на изменения в протоколе…

    1. Андрей, и это отлично. Только непонятно, почему теперь другие варианты не имеют права на существование?
      Многообразие можно только приветствовать. Разработчики Nukkit выбрали Java, я это приветствую.
      Вы не согласны с их выбором — тогда разрабатывайте свой сервер на C++ (вы же этим занимаетесь), но при этом вы должны понимать, что он будет существовать только для Вас и для Ваших клиентов.

      1. Igor, не-не, я ни разу не сказал, что сервер на Java это плохо в принципе, или что он не имеет право на существование! Наоборот — чем больше технологий, чем шире выбор, тем лучше всем. В конце концов, мы черпаем идеи из новых реализаций, каждый стремится сделать лучший сервер и иногда появляются действительно стоящие решения. Мой же выпад был только в сторону гибкости разработки плагинов под Java

        1. Андрей, ну значит мы друг-друга не поняли и развели холивар ;)
          Java применительно к bukkit, с точки зрения плагинов была хороша, тем что я мог достучаться до когда Minecraft’а, даже если он был обфуцирован и в итоге получить то, что средствами API сделать было невозможно.
          У Nukkit, конечно такого преимущества нет, потому что нет официального сервера, но у него преимущество по части лёгкости перехода и переноса плагинов.
          А вообще, я там в статье упомянул несколько серверов и все они как-то да работают. Вон у hypixel’а даже полноценный сервер с минииграми.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *