ECW Dev. проект под HGE/DX9 в 2026...
Знаете, что это такое? Прыжок в прошлое. Вообще, это мета сейчас хайповая. Как же так вышло?
Задумка
Как и многим другим, мне в какой-то момент жутко захотелось начать воплощать своего гения. Только была одна проблема. Две проблемы. В общем, проблем было много, в течение последующих 10 лет с того момента, как я выбрал HGE в качестве движка для своей игры мечты!
Причины
Вообще, уже на тот момент существовали всякие крутые конструкторы, в которых нужно-то было кнопки потыкать и всё - игра готова. Но опыт работы с JASS в редакторе WarCraft III дал чёткое понимание того, что создавать игру мечты нужно жёстко и по-хардкору. А ещё с конструкторами разбираться долго, сложно, ничего не понятно!
То ли дело HGE. Ты просто кидаешь его на диск, настраиваешь пути, и получаешь простую понятную функциональность:
И всё-о! Ничего больше делать не надо. Ну, ладно. На самом деле там в объектах зашита вся функциональность, но способ реализации всё равно для неокрепшего ума невероятно прозрачен: есть начало сцены, есть конец. Между ними рисуй что хочешь, только не забудь текстурки выделить, обязательно не забудь удалить и не дай бог обратиться по невалидному указателю!
Короче, всё по канонам низкоуровневого программирования C/C++
Проблемы
И вот в ходе первых проб и освения всего этого великолепия оказалось, что писать свою игру практически с нуля - это занятие невероятно увлекательное (нет).
И дело даже не в том, что HGE может только в 2D, а даже простых элементарных функций недостаточно. Например:
- Локализация. Ах, да. Движок ещё и std::string использует, что душит нас ASCII-кодировкой. Извините, друзья иероглифы, придётся вам играть в англ. весию игры мечты!
- Менеджер ресурсов. Он в движке как бы есть, но при создании даже небольшой игры оказывается довольно неудобным в использовании.
- Звук. Нужна отдельная библиотека.
- UI. Есть пример реализации UI в туторах, но по факту писать тоже нужно с нуля.
- Система частиц. В принципе норм, но сильно ограничена функционально. Основная проблема: смена стейта от А до Б. Нет третьего промежуточного значения, чтобы можно было сделать и fade-in, и fade-out.
- Альфа-маски. Да, никаких красивых обрезок текстур по альфа-каналу.
Можно ещё много чего перечислять, и дойти до трассировки лучей и ИИ, но даже и этого хватает.
Почему не Unreal/Unity???
Да потому.
- Концепция игры подогнана под возможности движка. Используем только 2D, без теней, без шейдеров, будем вывозить художкой.
- Некий умелец адаптировал HGE, так что сейчас используется версия под DX9 и сборка производится под х64.
- HGE можно заменить с минимальными потерями на SFML/SDL. А если, прям, ну, очень сильно захочется, то хоть на тот же Unreal.
- Не важно, какой движок используется. Писать игровую логику нужно одинаково, что для Unreal, что для микроволновки.
- Опыт разработки и программирования. Интересные архитектурные задачи, изобретение велосипедов. Некий челлендж в превозмогании непревозмогаемого.
- Обложка важна, но содержание важнее. Это вызов создать такой геймплей, который замаскирует технологии динозавров.
Скрин мотивации
Глядя на рис. 4, так и хочется возращаться к проекту. Визуальная эстетика есть. Игровая механика была. И плевать, что HGE. Многое уже сделано и работает на разных уровнях разработки, начиная от концепта, заканчивая реализацией в коде.
Но есть нюанс
Этот билд (рис. 4), как и все предыдущие я снёс, принявшись переписывать всё с нуля. Надеюсь теперь всё получится, ведь 5-ая итерация должна вобрать в себя все разрозненные идеи и предыдущие наработки.
Автору будет интересно почитать ваши комментарии и собрать мнения о таком подходе к созданию собственной игры. Спасибо за внимание!