152-gcRogue:жажда мести – описание игры

Автор: | 13.05.2018

После того как я обзавелся консолькой собственного изготовления, я почти довел до ума игру gcRogue. Теперь нужна статья, где игра будет описана (для возможности ссылаться на нее из того-же gcManager). Здесь я попытаюсь собирать все, что нужно знать по игре.

Железо

Игра сделана под Arduino Pro Mini (Nano, Uno, ATmega328) и I2C OLED дисплей (смотрите статью по сборке компактной консольки gcConsole и прошивке игры). Кроме того, есть демо-варианты игры под разные типы дисплеев и Ардуины.

Управление игрой осуществляется шестью кнопками: Сюжет

Ваш игровой персонаж – это привидение когда-то побежденного могучего героя (которому даже установили памятник на кладбище в полный рост!). Жажда мести не дает герою покоиться с миром и он в виде привидения скитается по кладбищу. Однажды привидение натыкается на свой памятник и перевоплощается снова в героя, для того чтобы спуститься в глубины подземелья и отомстить за свою смерь главному злодею.

Геймплей

gcRogue – это игра в стиле rogue-like (по простому — «рогалик»). Это значит, что игру невозможно будет пройти с первого раза. Каждая победа очередного босса упрощает игру при последующих ее прохождениях. Еще необходимо планировать свои действия в лабиринте – каких-то монстров убивать (за них начисляются дополнительные очки текущей жизни), каких-то пытаться избегать. Сундуки, разбросанные по лабиринту, могут вылечить персонажа, починить или улучшить его оружие, или могут выпустить призрака, с которым придется сразиться, теряя жизнь.

Для того чтобы спустится на уровень ниже нужно найти в лабиринте и нажать кнопку открывающую лестницу прохода (монстров убивать не обязательно для прохождения уровня). Для того чтобы пройти уровень босса – нужно убить босса после чего появится лестница прохода.

Персонаж


Ваш персонаж (не считая привидения на нулевом уровне) – это герой мечник. Для того чтобы привидение стало мечником, нужно подойти к памятнику герою и перевоплотиться в него (нажать кнопку «Action»). Мечник умеет использовать только холодное оружие, соответственно, для атаки врага нужно подойти к нему вплотную. Для удара по врагу нужно или нажать кнопку движения на врага, или, стоя лицом к врагу, нажать кнопку «Action». Для того чтобы пропустить ход – нажмите «Action». После смерти мечник, снова и снова, перерождается в виде привидения на кладбище нулевого уровня.

Жизнь и оружие


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


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

Бонусы


Сундуки, разбросанные по лабиринту, могут выдать четыре вида лута:

— бутылочки с целебным зельем – лечат героя, заполняя определенное количество сфер жизни

— оружие
— инструмент – ремонтирует оружие, заполняя определенное количество пустых сфер оружия.

— привидение – нападает на героя

Еще в лабиринте попадаются идолы дьявола и ангела, которым можно помолиться, получив определенный эффект:
— дьявол – за счет сфер жизни ремонтирует оружие
— ангел – за счет сфер оружия лечит героя

Монстры


Подземелья населяют различные монстры. Чем глубже вы забираетесь в подземелье, тем более сильные монстры Вам будут попадаться. Кроме силы и живучести, поведение разных монстров будет отличаться друг от друга (они по-разному будут двигаться, кто-то будут раньше замечать персонажа, другие будут дистанционно атаковать и т.д.). Используйте разные тактики для разных монстров (например, для монстров с дистанционной атакой, лучшей тактикой является поджидание их за углом).
Монстры наносят Вам урон в зависимости от своей силы – опустошая целые сферы жизни, или убирая пустые, если целых уже не осталось. После победы над монстром Вам добавится одна пустая сфера жизни (исключение составляют привидения – за них Вы ничего не получите – избегайте их). Для прохождения уровня убивать монстров не обязательно, поэтому рассчитывайте целесообразность уничтожения монстров (если Вы убили монстра с одного удара – получите прибавку к жизни, в противном случае Вы будете терять жизнь и расходовать оружие зазря).

Боссы

На ключевых уровнях Вы встретите боссов. Отличить их от обычных монстров можно по короне над головой. Сила удара и количество жизненной силы у боссов значительно больше чем у обычных монстров (не обманывайтесь тем, что они выглядят похоже). Для прохождения ключевого уровня необходимо убить босса. Убийство босса добавляет одну сферу начальной жизни, делая последующее прохождение игры проще.

Сохранение и восстановление

При переходе на новый уровень состояние игры запоминается. При включении игры Вы начнете играть с последнего не пройденного Вами уровня. Кнопкой «Switch» можно перезагрузить текущий уровень, начав его с начала (здесь можно немного почитерить 😉 ). Игра помнит количество убитых Вами боссов и после каждой смерти у героя будет соответствующее количество сфер начальной жизни. Если Вы хотите обнулить прогресс игры, то найдите на кладбище кристалл и используйте его — у героя обнулятся все дополнительные сферы жизни.

Видео игрового процесса
в версии с джойстиком

в версии консольки


Немного интересных фактов об этой игре:

