По определенным причинам стало совсем мало времени на проекты блога, но я все равно понемногу уделяю внимание начатым устройствам. Вот недавно перешел к финальной стадии разработки игры для Arduino с OLED дисплеем – GC Rogue. Хочу поделиться с Вами текущим прогрессом!
Оставляю тестовую прошивку, загрузив которую уже можно полноценно пройти несколько уровней (сделал непроходимым первого босса), ознакомившись с игровым процессом.
gcrogue.zip (3046 Загрузок)
Напомню несложную схему для сборки игры:
Записать HEX-файл в Arduino можно программой GC-Uploader
В финальной версии проекта планирую сделать модификацию GC-Uploader для того чтобы заливать прошивку в пару кликов.
А теперь расскажу, что было сделано:
Во-первых, игра теперь называется GC Rogue (причины, почему отказался от приставки «1-bit» — ниже). У игры появилось свое лого – картинка в начале статьи.
Во-вторых, окончательно проработан сюжет игры и уже вряд ли что-то кардинально поменяется. В ходе реализации пришлось отказаться от некоторых начальных задумок, но я считаю, что это пошло только на пользу проекту. Убрано много лишнего и теперь игра стала более целостна.
В-третьих, дописаны и оптимизированы различные части движка игры и теперь на нем можно будет создавать другие игры под Ардуино (я уже присматриваюсь к вариантам).
Вообще, на удивление, мало толковых игровых проектов на Ардуино. Это странно, так как AVR-контроллер производителен и с разрешением дисплея 128х64 можно реализовывать довольно сложные по графике игры.
Вот примеры того что есть ArduBoy Gamebuino
В-четвертых. В процессе создания движка игры пришло понимание того, что нужно сразу делать цветную игру. Что и было сделано (ниже пример — набор спрайтов анимации скелета). Теперь для портирования игры на цветные дисплеи, переделки будут минимальны. По этой причине приставка «1-bit» теряет смысл, так как каждую точку спрайта теперь описывают 4 бита (8 цветов + прозрачность). И по этой же причине пришлось ужимать игровой процесс – спрайты стали занимать гораздо больше места.
Немного пояснений по геймплею.
Как и должно быть, для rogue-like игр, GC-Rogue будет хардкорной игрой. Это значит, что ее невозможно будет пройти с первого раза. Каждое удачное прохождение очередного босса упрощает игру при последующих ее прохождениях (будет увеличиваться начальное количество жизни персонажа). Соответственно, чтобы двигаться вперед вам придется постоянно умирать, накапливая дополнительные очки жизни. Кроме этого, придется планировать свои действия в лабиринте – каких-то монстров убивать (за них начисляются дополнительные очки текущей жизни), каких-то пытаться избегать. Сундуки, разбросанные по лабиринту, могут вылечить персонажа, починить или улучшить его оружие, или могут выпустить призрака, с которым придется сразиться, теряя жизнь. Соответственно, нужно подгадывать правильный момент, когда открывать сундук. Еще есть идолы дьявола и ангела, которым можно помолиться, получив определенный эффект.
Характеристики каждого типа монстра – уникальны. Поведение разных монстров будет отличаться друг от друга (они по-разному будут двигаться, кто-то будут раньше замечать персонажа, другие будут дистанционно атаковать и т.д.).
В игре принципиально не будет каких либо пояснений и описаний – все придется исследовать самому, что тоже затрудняет задачу прохождения…
Игра почти готова.
Осталась работа по балансу (определение оптимальных характеристик монстров и уровней, что довольно не просто, как оказалось), придумать финал сюжета и прописать сценарии поведения нескольким мобам.
Скоро финальная версия!
Здравствуйте, очень понравился ваш проект, собрал его, но почему-то не получается загрузить прошивку.
Ответил в дубле
Я проверил подключение индикатора 0,96» SPI вместо 1,3» SPI по схеме
+ -> +
GND -> GND
D0 -> CLK
D1 -> DIN
RES -> RES
DC -> D/C
CS -> CS
Так показывает заставку с надписями, скролит, вобщем работает,
но индикатор отображает с сильно пониженной яркостью ((( В чем проблема отображения?
Индикатор, ардуина, питание — заведомо исправны
Да, I2C по сравнению с сSPI работает немного медленнее (но для данного типа игр — это не критично).
По поводу размера дисплея — тоже правда 0,96 — маловато немного (1.3 уже лучше), но зато если его совмещать с ProMini + аккумулятор компактный — получается портативная консолька :). Я уже примерял — выходит интересно. Буду себе, как один из вариантов, такое делать (будет отдельная статья).
Сегодня утром проверил, работает на Ура, но чувствуется небольшой лаг — видимо из-за I2c интерфейса.
И экран маловат, даже на примерах fritzing разница в размерах видна,
может со временем и прикуплю SPi дисплей.
В итоге я был приятно удивлен всей реализацией
при старте игры даже чувствуется какая то ламповость проэкта чтоль.
Жду не дождусь конечного результата 🙂
Готов демо-вариант для I2C и видео есть
ссылка
Читал вроде, что вы хотели на цветной перейдти.
Могу посоветовать модуль на SPFD5408, мой на 2.4 дюйма (320×240).
По сравнению с 0’96 разница чуствуется https://ibb.co/htzpt6
Сам я его планирую для эмулятора использовать.
А пока я жду вариант под I2C, yж больно хочется посмотреть насколько все шустро работает в живую 🙂
Пока исходника не будет — есть причины (как полностью закончу проект — будет видно), а вот варианты на разные экраны буду делать точно.
В ближайшее время сделаю вариант под I2C. Планирую его так-же напрямую подключить к портам МК. Какие есть пожелания по подключению еще?
В одном их коментарииев вы обещали открытый исходник или вы передумали?
Хотелось бы под другой экран переделать (у меня тот же SSD1306, только по I2C)
Номиналы резисторов не столь важны — можно варьировать в широких пределах (300 Ом уменьшать нельзя)
https://pp.userapi.com/c621700/v621700631/28014/iKXWqeW8zIA.jpg
Попробую получше камеру поискать
Картинка есть,с кнопками не могу что-то разобраться( номиналы резюков строго 2,4к и 300?) за фото прошу прощения ,снимала девушка( да и качество — отстой))
Позже будет вариант с кнопками напрямую подключенных к ногам МК (без мудреной схемы подтяжек).
Отлично!
Не ожидал, что без правки процедуры инициализации дисплея заработает вывод изображения… — меньше будет модификаций.
Жду отчета после кнопок. Если получится тогда и пару фоток хорошо-бы сделать.
Попробовал на своём(Ssd1306) . Картинка есть ) ,кнопки тока пока не сделал .
Да, но нужно будет сделать вариант прошивки отдельно для него.
Как будет финальная версия я постараюсь наделать прошивок под разные дисплеи с разными интерфейсами.
Так понимаю, дисплей типа SSd1306 тоже подходит?
Любая читалка RSS воспримет просто ссылку на сайт.
или так http://www.getchip.net/feed/
Здравствуйте. Подскажите как подписаться на новые статьи на сайте (rss например).
Видео готовлю для финальной версии.
Экран можно и 2х цветный — это по сути тот-же экран с разукрашенной в другой цвет зоной точек.
Главное чтобы разъем дисплея был то-же.
Кстати, как раз линия со статусом оружия и жизни ровно вписывается в цветную область (правда не уверен куда попадет эта область вверх или вниз, но это тоже не проблема — изображение можно переворачивать)
Для финальной версии буду делать модификации и на другие типы выводов дисплея (IIC, например гораздо чаще встречается)
а еще вот такой дисплей пойдет двухцветный или надо однотонный?
http://jselectronics.com.ua/%D0%B8%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F/oled-spi-0_96-%D0%B4%D1%8E%D0%B9%D0%BC%D0%B0-%D1%81%D0%B8%D0%BD%D0%B8%D0%B9-%D0%B6%D0%B5%D0%BB%D1%82%D1%8B%D0%B9.html
ссылку с тегом не получилось вставить
Свершилось ! 🙂
А видео процесса игры нет?