Разработка игр | 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 на случай, если вы захотите его проверить или использовать в своей игре.
Спасибо за прочтение статьи! Я надеюсь, что смогу мотивировать вас попробовать программное обеспечение с открытым исходным кодом или даже разработать игру для себя.