Что я понял за год создания модов для майнкрафта
Новый мод и мысли о майнкрафт моддинге в целом.
Год назад я написал статейку о процессе создания своего первого мода. С тех пор прошло немало времени, и за этот период я успел разочароваться в моддинге и снова им загореться.
Содержание
Для тех, кто не читал статью. Я решил вкатиться в моддинг и пока делал один большой мод - случайно сделал и релизнул мод поменьше.
Итак, что же произошло с тех пор? Мод более и менее стабильно загружается на постоянной основе. Каждый день приходят загрузки засчёт того что я портировал его на множество версий (от 1.16 до самых новых). И засчёт того что его начали добавлять в сборки модов.
В моих планах было продолжать развивать тематику размещения плоских блоков на стены и потолки, поэтому я приступил к написанию своей первой библиотеки, которая предоставит мне API для создания подобного рода блоков. Несколько дней ушло на изучение либ других проектов, чтобы получить первые наработки. Довольный я загрузил либу на CurseForge и Modrinth и... Выпал из моддинга.
Я уже начал было делать мод который позволяет размещать стеклянные панели в разных позициях, но было решено свернуть этот мод.
Моей главной проблемой и ошибкой было то, что я пытался гнаться за новыми версиями. Делаю мод когда актуальна версия 1.21.1 и выходит 1.21.2? Надо срочно обновляться. Ого, через пару недель выходит 1.21.3? Обновляем. Проблем у такого подхода несколько, а именно:
- Минорные патчи в майнкрафте имеют тенденцию мнять обратную совместимость с прошлыми версиями. Я жаловался на это в прошлой статье и жалуюсь в этой. Почти каждый минорный патч несёт за собой большой ряд изменений. И чем больше у тебя мод, тем сложнее обновлять версию.
- Большая часть игроков даже не обновится на эту новую версию. На сегодняшний день актуальная версия - 1.21.5, но при этом игроки продолжают играть либо на 1.21.1, либо на 1.21.4. Или, что ещё забавнее, многие игроки продолжают сидеть на версии 1.20.1 и 1.20.4.
Почему же так? Потому что авторы крупных модов оказались умнее меня. Они держатся на первом минорном патче до тех пор пока не выйдет крупное обновление.
Помимо этого у меня были ещё идеи для модов. Ещё делая мод на ковры я придумал сделать мод на шапочку из фольги. Идея простая: добавить новый итем, надев который игрока будут игнорировать фантомы. Сделать мод было не сложно, однако.
Шапочка это броня, которую игрок должен уметь надевать. К тому же прикольно сделать бы так, чтобы шапочку можно было покрасить в любой из доступных цветов. Первая и единственная проблема с которой я столкнулся - это кастомная моделька шлема.
Какая же это головная боль. Мне удалось каким-то боком взять модельку и перенести её в игру, но эта зараза отказывалась воспринимать текстуры. В некоторых местах пропадали полигоны и были прозрачные дыры, в некоторых местах были не те цвета.
Никаких полос сбоку быть не должно. Уже всех подробностей не вспомню, но удалось каким-то боком сделать серую модельку и поменять ей цвет в игре.
Давай пошути про форму и цвет шапочки.
В общем на первый взгляд - работает, но есть одно но. Первая шапочка на манекене - не крашенная. Она должна быть серого цвета, но каким-то боком она становилась коричневой. Просто так. Я долго душился от того, что у меня на руках был готовый мод за исключением того, что моделька работала не так как надо. И именно поэтому решил что пора сделать перерыв.
Потом вышла версия 1.21.4, которая добавила в игру новый биом и нового моба - скрипуна. В голове почти моментально родилась идея нового мода. Его я тоже забросил так как душа требовала больше времени на отдых от всего этого.
Обратно в моддинг я ворвался уже с выходом версии 1.21.5 с новым модом. Врывом это назвать, на самом деле, тяжело. Новая версия предоставила игрокам разные варианты коров, свиней, куриц. Где-то за пол часа я собрал мод, который менял лут этим мобам в зависимости от их вида.
В чём задумка? Зимняя корова при смерти даёт больше кожи, чем обычная, но меньше мяса. Корова из тёплых биомах даёт меньше кожи, но больше мяса. То же самое я сделал и свиньям и курицам. Я быстренько потестил мод, создал страницы на CurseForge и Modrinth и опубликовал.
Я не ждал, что мод сыщет какой-либо популярности. Это простое изменение таблиц лута на версию 1.21.5, которая не такая популярная как прошлые версии. Однако спустя время я заметил что на neoforge версию пошли загрузки и оказалось, что этот мод добавили в сборку. И теперь засчёт этой сборки я получил уже целых почти 1000 загрузок без каких либо реклам.
Пускай это и очень мелкий и простой мод, но он воодушевил меня вернуться в моддинг. Я решил для себя, что если и буду делать более сложные моды, то буду закрепляться за первым минорным патчем и не гнаться за версиями.
После этого я собрался с силами сесть за новый мод на рпг тематику. И как это у меня бывает, я понял что часть функционала надо выносить в ещё один мод. Таким образом появился мод Slime Overhaul, который сейчас находится в активной разработке, и который я покажу дальше.
Задумка простая - разнообразить мир игры новыми видами слаймов. Я начал прикидывать и понял, что хочу добавить около 9 видов. Первые четверо - это элементальные виды. Остальных пока не буду раскрывать.
Проблемы моддинга
Однако мне хотелось чуть больше, чем создать просто мод на новые виды. Как почти каждый уважающий моддер майнкрафта, мне нужна своя библиотека, ещё одна. И на самом деле библиотеки для модов это большая проблема.
Видите ли, если зайти на CurseForge и посмотреть список самых популярных модов, то почти каждый в топе будет библиотекой, которая используется другим модом. Почти у каждого мододела есть своя библиотека, которая упрощает разработчику делать обыденные вещи. С точки зрения разработки ПО это правильный подход, однако в чём же кроется всё же проблема?
Помимо крупных игроков на сцене моддинга подобной практики придерживаются и более мелкие ребята, вроде меня, и делают они это отчасти от того чтобы упростить себе разработку, а отчасти чтобы фармануть заветных загрузок. Когда я выпустил библиотку для своего первого мода - процент общих моих загрузок как автора повысился. Люди качают мой мод, потом загружают библиотеку и я получаю +2 загрузки.
А так вышло, что если твой мод регулярно качают, то CurseForge начисляет тебе поинты, которые потом можно обменять на $. Если посмотреть на бОльшую часть библиотек на курсфордже, то почти у всех у них будет одинаковое описание, и код который делает почти одни и те же вещи.
Зачем же я решил делать для слаймов ещё одну библиотеку?
Во-первых
Засчёт библиотеки я получаю в 2 раза поинтов просто так.
Во-вторых, я всё же использую идею библиотеки по назначению. Я вынес туда код который упрощает мне регистрацию новых мобов, предметов, блоков и прочее, да и к тому же сразу и для neoforge и для fabric, что даёт мне возможность делать мод сразу на два загрузчика, а это в свою очередь означает ещё бОльшее количество загрузок.
А я всё же хочу, чтобы побольше народу узнало про мод, и даже не ради того чтобы получать с этого прибыть, а просто чтобы заявить о себе.
Помимо этого существует ещё один способ монетизации своих модов. Я узнал о таком явлении, как приватная сборка. Суть в том, что делают сборку и выкладываю её на бусти/патреон или куда-то ещё. И получить доступ может только тот, кто задонатит.
С одной стороны звучит это очень не этично. Какой-то чел скачал кучу модов, сложил в одну папку и продаёт за 100 рублей. Но на деле же чтобы сделать вменяемую сборку этого недостаточно. Моды нужно балансить между собой, проверять чтобы они не конфликтовали, некоторые с помощью скриптов добавляют собственный контент в виде рецептов, своих систем прогресии, предметов и многого другого.
Конечно, если сборка приватная, то это не означает что в ней это всё присутствует. Я лишь хочу сказать, что, порой, создание сборки может быть посложнее и создания мода.
Я не знаю как давно появилось явление приватных сборок, но насколько понимаю западная аудитория таким не промышляет и более того порицает. Я не сильно погружён в тему, но вроде всё так. Какая же может быть причина создания платной сборки?
На самом деле я сам долгое время считал это чем-то неэтичным. Но потом-то до меня дошло, что выпустив сборку на CurseForge, автор из РФ не сможет получить с этого денежную выгоду. Так что в какой-то степени сама концепция приватных сборок для меня больше не является абсолютным злом. Другой вопрос уже насколько та или иная приватная сборка действительно стоит своих денег, и были ли вообще приложены усилия для её улучшения и развития.
Ещё одной проблемой моддинга я вижу эксклюзивность модов. Пока геймеры в ярости обсуждают эксклюзивы консолей, некоторые мододелы принципиально выкладывают свой мод только на одном ресурсе.
Есть два основных сайта, откуда можно скачать моды, сборки, ресурспаки и так далее - CurseForge и Modrinth. Обе эти платформы имеют своё приложение с помощью которого можно качать всё очень просто. На мой взгляд, если ты хочешь чтобы о твоём моде услышали - стоит выкладывать на обоих сайтах, однако я неоднократно слышал о том, как какие-то разработчики уходили с CurseForge, продолжая выкладывать новые версии только на Modrinth.
А теперь представь. Делаешь ты сборку чтобы нереально повеселиться с другом, ставишь самые крутые моды, и замечаешь что твой любимый мод больше не обновляется на CurseForge. Как быть? Заходить на сайт Modrinth, вручную скачивать мод, вручную закидывать его в сборку. И тут сразу всплывают подводные камни.
Что если этот мод зависим от библиотеки? Надо качать вручную её один мод, это хорошо если автор сразу укажет в описании о зависимости. Дальше тебе нужно скинуть эту сборку другу. Конечно, ты можешь просто заархивировать папку, залить архив на файлообменник, скинуть другу.
Это при том, что у приложения CurseForge есть свой механизм передачи сборок. Ты просто экспортируешь файл настроек, кидаешь его другу, и он через приложение устанавливает все моды сам. Но так как в сборке есть мод, который существует эксклюзивно на Modrinth, тебе либо придётся ему кидать ссылки на недостающие моды, либо кидать сразу эти моды, либо кидать весь архив.
В общем и целом мороки куча, а толку? Я до сих пор так и не разобрался по каким причинам люди уходят на другую платформу. Если сравнивать по загрузкам, то лично у меня, больше загрузок идёт с CurseForge. А заливать мод сразу на два сайта это вообще не проблема.
Демонстрация мода
Итак, как я уже сказал, на текущем этапе моя цель - создать элементальных слаймов, которые помогут разнообразить мир игры и геймплей игроков, и вот они слева направо:
Воздушный, земляной, водный, и огненный слаймы!
На первый взгляд может показаться, что это просто рескин обычного слайма. Так оно и есть. Однако геймплейно отличия всё же чуть больше. Из этих слаймов, конечно же, можно добывать разную элементальную слизь, из которой можно делать блоки слизи.
Во-первых, как мне кажется, из этого может получиться неплохой декор. Во-вторых, друг мне подкинул идейку добавить возможность натереть эти блоки светящимися чернилами, чтобы блоки светились!
Топориком можно эти чернила соскрести.
По слаймам начну по порядку.
Воздушный слайм. Примечателен тем, что прыгает выше остальных. Не получает урона от падения. Водиться будет в горах, и сможет делать двойные прыжки.
Водный слайм. Не задыхается под водой. В отличии от стандартного слайма - не стремится сразу же выплыть из-под воды и может в ней перемещаться, как рыба. Водится в реках и океанах.
У водных слаймов две разновидности: речной и океанический. Отличаются текстуркой. Водный слайм примечателен тем, что может обнаружить огонь поблизости и будет двигаться к нему. При столкновении с огнём - тушит его. Если это самый мелкий слайм, то при этом он ещё и у погибает. Самого маленького водного слайма можно поместить в ведро с водой, а если клацнуть ведром по самому большому слайму - можно набрать воды в ведро. Водные слаймы также атакуют огненных слаймов. Не получают урона от огня.
Далее идут земляные слаймы. Отличительная черта - у них меньше скорость, но больше жизней. Могут утонуть под водой, но оказавшись в ней не могут всплыть. Если бросить итем земляной слизи или земляного блока слизи в воду - они пойдут ко дну, в отличии от всех остальных предметов в игре. Вероятно, им тоже сделаю ещё какую-нибудь разновидность, предлагайте варианты!
Огненные слаймы получают урон от воды и имеют иммунитет к огню. Выброшенные предметы огненной слизи или блока огненной слизи в лаву - не сгорают, но уничтожаются при контакте с водой. Самого маленького огненного слайма можно положить в ведро с лавой.
Знаю, что может показаться, что некоторые слаймы проработаны слабее, а некоторе сильнее. Это правда. Некоторые вещи я ещё не успел настроить и реализовать, где-то не хватает идей. Мод ведь ещё в разработке.
Следующим этапом у меня идёт создания новых зелий, которые можно будет сварить из этой слизи. Списка ещё толком нет, пока изучаю то, что в игре уже есть. Когда разберусь с этим - буду добавлять остальных слаймов.
Итоги
Что же глобально поменялось за почти что год в моддинге майнкрафта? Если говорить про всё сообщество, то многие крупные моды которые обновились с 1.20.* версии до 1.21.* - отказались от Forge и перешли на NeoForge. Хотя и на моё удивление много кто продолжает сидеть на версии 1.20.1/4 и даже выпускать новые моды именно на эти версии.
Что поменялось для меня? Я всё ещё не понимаю для чего существует Fabric. Утверждают, что он якобы быстрее и менее лагает, но я так и не заметил разницы на своём ведре. Продолжаю следить за загрузками своих модов. За всё время я заработал 25$. Показатели не такие большие у меня по загрузкам, но и моды это не такие уж и хайповые. Делаю ставку на слаймов, но кто знает.
Вот такой у меня получился поток мыслей. И на самом деле мне все ёще есть что сказать. Есть мысли по поводу соперничества загрузчиков модов - Neoforge/Fabric. Есть мысли и о сайтах которые размещают моды - CurseForge/Modrinth и другие. А ещё помимо моддинга я открыл для себя разработку плагинов. Впрочем, это уже совсем другая история.