разработка игр, программирование, сценарии, графика и музыка

English По-русски

Почему я использую собственный движок 3D игр

В 2017 году я создал движок 3D игр YUME и выпустил на нём игру Speebot. Сегодня я использую тот же самый движок для разработки своей следующей игры.

Изначально я писал движок частично в качестве учебного опыта, частично в качестве эксперимента. Люди иногда спрашивают меня, почему я продолжаю использовать его вместо того, чтобы переключиться на что-то популярное, такое как Unity или Unreal. Я упоминал некоторые из своих причин в прошлом, но подумал, что должен написать краткий пост, отвечающий на этот вопрос.

Эффективный рабочий процесс

Я создал свои инструменты, чтобы быстрее разрабатывать игры. YUME поддерживает то, что я называю "горячей загрузкой ресурсов" — это возможность обновлять и тестировать карты, модели, скрипты, текстуры, звуки и другие ресурсы во время игры. По сути, это означает, что я могу разрабатывать игру, не выходя из неё.

У моего движка есть свой язык сценариев, который упрощает проектирование и тестирование игровой логики. Теперь это быстрый и безболезненный процесс.

Сам движок написан на Haxe, поэтому, когда мне нужно внести изменения в код, пересборка проекта занимает всего несколько секунд.

Отличная документация

Все технологии, которые я использую, очень хорошо документированы. Существует бесчисленное множество ресурсов и сообществ, посвящённых OpenGL, Haxe, SDL, C++ и дизайну игр в целом.

Никакого ада зависимостей

Игровые движки — это сложное программное обеспечение, в котором по понятным причинам могут быть ошибки. Когда ошибка в стороннем движке затрагивает разработчика игры, то всё, что он может сделать, это сообщить о проблеме и ждать, пока создатели движка исправят её. Это также относится к любым плагинам, которые может использовать игра.

Это проблема коммерческих движков. С движками с открытым исходным кодом всё не так плохо, потому что они позволяют любому пользователю погрузиться в исходный код и исправить ошибку самостоятельно. Но и здесь могут быть проблемы, так как приходится копаться в чужом коде.

В некоторых случаях обновление версии игрового движка может привести к новым проблемам, которые могут быть очень неприятными и болезненными.

Легче отлаживать и модифицировать

Написание программы с нуля приводит к хорошему пониманию каждого компонента. Расширять и отлаживать такие программы намного проще, чем разбираться в чужом коде (если этот код вообще доступен).

Оптимизация

Большинство популярных движков имеют тенденцию быть универсальными, что приводит к ресурсным расходам на функции, которые не нужны игре. Это проектное решение, которое естественным образом приводит к раздуванию кода и снижению производительности.

Разработчики часто игнорируют эту проблему, говоря, что компьютеры становятся всё более мощными, и поэтому оптимизация программ больше не важна. Я с этим не согласен.

Текущая версия YUME адаптирована специально для той игры, над которой я работаю. Поскольку я могу сосредоточиться лишь на функциях, которые нужны именно моей игре, в конечном итоге она превосходит обычные движки по экономии ресурсов. Это означает, что я могу добавить больше движущихся элементов в игру, а также лучше поддерживать более старые компьютеры.

Нет лицензий

Мне не нужно иметь дело с дополнительными лицензиями, комиссионными платами, контрактами и условиями обслуживания.

Движок уже готов

Помимо исправлений, улучшений и новых функций, ядро моего движка уже готово, и мне не нужно создавать его снова. Всё, чем я сейчас занимаюсь — это создание игрового контента. Переход на другой движок в этот момент только бы замедлил меня.

Это интересно

Проект такой сложности является большой инженерной задачей. Очень приятно создавать и улучшать инструмент, которым я пользуюсь каждый день.

Сейчас я близок к завершению своего второго проекта на этом движке — сюжетной приключенческой головоломки под названием Phantom Path:

У игры есть страница в Steam. Также доступна демо версия!

Следующая статья

Дата выхода Phantom Path

Подписаться

Получайте уведомления о новых статьях, чтобы:

Следить за процессом разработки моей следующей игры.

Читать статьи об искусстве и технологиях создания игр и движков.

Получать новости об изменениях в моих играх.

Подписка бесплатная, просто нажмите на кнопку!