Downtown Bazooka
Downtown Bazooka — это игра в жанре 3D-исследования, вдохновленная фильмами «Трон» и «Безумный Макс». Он был разработан с членами Клуба разработки видеоигр UCI в течение 2015–2016 учебного года. Я был главным программистом, и меня сопровождали программист геймплея, звуковой дизайнер и продюсер.
Особенности движка- Пользовательское решение физики
- Пространственное разбиение с использованием октодеревьев
- События столкновений отправляются в систему Entity для программирования игрового процесса
- Столкновения ограничивающей рамки, выровненные по осям
- статические, динамические и триггерные коллайдеры
- триггеры будут проходить через динамику, но все равно вызывать события коллизии
- динамика будет сталкиваться со всем, даже во время движения (наложение врагов)
- Столкновения с местностью на карте высот
- Отладка системы рендеринга
- Система Transform/Entity с поддержкой трехмерного положения, поворота, масштабирования и родительских элементов
- Генерация шума и служебные классы Math
- поддерживает генерацию симплексного и ворлиевского (клеточного) шума с фрактальными вариантами
- используется для процедурной генерации города и местности
- Гибкая система частиц
- Поддержка шейдера Блума и полноэкранного шейдера
- Отрисовка текста для экрана меню и инструкций
- Система звуковых эффектов и воспроизведения музыки
Основной целью этого проекта было узнать больше о C++ и создать собственную игру двигатель с ним. В процессе я также многое узнал об OpenGL и физике. В то время как энgine был в основном с нуля, я использовал SFML для привязки OpenGL, рендеринга 2D-интерфейса и поддержки звука.
О боже, это было сложно. Так много вещей, которые я считал само собой разумеющимися с Unity, в конечном итоге стали огромными препятствиями и препятствиями во время разработки. Вот краткий список наиболее трудоемких частей движка:
- Код рендеринга (обработка сетки, шейдеры, частицы и т. д.), так много разных способов справиться с этим. Закончилось просто супер-оптимизацией отрисовки куба с использованием создания экземпляров, поскольку в основном все в игре — это кубы, кроме ландшафта.
- Система преобразования/сущностей (ТОННЫ матричной математики, чтобы убедиться, что они комбинируются в правильном порядке, чтобы иметь правильные отношения между родителем и потомком). )
- Физика... даже такой простой, как это было только с AABB, 3 различными типами коллайдеров и событиями обратного вызова столкновения, это все равно занимало массу времени и никогда не работало на 100%. Хотя мне все равно, я так горжусь этим кодом. В любом случае, большую часть времени это работало... XD
В целом это был очень полезный опыт, несмотря на боль и мучения без использования движка. Это действительно заставило меня ценить Unity и все, что она делает для вас. Но чувак, нет ничего лучше, чем видеть, как твоя игра загружается очень быстро, как сырое приложение C++, это так круто, ха-ха!
Проект GithubИнструкции по игре
Цель игры — чтобы добраться до каждой путевой точки, а затем победить финального босса. Для этого вы должны использовать свою способность ракетного прыжка (щелчок левой кнопкой мыши), чтобы взорвать себя по карте. Будьте осторожны с врагами и когда тземля превращается в лаву! Удачи!
Как скачать Downtown Bazooka через торрент
Всего несколько простых шагов:
- Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
- Выбираем и скачиваем подходящий торрент-файл репака Downtown Bazooka
- Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
- После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!