3D игра “Space Potatoes” для Arduino Uno на Raycasting движке
Идея игры и название “Space Potatoes” — отсылка к циклу рассказов Станислава Лема о Ийоне Тихом, а именно «Путешествие двадцать пятое», где главный герой вспоминает о том, как неподалеку от планеты Таирия на него напал хищный картофель.
Движок проекта был основан на проекте «Doom для Arduino Uno» от daveruiz (github.com/daveruiz/doom-nano).
Состав проекта
Микроконтроллер: Arduino Uno (ATmega328P)
Дисплей: OLED 0.96" 128x64 (SSD1306)
Ввод: Тактовые кнопки — 6 шт.
Звук: Пьезоизлучатель (зуммер)
Монтаж: Breadboard и провода-перемычки
Использовано ресурсов системы
RAM: 88.9% (использовано 1821 байт из 2048 байт)
Flash: 99.7% (использовано 32174 байт из 32256 байт)
Попробовать игру можно без сборки схемы в живую. Достаточно запустить клон проекта в симуляторе схем Wokwi (онлайн версия симулятора бывает долго грузица в зависимости от нагрузки на сервер): https://wokwi.com/projects/468449607199932417
Управление
LEFT (влево) — Поворот налево
RIGHT (вправо) — Поворот направо
UP (вверх) — Движение вперёд
DOWN (вниз) — Движение назад
FIRE — Стрельба / Атака кулаком
WEAPON — Сменить оружие
Ключевые особенности
3D-графика: Рендеринг 3D-сцены с textures в реальном времени.
Игровой мир: 4 уровня (3 основных, 1 секретный).
Интерактивность: Открывающиеся двери, текстурированные и анимированные стены.
Боевая система: 4 типа оружия, 4 типа рядовых врагов, 3 типа боссов.
Игровой процесс: 3 уровня сложности, скрытые пасхалки.
Интерфейс и визуал: Анимированный HUD, анимированные заставки начала игры, хорошего и плохого финалов.
Аудио: Опция включения/выключения фоновой музыки.
Чит-код Konami: ↑ ↑ ↓ ↓ ← → ← → FIRE WEAPON
Игровые отсылки и пасхалки
Оружие
E_WEAPON_BLASTER — бластер (Star Wars)
E_WEAPON_PLASMA_CUTTER — лазерный резак (Dead Space)
E_WEAPON_BFG9000 — оружие BFG9000 (Doom)
Предметы
E_SEPULKI — сипульки (книги Станислава Лема о Ийоне Тихом)
E_METAL_BOX — куб-компаньон (Portal)
Текстовые цитаты в заставках
Вступление: "FAR FAR AWAY NEAR TAIRIYA" (отсылка к Star Wars)
Хороший финал: "TO INFINITY AND BEYOND" (фраза Базза Лайтера, Toy Story)
Плохой финал: "WASTED" (экран смерти, GTA)
Ссылка на GitHub: https://github.com/dotermine/3D-game-Space-Potatoes-for-Arduino-Uno

