Chillwave Drive

Прототип гоночной игры на языке D и движке Dagon. Создается преимущественно как техно-демка Dagon, но не исключено, что в будущем перерастет в полноценную игру.

Физика в демке честная, не аркадная. Chillwave Drive использует Newton Game Dynamics в качестве базового физического симулятора и реализует собственную модель динамики и трения для колес. При движении используется динамическое трение (продольное и поперечное) на основе формул Pacejka ’98, при остановке – статическое, препятствующее боковому скольжению машины на склоне.

Демка поддерживает управление как с клавиатуры, так и с контроллера (рекомендую контроллер Xbox или аналогичный, где есть плавный ход триггеров). Используется динамическое окружение – клавишами-стрелками можно менять время дня и степень облачности. Есть звуки и музыка – в качестве аудиодвижка используется SoLoud.

Репозиторий проекта: https://github.com/gecko0307/ChillwaveDrive

Скачать сборку для Windows

Electronvolt (в разработке с 2012)

Electronvolt или сокращенно eV (ранее известна под рабочим названием Atrium) – мой текущий проект по созданию игры на языке D. Это научно-фантастическая головоломка от первого лица (first person puzzle) с механикой, основанной на физике. В настоящее время проект находится на стадии прототипа и подготовки контента.

2103 год. Человечество колонизирует ближайшие звездные системы. Организация колонистов United Space Mission исследует необычные астероиды в системе Ран (ε Эридана), которые состоят из неизвестного сверхплотного вещества и имеют гравитацию, подобную земной. USM соединила три астероида – Мидгард, Асгард, Хельхейм – в сеть с помощью лифтов Арцутанова. Эта структура получила название Иггдрасиль. Большую часть работы на Иггдрасиле выполняют роботы, поэтому там нет необходимости в постоянных жителях. Раз в год инженерная группа USM посещает структуру, чтобы пополнить запас материалов, провести проверки и установить новое оборудование. Однажды на Иггдрасиле произошла загадочная авария, в результате которой часть объектов получила значительные повреждения. Главному герою, выжившему инженеру USM, предстоит спастись с астероида. Действие игры происходит в среде с неравномерной гравитацией – есть места, где она слабее, и в таких местах игрок может прыгать выше. Игрок использует гравитационную пушку для перемещения объектов и магнитный крюк для перемещения себя в пространстве.

Репозиторий проекта: https://github.com/gecko0307/electronvolt

Страница на Game Jolt: https://gamejolt.com/games/electronvolt/46185

Страница на IndieDB: https://www.indiedb.com/games/electronvolt

История разработки:

  • Декабрь 2012 – ранние версии графического движка (DGL) и экспортера сцен для Blender;
  • 2013-2014 – разработка физического движка (dmech), первые играбельные сборки;
  • Конец 2014 – черновик сюжета;
  • Январь-апрель 2015 – рефакторинг DGL, начало работы над игровой механикой, контентом и спецэффектами;
  • Осень 2015 – существенно улучшен DGL, разработан концепт главной героини, продолжается работа над механикой; 
  • Декабрь 2015 – очередной рефакторинг DGL;
  • Февраль-март 2016 – работа над контентом;
  • Апрель-май 2016 – новый формат для хранения моделей и сцен; 
  • Июнь-июль 2016 – PBR-рендер в DGL;
  • Август 2016 – работа над контентом и спецэффектами;
  • Осень 2016 – сентябрь 2017 – разработка нового графического движка Dagon, с переходом на SDL2 и новый метод управления памятью;
  • Сентябрь-октябрь 2017 – портирование Dagon на OpenGL 3.3;
  • Ноябрь 2017 – март 2019 – доработка Dagon, реализация отложенного рендера, новой системы шейдеров, рендеринга ландшафтов и множества других фич;
  • Май 2019 – октябрь 2020 – разработка Dagon 0.11, рефакторинг рендер-движка, пересмотр некоторых архитектурных решений;
  • С ноября 2020 – интеграция Newton Game Dynamics на замену dmech, работа над контентом;
  • С апреля 2021 – работа над альфа-версией.

2048×2 (2014)

Десктопный клон популярной игры-головоломки 2048 для двух игроков. Экран делится пополам: левое поле управляется WASD, правое – клавишами-стрелками. Игровой процесс, теоретически, может продолжаться бесконечно – пока не заполнятся оба поля. Побеждает тот, кто к концу своей игры наберет больше очков.

Игра написана на D с использованием OpenGL, SDL и Freetype.

Cборка для Windows
Сборка для Linux
Исходники (для компиляции нужен игровой движок DGL)

Arrow (2013)

Мини-игра наподобие «Тетриса», которую я от нечего делать написал за ту неделю, когда у меня не было доступа в Интернет. Это, фактически, клон java-игры GuruGuru, предустановленной на мой телефон (Pantech PG-1500). Она отличается от классического «Тетриса» оригинальной механикой: вместо простых блоков здесь блоки-стрелки. Вы должны выстраивать линии из стрелок, указывающих в одном направлении. Есть четыре однонаправленные стрелки (вверх, вниз, вправо, влево), две двунаправленные (горзонтальная и вертикальная) и одна четырехнаправленная. Как только выстроена линия в 3 и больше стрелок, она исчезает, а все соседние с ней стрелки поворачиваются на 90 градусов. Есть также «бетонный» блок без направления, который исчезает только вследствие исчезновения его соседа. В игре нет уровней, системы подсчета очков или каких-либо иных целей – просто бесконечный игровой процесс. Если экран заполнится блоками доверху, игра заканчивается.

