Найти в Дзене
MinecraftMain.Ru

Программисты, пора поиграть с внутренним кодом Minecraft!

Мы открыли часть кода игры! Создавать игры не просто. Конечно, это не сравнить с ракетостроением, нейрохирургией (эти вещи, вероятно, гораздо проще), но всё равно безумно сложно научиться программировать, и вам очень повезёт, если вы сможете приступить к созданию игр. Если бы у вас был доступ к дополнительным ресурсам… И вот, наши обожаемые друзья из стокгольмской команды Minecraft Java Edition могут вам кое-что предложить, открывая часть кода Minecraft в виде библиотек, которые вы сможете использовать, как только захотите! Хотите воспользоваться ими для улучшения своих модов Minecraft? Отличная идея! Думаете использовать в своих собственных проектах? Дерзайте, но не забудьте упомянуть о нас! Хотите воспользоваться случаем и помочь улучшить часть кода Minecraft Java Edition? Спасибо, мы очень это ценим! Подождите, а что такое «библиотеки» для игры? «Библиотеки — это небольшие кусочки игрового движка» — объясняет разработчик Java-версии Натан Адамс (также известный как Dinnerbone). — «
Оглавление

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

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

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

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

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

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

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

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

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

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

Библиотека Brigadier

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник: MinecraftMain.Ru

Все новости и статьи о Minecraft стекаются в этот дзен-канал! Обязательно подпишитесь на канал, чтобы всегда быть в курсе актуальных майнкрафт-событий!

P.S. А самый быстрый способ узнавать новости — это наш телеграм-канал!