Как я выбирал движок для игры - делаю в соло платформер в мире хрущевок и Лавкрафта.
Демо моей игры готово, и в него уже можно поиграть в браузере. А про муки выбора движка можно прочитать в статье. Возможно, если вы ищете движок для своего игро-шедевра, мое мнение дилетанта окажется вам полезным.
Ссылка на игру в браузере:
И небольшой геймплейный трейлер:
Я рисую безбюджетный мультсериал “Хтонавты» - про антропоморфных животных, обитающих в абсурдном мире, где пост-советская реальность с гастрономами и гаражами переплетается с измерениями лавкрафтианского ужаса (а , может, не в таком уж и абсурдном, если посмотреть по сторонам). Более подробно можно почитать про мультик здесь же на DTF:
На днях мне удалось закончить демо платформера, действие которого происходит в той же вселенной. Доступен целый уровень, который можно пройти примерно за две минуты с небольшим за одного из главных персонажей – антропоморфную жабу, которая должна собирать бутылки и прыгать на голову обитателям спальных районов и порождениям древнего кошмара. В поисках таинственной руны Перерождения наш герой преодолевает путь, на котором его ждут как привычные нашему глазу хрущевки, электрички, трансформаторные будки и ларьки с шаурмой, так и жуткие существа из неведомых миров.
Скажу сразу: от программирования я далек максимально. С концепцией о том, что чтобы правильно делать игры, надо страдать (иначе игра будет неправильная) ознакомлен. На лавры гениев от игроделания не претендую. Моей задачей было найти самый простой для меня движок и сделать самый простой платформер, чтобы, прежде всего, мне самому было в него весело играть. С этой задачей я справился, чему немало удивлен. И даже получил несколько хороших отзывов на разных ресурсах. Вот, например, очень приятный для меня отзыв от доброго человека с itch.io – спасибо ему, он в буквальном смысле выразил то впечатление от игры, к которому я стремился.
Конечно же, как любой человек, выросший на видеоиграх, я всегда мечтал создать свою игру. Мой опыт кодинга, если это можно так назвать, исчерпывался попытками изучения C+ (или, может быть, C++) в школьные годы. Тогда под руководством погромиста из некоего компьютерного кружка мне удалось накодить что-то вроде примитивного текстового квеста. На этом энтузиазм иссяк, я переключился на более увлекательные в раннем подростковом возрасте занятия, а рудиментарные знания о волшебном языке C канули в варпе.
При этом меня всегда привлекали редакторы уровней в играх. В свое время я чуть ли не сутками ваял уровни в Warcraft 2, HOMM 2 и 3, да и во всем, к чему был прикручен хоть какой-то редактор. Например, в древней гоночной игре Stunts, в которой пытался построить какое-то подобие города, чтобы кататься по нему на машине задолго до этих ваших Драйверов и GTA. Как не сложно догадаться, меня привлекало то самое «создание своих миров», которое толкнуло на скользкую дорожку игроделания уже не первую заблудшую душу.
Еще вспоминается игра Graal Online, которая представляла собой буквально копию третьей Зельды, но с открытым миром. К ней также был присобачен редактор уровней, да еще и с подобием скриптов. С помощью невероятных костылей в этом редакторе умельцы создавали почти что РПГ с квестами, сменой дня и ночи и другими фокусами. Кстати, пока писал этот текст, выяснил, что Graal Online все еще существует, имеет множество модификаций, и поиграть в него можно вот тут (у меня в браузере не запустился):
Следующая попытка научиться делать игры была предпринята во время пандемии. Вынужденно сидя дома, я решил, наконец, освоить увлекательный процесс игроделания. Попытка сделать клон Space Invaders на юнити успехом не увенчалась. Как выяснилось впоследствии, туториал на ютубе содержал ошибки, и автор заведомо втирал доверчивым слушателям какую-то дичь. В итоге что-то на экране ездило туда-сюда, но это было совершенно несопоставимо с объемом потраченного времени. Насколько я знаю, в юнити можно делать игры без кода, путем перетаскивания логических блоков, если я правильно это называю. Но до этого дело не дошло.
Позже я потыкал еще какой-то движок, название которого, вспомнить уже не получается. Он был попроще, написание кода было значительно минимизировано. На этот раз я попробовал сделать платформер, и что-то даже получилось, но содержало слишком большое количество критических косяков, логика исправления которых была мне совершенно непонятна.
Также был опробован старый добрый гейммейкер. Посмотрел туториалы и немного потыкал на чужом компе. Вероятно, этого недостаточно для адекватной оценки, но мне он показался неочевидным и несколько перегруженым, особенно на фоне того, как он подается в качестве простого и универсального движка.
Вернулся я к своей идее фикс сравнительно недавно, когда пара человек из армии подписчиков моего проекта (13 подписчиков на DTF, 8 на Пикабу, 180 в Телеге – это уже микроблоггер или макро?) откомментила, что неплохо было бы во вселенной моего мультика сделать игру, возможно что-то вроде визуальной новеллы. Так а я всегда за!
Был даже установлен кримпай, он же - Ren'Py, но, вскоре пришло осознание, что визуальные новеллы меня привлекают больше в теории. Я в них никогда толком не играл, а с помощью ренпайя хотел сделать что-то вроде квестов в Космических Рейнджеров или книжек Choose Your Adventure (у меня были такие в детстве, и как-нибудь я напишу про них отдельный пост). В итоге эта идея была отложена до лучших времен в пользу старого доброго платформера. И тут включается старая песня о главном: в чем же его делать?
Первым делом мой взгляд упал на Construct, который привлек меня концепцией ультра-интуитивного и простого конструктора для игр. В какой-то очередной статье было написано, что он хорош для быстрого создания прототипов игр, чтобы впоследствии воплощать эти идеи на более солидных движках. Да мне бы хоть прототип создать, подумал я.
В видео-туториалах все выглядело привлекательно, но отпугнул несколько конский ценник на это развлечение. Не то чтобы я любил деньги так же сильно как мальчик Бобби из песни мультфильма Остров Сокровищ, но все же не всегда готов закидывать кровно заработанные дензнаки за то, что, возможно, мне и не пригодится. Есть ли что-то подобное, но подешевле? Как оказалось, есть!
Это довольно давно существующий движок под названием Gdevelop. В отличие от сребролюбивого консракта, он условно бесплатный. Платная подписка добавляет такие безусловно удобные функции, как, например, возможность экспортировать проект чаще, чем раз в сутки. Но и без нее вполне можно слепить работающую игру.
При этом сам процесс игроделания прост до неприличия. Программировать не нужно. Нужно делать игру по сути в двух окнах. В первом рисуем уровни, добавляя туда игровые объекты. Объектам можно присваивать различные поведения (behaviors), которые в свою очередь можно настраивать, ставя галочки, где надо (и не ставя, где не надо). Например, не нужно прописывать руками, что при нажатии кнопки «влево», объект движется влево с такой-то скоростью и ускорением, и так для каждой клавиши управления – достаточно просто добавить объекту поведение «персонаж платформера» и он начинает автоматически управляться стрелками и пробелом. Но при большом желании, можно и прописать действия и их особенности для каждой клавиши. Простор открыт.
Во втором окошечке составляем из готовых блоков систему событий, основанную на соблюдении условий «если» и «тогда». К примеру: если объект «игрок» входит в коллизию с объектом «враг», отключается поведение «персонаж платформера», проигрывается анимация «смерть», проигрывается звук «смерть», выжидается 2 секунды (чтобы успела проиграть анимация), уровень перезагружается.
В целом, все понятно даже без туториалов, но последние могут сделать процесс обучения намного более стремительным и приблизить сладостный момент создания собственной игры. Какие-то вопросы вы научитесь решать сами, например, у меня получилось самостоятельно найти решение поблемы, когда после убийства врага, анимация его смерти продолжала убивать протагониста.
Отдельно хочется отметить простоту эскпорта и выкладывания игры на соотвествующие сайты. Я пока выложил только на itch.io, но сделать это получилось неожиданно просто и быстро. Я ожидал самых различных проблем, например, косяков с разрешением или тормозов. Но в итоге все залилось и отлично играется. Единственной проблемой оказалось то, что в Опере в игре нет звука, но, к примеру, в FireFox все работает. Правда, на реддите люди описывают определенные проблемы при экспорте, так что, возможно, у меня это ошибка выжившего.
Разумеется, не пытаюсь рекламировать сей движок, но так как с помощью него я, можно сказать, воплотил в жизнь, свою мечту и не заплатил за это ни копейки, считаю, что рассказать о нем другим пытливым умам будет справедливо.
Уверен, что знающие люди, могут быстро рассказать, почему Gdevelop ни для чего не годится и делать игры надо, например, на Питоне (все, что я знаю про этот язык – его название). Но в моем случае Gdevelop отлично сработал и позволил добиться поставленной цели. Так что если вы хотите попробовать сделать свою игру – возможно, это лучший выбор, благодаря простоте и быстроте освоения. Не исключаю, что в будущем я перейду на другой движок, а, может, и не перейду.
Так или иначе – спасибо за чтение. И буду благодарен, если поиграете в мое демо и что-нибудь напишите!
Всем хороших выходных!