Results
Ranked from 18 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.
Название команды или ник в дискорде
n00b#1813
Описание игры и управление
Вы - последний оплот человечества в этом секторе!
Вы должны отразить все атаки врага и сохранить материнский корабль
(он самый большой, подсвечивается зелёным квадратом).
Волны врагов начинаются по таймеру - через 2, 5 и 20 минут.
Эта так называемая игра недоделана.
Врагов очень много, и они слишком быстро выносят - надо править баланс, например, увеличить хп материнскому кораблю раз в десять.
Ещё кораблики "косые", и мочат друг друг слишком медленно.
==========================================================
Управление:
В режиме камеры от первого лица (для свободного перемещения по сцене):
WASD, C и пробел - перемещение.
Shift - ускорение.
Escape - выйти в меню.
Навести на какой-нибудь свой корабль и нажать левую кнопку мыши - перейти в режим управления кораблём.
В режиме управления отдельным кораблём (недоделано, очень неудобно):
Пробел - стрельба.
WASDQE - вращение.
F - ускорение вперёд.
Shift - "форсаж".
Escape - перейти в режим от первого лица (тогда корабль затормозится).
Колёсиком мышки можно приближать/удалять камеру.
Pause - пауза (недоделано).
При второй заливке из-за спешки в билд попали неиспользуемые ассеты, а в экзешнике остались дебажные гизмо, проверки и ассёрты. По F1 открывается меню движкописателя. Клавишей T можно спаунить дружественные корабли, по Y - вражеские.
F3 - дебажная подсветка.
F5 - сохраняет текущее положение камеры от первого лица, F9 - загружает последнее сохранение камеры.
==========================================================
Внимание
По умолчанию запускается в полноэкранном режиме. Если надо запустить в оконном, то в текстовом файле SpaceGame.cfg нужно проставить fullscreen в 0 (остальные поля можно удалить), например,
window = {
fullscreen = 0
}
Или можно сменить режим на оконный в настройках игры, и перезапустить игру.
==========================================================
Баги
- Alt-Tab не обрабатывается, поэтому на стриме лучше запускать в оконном режиме.
Для запуска требуется процессор с поддержкой SSE4.1.
Используемый стек технологий
Самопальный 3D-движок NoobWerks, написанный на C++ (развитие предыдущих движков Testbed и Lollipop3D), использующий Direct3D 11, SDL2, FMOD и кучу других мелких либ; наработки с другого конкурса (где надо было сделать шутер от первого лица; оттуда были взяты каркас приложения и меню).
Технические фишки игры
Технология:
- компиляция контента с кастомной обработкой моделей космических кораблей (генерация ЛОДов и оптимизация мешей)
- в рантайме грузятся только бинарные форматы, никаких JSON или XML (только конфиги хранятся в тексте, в своём JSON-подобном формате)
- рефлексия на макросах
- in-place загрузка ассетов (объекты грузятся как дампы памяти)
- возможность мгновенного рестарта игры без каких-либо аллокаций памяти
- векторизация через интринсики
Графика:
- Тайловое отложенное освещение.
- "тонкий" G-Buffer, состоящий только из двух 32-битных текстур (не считая буфера глубины)
- "обратный" буфер глубины (reversed-Z).
- инстансинг моделей кораблей: каждая вершина меша "весит" 8 байт, а параметры инстансов передаются как позиция и кватернион;
все корабли рисуются в несколько дро-коллов.
- для отрисовки кораблей используются ЛОДы (у каждой модельки их четыре).
- трассеры выстрелов рисуются квадами с раймарчингом внутри них
- процедурный скайбокс (генерится на ЦПУ при загрузке).
- иерархическое отсечение по пирамиде видимости с помощью BVH (AABB tree).
- стандартный постпроцессинг: HDR, Bloom, FXAA.
AI:
- бойды, с ускорением поиска ближайших соседей через BVH.
- ЛОДы, обновление кораблей размазано по кадрам.
Кто из участников что делал
Весь кодинг делал один нуб, модели кораблей взяты с https://www.turbosquid.com/3d-models, звуки с https://mixkit.co/free-sound-effects, музыка: https://www.serpentsoundstudios.com.
Leave a comment
Log in with itch.io to leave a comment.