Мы открыли часть кода игры!

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

И вот, наши обожаемые друзья из стокгольмской команды Minecraft Java Edition могут вам кое-что предложить, открывая часть кода Minecraft в виде библиотек, которые вы сможете использовать, как только захотите!

Хотите воспользоваться ими для улучшения своих модов Minecraft? Отличная идея! Думаете использовать в своих собственных проектах? Дерзайте, но не забудьте упомянуть о нас! Хотите воспользоваться случаем и помочь улучшить часть кода Minecraft Java Edition? Спасибо, мы очень это ценим!

Подождите, а что такое «библиотеки» для игры?

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

 

Эй, это всеми любимый Minecraft. Но подождите, что это за раскрашенный текст? Ну и чудеса!

 

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

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

 

Это, наверное, самое скучное изображение на нашем сайте, но кто говорит, что программирование должно быть красивым?

 

Библиотека Brigadier

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

«Вы можете написать в игре что-то вроде /give Dinnerbone stick, и этот текст передаётся обработчику команд. И он пытается понять, что именно вы хотите сделать.»

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

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

Начните набирать команду, набрав «/» в чате, и Brigadier предложит вам варианты

 

Разные части команды обозначены разным цветом. Сама команда (give) — серая, имя игрока (Dinnerbone) — голубое, а предмет (minecraft:stick) — жёлтый!

 

Полная команда раскрашена как радуга! Ну, почти как радуга

 

Натан надеется, что сообщество Minecraft, получив доступ к библиотеке Brigadier, однажды сделает её очень удобной для пользователя.

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

Brigadier берёт строку, которую вы вводите в игре, и превращает её в функции, которые может выполнить игра (так что вы должны поблагодарить Brigadier за все предметы, которые получили с помощью команд).

«Многие думают, что это очень просто.» — говорит Натан. — «Но в действительности это очень запутанно».

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

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

 

Библиотека Data Fixer Upper

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

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

Когда мы загружаем любой мир в Minecraft, то там могут быть данные, которые не менялись больше шести лет, если игрок не посещал эти чанки все эти годы. По сути, прежде чем Minecraft загружает чанки, он обращается к библиотеке DataFixerUpper, которая приводит их к текущему формату».

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

 

Да, выглядит слишком технично, для такого простака, как я.

 

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

А сейчас, почему бы вам не применить свой опыт программирования к уже доступным библиотекам? Не забудьте отставить отзыв на Github, или обратившись к Натану в твиттере!

Загрузить библиотеку Brigadier

Загрузить библиотеку DataFixerUpper

 

We're opening up some of the game's code!

Том Стоун, Minecraft.net