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 369 times, 1 visits today)