— прототипом для игры послужила игра 1-bit Rogue под Андроид. От этой игры я взял общую идею и спрайты (простите меня разработчики за это, я знаю – так делать плохо!). Пришлось от многого отказаться (учитывая объем памяти у ATmega328) и многое переработать, но в итоге получился интересный и несложный геймлей, как раз под мой случай.
— изначально я рассчитывал, что героев на выбор будет три — мечник, лучник и маг (для этого и три постамента в центре кладбища) каждый последующий герой, открывался бы после прохождения всей игры предыдущим. От этой идеи пришлось отказаться в пользу цветности (смотри следующий пункт). Но, возможно, я сделаю изначально задуманный вариант, переделав спрайты.
— игра поначалу делалась только для монохромного дисплея, но впоследствии я решил делать алгоритм так, чтобы легко было реализовывать варианты под разные типы дисплеев, в том числе и цветные. Для случая цветного дисплея все спрайты в игре хранятся в цвете (4х-битном). Надеюсь, я не зря забил память цветными спрайтами и руки дойдут реализовать игру на цветном дисплее…

Полезные ссылки и программы:

— gcRogue это первая игра, которую я написал в своей жизни – как-то раньше не пробовал. Было интересно узнавать о чем-то новом и реализовывать это в алгоритмах.
процесс разработки
— лабиринты подземелий не хранятся в памяти (для этого жалко расходовать и так ограниченные ресурсы), а создаются каждый раз случайным образом по алгоритму создания идеального лабиринта. Так что, теоретически, уровней у игры можно сделать очень много;
— некоторые уровни (кладбище, ключевые с боссами и финальные) прорисованы вручную. Пользовался программой Pixel Edit . Рекомендую для подобных целей – самое оно!
— для хранения спрайтов максимально эффективно нужно их упаковывать в подходящий формат. После того, как я нашел для этих целей программу-комбайт LCD image converter — без проблем стало реализовывать любые варианты хранения картинок
— игровая консолька gcConsole (Arduino Pro Mini и I2C OLED дисплей)
демо-версии игры под разные типы дисплеев и Ардуины

(Visited 4 157 times, 1 visits today)

152-gcRogue:жажда мести – описание игры: 23 комментария

  1. GetChiper Автор записи

    По портированию, конечно-же не секрет.
    Если немного разбираетесь в Arduino IDE, то просто нужно заменить библиотеки Ардубой на портированные для моей консольки библиотеки и пересобрать проект — это все.

    Ссылки на библиотеки я оставил здесь http://www.getchip.net/posts/153-novosti-po-gcconsole/

  2. Рус

    В менеджере игра 01.05.2018 без бестиария.
    Про кристалл знаю, спс. Просто было интересно как храниться прогресс.
    И все же самостоятельное портирование реальность или пока фирменный секрет?

  3. GetChiper Автор записи

    Привет!
    Рад что нравится — мне тоже было интересно ей заниматься. Появится время — продолжу.
    Кстати, в той версии что у меня в менеджере игра уже с бестиарием?

    По поводу прогрессе — он хранится в еепром, который не очищается даже после прошивки. Если нужен сброс прогресса заюзайте кристал на кладбище.

  4. Рус

    Здравствуйте!
    Ваша gcRogue на вашей микроконсоли must have! Играю и переигрываю ее вновь и вновь. Даже в недопиленном виде и без звука, она лучше 98% игр для arduboy.
    Сабж.
    Пожелания:
    1. По мере сил допилите игру, не бросайте проект.
    2. Если можно, напишите статью-манул по портированию arduboy 2 GCConsole. Расширим базу игр.
    Вопрос:
    После нескольких прошивок консоль с gcRogue помнит прогресс. Почему?
    С ув. Рус

  5. GetChiper Автор записи

    Памяти пока хватает на реализацию дополнительного контента.. Времени не хватает (

  6. Семён

    А на счёт боссов, можно сделать так, что на определённом уровне появиться сундук, в котором будет босс.

  7. Семён

    Да, картинка будет не такой, но!
    Во первых, можно будет разместить больше обьектов на экране. Во вторых, появиться больше памяти род новые функции, тот же выбор классов.

  8. GetChiper Автор записи

    Портировать нет, а вот что-то подобное можно делать (если уже кто-то не сделал).

  9. destroyer

    Интересно,а можно ли танчики портировать с платформы Денди?

  10. Alexandr

    Можно, например засунуть шахматы из библиотеки u8glib.

  11. GetChiper Автор записи

    Я сейчас этим активно занимаюсь.
    Эксперементирую с цветным дисплеем.
    А на эту консоль, кроме улучшения моей игры (есть идеи как ее расширить), планирую портировать игры из других проектов.

  12. Alexandr

    Добрый день, а будет продолжение создание консоли?

  13. GetChiper Автор записи

    Буду понемногу развивать игру.

  14. Alexandr

    Классно было бы добавить подсчет очков и кол-во пройденных пещер.

  15. GetChiper Автор записи

    Пока это не является готовым продуктом для продажи.
    Еще нужно работать над этим проектом.

    Кстати, вот сейчас переношу проект на цветной OLED.

  16. Alexandr

    Я просто подумал как можно его представить на kikstarter для вас просто прошить чип, и собрать на плате, представить как брелок. Просто посмотрев сколько собрало arduboy и gamebuino. Попробуйте и желаю удачи.

  17. GetChiper Автор записи

    Arduino Zero — 32х битный кортекс — это уже совсем другая категория.
    Дорогая и довольно редкая штука.

  18. Alexandr

    Интересно есть ещё ардуино zero, только в нем больше памяти

  19. GetChiper Автор записи

    Последний подправленный вариант игры не делал. Предыдущие (это почти тоже) есть на любой вариант http://www.getchip.net/posts/147-gc-rogue-nachinayu-dobavlyat-drugie-displei/
    В принципе, не сложно это сделать но у меня есть еще в планах изменения по игре, хочу их внести и потом уже обновить все прошивки.

Добавить комментарий