Мы открыли часть кода игры!
Создавать игры не просто. Конечно, это не сравнить с ракетостроением, нейрохирургией (эти вещи, вероятно, гораздо проще), но всё равно безумно сложно научиться программировать, и вам очень повезёт, если вы сможете приступить к созданию игр. Если бы у вас был доступ к дополнительным ресурсам…
И вот, наши обожаемые друзья из стокгольмской команды Minecraft Java Edition могут вам кое-что предложить, открывая часть кода Minecraft в виде библиотек, которые вы сможете использовать, как только захотите!
Хотите воспользоваться ими для улучшения своих модов Minecraft? Отличная идея! Думаете использовать в своих собственных проектах? Дерзайте, но не забудьте упомянуть о нас! Хотите воспользоваться случаем и помочь улучшить часть кода Minecraft Java Edition? Спасибо, мы очень это ценим!
Подождите, а что такое «библиотеки» для игры?
«Библиотеки — это небольшие кусочки игрового движка» — объясняет разработчик Java-версии Натан Адамс (также известный как Dinnerbone). — «Мы выпускаем часть обособленных библиотек, которые использует Minecraft, в виде исходного кода. Любой сможет взять их и использовать в своей собственной игре.»
Планируется, что разные библиотеки будут открываться постепенно. Они будут выпускаться под лицензией MIT, и это значит, что «практически любой можно взять их и внести свой вклад в улучшение нашего игрового движка» — поясняет Натан.
«Или, если они создают собственную игру, им не придётся переписывать эти небольшие части. Они могут просто воспользоваться нашими, которые хорошо опробованы и отлажены, поскольку наша игра, определённо, очень популярна!»
Библиотека Brigadier
«Я очень горжусь этим названием!» — говорит Натан. — «Brigadier — это название обработчика команд, который используется в Minecraft». И это первая библиотека, которую мы открываем!
«Вы можете написать в игре что-то вроде /give Dinnerbone stick
, и этот текст передаётся обработчику команд. И он пытается понять, что именно вы хотите сделать.»
Minecraft сообщает обработчику: «Вот список того, что может делать игрок. Сообщи, когда игрок попытается выполнить что-то подобное». Поэтому, когда игрок набирает /give Dinnerbone stick
в чате, это проходит через обработчик. Brigadier разбивает команду на части, проверят на ошибки и пытается быть максимально полезным. Вы ещё получаете красивое всплывающее окно, где в процессе набора текста отображается подсказка».
Надеемся, что это делает ввод команд более удобным!
Натан надеется, что сообщество 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!
Отправляя сообщение, вы разрешаете сбор и обработку персональных данных. Политика конфиденциальности.