Датапаки. Как мало в этом слове.

· Bork

Датапаки. Не просто функции, а механизм взаимодействия с игровым миром в популярной компьютерной онлайн (оффлайн) игре с более чем 10 милионов геймеров каждый месяц - Minecraft.

img

Что вообще это такое и с чем его едят?

Начать стоит с того, что датапаки не едят (к сожалению)… Далекая в истории версия игры - 1.4.2. В этой версии Minecraft были добавлены особые блоки - командные (КБ)! Они позволяют выполнять, как ни странно, команды, которые, в свою очередь, могут влиять на игровой мир, прямо или косвенно, изменять параметры игры, создавать внутриигровые предметы а также призывать сущности. Это лишь малая часть того, на что они способны.

img

Командные блоки делятся на 3 типа:

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

К версии 1.13 была добавлена альтернатива КБ - Датапаки (Data Pack, набор данных). Это структурированные команды командных блоков в виде текстовых файлов (.mcfunction). Кроме файлов .mcfunction датапаки могут содержать .json файлы с описанием достижений, предикатов (логические проверки да/нет), модификатров предметов и даже свойств генератора мира, структур и т.д… и не только.

Как их используют?

Например, самый простой вариант - написать плагин. А, ой… Ну допустим, игрок хочет наглядно видеть здоровье другого игрока или сущности. Для этого в игре есть bossbar - элемент визуализации данных в виде шкалы прогресса (словно progressbar (вспомнил игру progressbar95. Рекомендую!)).

Можно выполнить команду:

execute store result bossbar minecraft:bossbar value run data get entity @n[tag=mypet] Health 1

эта команда будет записывать здоровье сущности с тегом mypet в боссбар.

К счастью, тут я не буду делать полный гайд на датапаки, это просто общая информация. А то SCH не выдержит и потатом закроется :(

Как научиться использовать датапаки?

Ты в своем уме? Учить датапаки??? Серьезно? Ты себя видел? Иди учи Java или хотя бы Python, на крайний случай! Учить датапаки… достойны только избанные. А ты избраный? ну тогда иди … учи.

Это как с любым языком программирования. Конечно, .mcfunction сложно назвать таковым (однако, его можно считать доменным языком или языком скриптования для Minecraft), но технология обучения аналогична. Начать стоит с изучения основ команд Minecraft.

Достаточно разобрать пару простых кейсов на командных блоках:

Далее можно углубиться в эту тему, создавая свои собственные условия:

Перед тем, как ты выйдешь в окно (на 1 этаже погулять) рекомендую ознакомиться с парой ссылок:

Комьюнити “программистов” на .mcfunction очень добродушное, милое и открытое (ага, поверил ХАХА). На любой вопрос можно найти ответ или спросить у таких же как ты (ChatGPT не поможет, он слишком умный, чтобы разбираться в этом)!

Что обычно делают на Датапаках?

Много всего всякого! Это если вкратце :)

Есть разные проекты, начиная с рас (Эльфы, Друиды, Тритоны и т.д), где каждая имеет свои уникальные особенности, заканчивая переносом популярного Bad Apple! Начиная с переработки генерации мира, заканчивая машинками с полноценной физикой, топливом и т.д. в игре, где физика отсутствует!

Но не переживай. У тебя ничего не получится, у меня тоже не получилось!

Женщина

Интересные проекты:

img

img

Как я использую датапаки? Какие датапаки лучше выбрать?

В основном я предпочитаю не использовать датапаки. ХАХАХАХ а ты что думал?

Функционально полезные, при этом легковесные датапаки лучше, чем бесполезные и лагающие, написанные школьниками 5 лет (да и пофиг, что в школу ходят с 7).

Стоит заметить, что большое количество тикающих функций (tick.mcfunction и аналогичные) довольно сильно нагружает сервер, особенно если в них происходит обращение сразу во всем сущностя мира (@e), или ко всем игрокам (@a).

Поэтому лучше использовать датапаки, в качестве хранилища заготовленных команд, которые, при необходимости, легко можно вызвать и получить желаемый результат. Юзайте плагины, а датапаки как удобный инструмент.

К примеру, есть команда плагина CMI для выдачи монет игроку: cmi money give <Nick> <count>. Она выдает игроку <Nick> количество <count> монет. Каждый раз писать такую команду не удобно, особенно, если переменые <Nick> и <count> динамические. Поэтому я сохранил команду в фунцию w3s:bank/give и могу легко ее вызвать с нужными мне параметрами!

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

Мне стало лень писать дальше… Итоги

Датапаки это классно. Сам на них делал ключевую механику для 2 сезона моего сервера Welten - расовое превосходство!

Я люблю, когда игру можно запустить и не надо скачивать никакие моды, чтобы добавить пушку гонку, броню бога и еще 42 предмета в 64 степени зачарованности на тапанье хомяка. Берешь, пишешь датапак и чувствуешь себя богом этого мира.

Если бы не они… ___________________________________(произошло бы)

дальше — почитать рядом