Игра написана на D с использованием моего традиционного инструментария: OpenGL, SDL, Freetype, Derelict, dlib.

Скачать демо (0,93 Мб)
Исходники

Crematorium (2007)

Игра была сделана для II конкурса портала GameCreating.ru (сам сайт давно уже прекратил существование, но сообщество еще живо: https://gamecreating.borda.ru). Конкурс проводился в 2007 году.

Задачей было создать игру с администраторами портала в главной роли. Кому интересно – тред с голосованием. Crematorium не заняла призовое место, так как не вполне соответствовала требованиям конкурса (я попросту адаптировал почти готовую разработку для участия), но была отмечена членами жюри и сообществом за атмосферность и хороший звук.

Игра примечательна тем, что это мой первый проект в 3D-графике. Представляет собой несложный коридорный шутер в стиле Doom и Duke Nukem: спрайтовые враги и оружие на фоне трехмерных одноэтажных локаций – подземных лабиринтов. В игре всего 5 уровней (в начале каждого выводится краткий инструктаж с миссией), 3 типа оружия (пистолет, автомат, гранаты), два вида врагов и один финальный босс.

Одна из особенностей Crematorium – адаптивный саунтрек. Иными словами, музыка зависит от происходящей ситуации – например, при приближении к опасному месту воспроизводится нарастающий тревожный звук, а во время боя – динамичный метал.

Игра сделана на конструкторе Game Maker 6.1 с использованием встроенного Direct3D-режима.

Скачать (21.3 Мб). В архиве обновленная версия 2020 года. Старый звуковой движок Saudio заменен на GMSquall, что исправило проблему с ошибкой при запуске на некоторых системах. Также добавлена возможность растягивать окно, исправлено множество ошибок. Прилагается GMK-исходник.

Известные неисправленные баги:

  • Ближе к концу 2 уровня, если встать в воду коллектора, игрок может взлететь в воздух через потолок.
  • В лабиринте на 4 уровне пули не всегда долетают до врагов – проще всего не пытаться их уничтожить, а просто убегать за угол.

Robots (2007)

Один из моих первых опытов с 3D-графикой — action-adventure о приключениях во вселенной роботов, выполненный в стиле таких игр, как Spyro the Dragon и Crash Bandicoot (своеобразный трибьют эпохе PlayStation – как идейный, так и технический). Игра так и не была завершена: в данной альфа-версии есть три локации, один NPC и несколько врагов.

Игра сделана на конструкторе Game Maker 6.1 с использованием встроенного Direct3D-режима. 

Скачать (5,5 Мб). В архиве обновленная версия 2017 года, в которой устранены некоторые баги и выставлено разрешение 1024х768. Исходник для Game Maker 8.

City Builder (2006)

Симулятор градостроительства. Каждый построенный жилой дом увеличивает население вашего города, которое ежемесячно платит налог в казну. Размер налога зависит от степени развития городской инфраструктуры: количества магазинов, ресторанов, банков, отелей, садово-парковых зон и т.д. Можно строить заводы, которые ухудшают условия жизни в городе, но зато приносят высокий доход, а также сажать деревья, прокладывать асфальт, газон, песок и воду. Есть возможность сохранять и загружать города, а также выбирать фоновую музыку.

Игра сделана на конструкторе Game Maker 6.0.

Скачать (1.3 Мб)

Spider-Man: The Ultimate Fighter (2006)

2D-файтинг с Человеком-пауком в главной роли. Есть три уровня с возрастающей сложностью – вы должны победить зомби, Скорпиона и Росомаху. Относительно мощный (для игры на Game Maker) искусственный интеллект: с некоторыми врагами одержать победу с первого раза будет непросто.

Управление: стрелки влево/вправо – перемещение, стрелка вверх – прыжок, пробел – удар, пробел + влево/вправо – выстрел паутиной, Escape – пауза, F6 – пропустить уровень. Есть также поддержка джойстика.

Игра сделана на конструкторе Game Maker 6.0.

Скачать (16.1 Мб)

Croggler (2006)

Одна из моих первых законченных игр. Простенький платформер из 15 уровней, на каждом из которых вы должны победить черного призрака, летающего под потолком. Ваше единственное оружие – бомбы, которые призрак время от времени скидывает. Если бомбу вовремя не подобрать, она взрывается. На некоторых уровнях есть также второстепенные враги – их уничтожить невозможно, остается только уворачиваться.

Имя главного героя представляет собой вымышленное слово, производное от «croggle» — «ошеломлять», «оглушать» (слово придумано писателем Дином Греннеллом).

Игра сделана на конструкторе Game Maker 6.0.

Скачать (2.6 Мб)

Ранние игры (2005-2006)

Пак из 6 простых игр: клон «Арканоида», настольный теннис, скроллинг-шутер в антураже «Звездных войн», игра в стиле Space Invaders и т.д. Графикой, геймплеем и какой-то оригинальностью они, конечно, не блещут – я в те годы только начинал изучать геймдев, и это были мои первые поделки.

Все игры сделаны на конструкторе Game Maker 6.0.

Скачать (19,7 Мб)