Разработка игр | 3D | Программирование | Годо

Я разработал 3D-хоррор с помощью программного обеспечения с открытым исходным кодом.

Как я создал прототип 3D-игры ужасов в Godot, программном обеспечении для разработки игр с открытым исходным кодом, и как вы тоже можете это сделать.

Что такое Годо?

Godot — это набор графических инструментов с открытым исходным кодом, которые позволяют пользователю создавать 2D- и 3D-игры, анимацию и объекты пользовательского интерфейса. Он был выпущен еще в 2014 году, и в настоящее время он начинает достигать уровней обработки больших (Unity3D, UnrealEngine4/5).

Godot позволяет разрабатывать игры как в 2D, так и в 3D и экспортировать их на большинство существующих в настоящее время платформ, таких как Windows, Linux, Mac и даже на некоторые консоли. И это совершенно бесплатно (в отличие от Unity или UnrealEngine 4/5, которые имеют некоторые правила роялти).

Если вы хотите посмотреть игры, сделанные с помощью Godot, я очень рекомендую это видео:

Зачем использовать Годо?

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

Кроме того, Godot развивается медленнее, чем Unity и UE. Это не обязательно плохо, так как — и это личный опыт — такие программы, как Unity, иногда ломаются без видимой причины, что действительно расстраивает. Другими словами, в то время как другое программное обеспечение для разработки игр быстро и резко расширяется, Godot делает устойчивый и постоянный прогресс.

Мой взгляд на 3D-инструменты Godot

Я хотел уловить тенденцию и создать что-то, связанное с крипипастой Закулисные комнаты. Короче говоря, The Backrooms — это концепция хоррора, основанная на лиминальных пространствах, местах, которые кажутся зрителю странно знакомыми. Нулевой уровень подсобных помещений состоит из, казалось бы, бесконечного лабиринта желтоватых стен и заплесневелого ковра, в котором игрок должен найти и выйти, прежде чем он его найдет.

Я начал с того, что собрал несколько бесплатных текстур и изображений для ковра, стен и потолка. Затем я перешел к Blender, где разрабатываю несколько моделей, чтобы использовать их позже в Godot.

Оптимизация визуализации в игре.

После создания первых тестовых уровней я понял, что игра начинает тормозить. Это произошло из-за огромного количества стен, потолков, напольной плитки и источников света.

Сначала я начал разрабатывать метод загрузки чанков — да, прямо как в Minecraft. Похоже, это сработало, но у меня все еще были скачки задержки при загрузке и выгрузке больших фрагментов. Пришлось придумывать что-то другое, что-то умное.

Немного подумав, я решил прочитать документацию — что, вероятно, было лучшим вариантом для меня — и понял, что существуют определенные методы для инициализации кучи объектов, которые почти не влияют на производительность игры. Одно только это исправление, казалось, решило подавляющее большинство моих проблем, и в итоге я отказался от метода загрузки фрагментов.

Дизайн и характеристики врагов

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

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

Дизайн обложки

Наконец-то я нарисовал обложку и подготовил игру к релизу. Конечно, это всего лишь демонстрация концепции, пакет, предназначенный для того, чтобы дать настоящим разработчикам игр толчок к созданию аналогичной игры Backrooms.

Заключение

Мне было очень весело программировать этот проект. Даже если это всего лишь крошечная игра и практически без игрового процесса. Тестировать игру и спрашивать мнение друзей об игровом процессе и графике тоже было очень интересно.

Я загрузил проект на мою страницу GitHub на случай, если вы захотите его проверить или использовать в своей игре.

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