Мы открываем часть кода игры!

Создание игр вещь непростая. Конечно, её нельзя сравнивать с ракетостроением или нейрохирургией (это вовсе пустяки...), но всё же научиться программировать уже большой успех, а если вы и вовсе сможете приступить к созданию игр, то вы явно родились в рубашке. А что, если бы у вас был доступ к дополнительным ресурсам…

И вот, наши многоуважаемые друзья из Стокгольмской команды Minecraft, которая работает над Java-версией игры, наконец-то, могут вам кое-что предложить — они открывают часть кода Minecraft в виде библиотек, которые вы сможете использовать, как только захотите! Хотите воспользоваться ими для улучшения своих модификаций для Minecraft? Великолепно! Создадите свой собственный проект на основе нашего кода? Вперёд, но не забудьте упомянуть нас! Хотите помочь нам улучшить часть кода Minecraft: Java Edition? Спасибо, мы будем очень благодарны!

Погодите-ка, что это вообще такое?

«Библиотеки — это небольшие частички игрового кода (движка – прим. Ред.)», — объясняет разработчик Java-версии Натан Адамс (также известный как Dinnerbone). «Мы выпускаем часть отдельных библиотек, которые использует Minecraft, в виде исходного кода.  Любой сможет воспользоваться ими по своему.»

О, это же наш любимый Minecraft, только, погодите-ка, а почему текст разноцветный? ЕРЕСЬ!

Мы планируем постепенно выпускать библиотеки. Они будут выпускаться под лицензией MIT, и это значит, что «практически любой сможет воспользоваться ими и внести свой вклад в улучшение нашего, уже почти общего игрового движка», — поясняет Натан.

«Или, если они, допустим, создают свою собственную игру, им не придётся переписывать или создавать свой код. Они могут просто воспользоваться нашим, который уже опробован и отлажен, поскольку наша игра, определённо, очень популярна!»

Это, возможно, самое скучное изображение, которое мы когда-либо публиковали на Minecraft.net. Ну, а что вы думали, разработка игр вещь не самая весёлая. Нажми сюда, и вы перейдёте на страницу GitHub, откуда сможете скачать библиотеку Brigadier.

BRIGADIER

«Я очень горжусь этим названием!, — говорит Натан, — Brigadier — это название командного движка, который используется в Minecraft». И это первая библиотека, которой вы сможете воспользоваться!

«Вы можете написать в игре что-то вроде /give Dinnerbone sticks, и этот текст передастся в движок. Там он пытается понять, что именно вы пытаетесь сделать.»

Minecraft сообщает движку: «Вот список того, что может делать игрок. Скажи мне, когда игрок попытается выполнить нечто подобное». Поэтому, когда игрок набирает /give Dinnerbone sticks в чате, это проходит через движок. Brigadier разбивает команду на части, проверят на ошибки и пытается быть максимально полезным. А ещё вы получите красивое всплывающее окно, где в процессе набора текста отобразится подсказка».

Надеемся, что это делает ввод команд более удобным и понятным!

Начните набирать команду, набрав «/» (слэш – прим. Ред.) в чате, а Brigadier предложит вам возможные варианты. Удобненько!
Разные части команды обозначены разным цветом. Сама команда (give) — серая, имя игрока (Dinnerbone) — голубое, а предмет, который игрок хочет получить (minecraft:stick) — солнечно жёлтый!
Полная команда окрашена во все цвета радуги (ну, почти)! Почему бы самому не попробовать воспользоваться Brigadier, скачав его отсюда?

Натан надеется, что сообщество Minecraft, получив доступ к библиотеке Brigadier, станет пользоваться, ну или хотя бы понимать команды. «Некоторые игроки даже не пользуются командами, потому что сам этот процесс выглядит непонятным, и я могу понять их,» — говорит Натан, — «и надеюсь, что в скором времени это изменится».

Brigadier берёт любой текст, который вы вводите в игре, и превращает его во что-то функциональное (так что вы обязаны поблагодарить Brigadier за все предметы, которые вы получили с помощью команд). «Многие думают, что это очень просто,» — говорит Натан — «но на самом деле, это не совсем так».

«Мы посчитали, что это может стать отличной проверкой системы. Очень хорошо, что люди наконец-то могут просто взять и использовать эти библиотеки в абсолютно любом проекте. И это не обязательно должна быть игра. Я слышал, что некоторые умудрились использовать эту библиотеку в чат-ботах для Telegram, что значит, что вы сможете отправить сообщение, а он выполнит то, что нужно!» Восхитительно!

Brigadier в открытом доступе всего неделю, а мы уже видели людей, пытающихся улучшить код и даже написать нормальный и понятный readme файл Натана! Стойте, вы что, пишете тексты для Натана бесплатно? Вы хотите лишить меня работы?!

DATA FIXER UPPER

«Название настолько глупое, что мы решили его оставить», — извиняясь, говорит Натан. DataFixerUpper делает именно то, что заложено в его названии (обновляет сохранённые данные – прим. Ред.). И это вторая библиотека, которой вы можете воспользоваться!

«Проблема, с которой мы столкнулись в Minecraft, и которая есть в любой игре, заключается в том, что форматы данных всё время меняются», — говорит Натан. «Мы добавляем новые вещи в Minecraft, а потом вносим изменения в то, как мы сохраняем файлы и всё, что с этим связано.»

При загрузке любого мира в Minecraft можно заметить, что там могут быть данные, которые не обновлялись больше шести лет, если игрок не посещал эти чанки за всё это время. И когда мы замечаем это, мы думаем: «Так, хорошо, эти данные уже довольно старые и нам нужно привести их в нормальный вид — в такой вид, который игра смогла бы прочесть.»

«У нас есть одна единица, которая использует DataFixerUpper, которая говорит Minecraft: «вот как превратить что-либо в формат данных, который будет использовать игра». И поэтому игра только после этого говорит: «вот как выглядят данные, и именно так я собираюсь их прочесть».»

«По сути, прежде чем Minecraft загружает чанки, он обращается к библиотеке DataFixerUpper, которая приводит их к текущему формату».

Непонятно? Неудивительно, библиотека DataFixerUpper — не так проста в использовании, как Brigadier. Но это одна из причин, почему мы сделали её доступной всем!

Мда, всё становится куда более техническим для простака вроде меня. Удачи, что ещё сказать!

Команда Java версии игры в будущем будет выпускать в открытый доступ и другие библиотеки. Одна из библиотек, которую мы рассматриваем, — Blaze3D. Это полностью переписанный движок рендеринга, которым мы будем использовать в Minecraft 1.14. Ну, а сейчас, почему бы вам не применить свой опыт программирования к уже доступным библиотекам? Не забудьте оставить отзыв на Github, или обратившись к Натану в Твиттере!

ЗАГРУЗИТЬ BRIEGADIER

ЗАГРУЗИТЬ DATA FIXER UPPER


Оригинал: minecraft.net

Подписывайтесь на «Mining Town» ВКонтакте и Twitter, чтобы быть в курсе всех Minecraft-новостей!