Gaminator 19: 19 минут чтобы отомстить

Так, прежде всего. Я рисовать не умею. Вся графика с opengameart, ну или из ресурсов опесносорсных игр. Конкретно в превью и в игре в текущем виде- из Ангбанда. http://angband.oook.cz/forum/showthread.php?t=4012

Теперь собственно к игре.

LnYxw4M

Жуткие демоны (однозначно хуже живых мертвецов) возникли из ниоткуда, захватили и разрушили город. Никто не успел ничего сделать. Все герои и защитники — погибли. Но кто-то воскрешает уже однажды убитых героев и посылает продолжать бесполезную борьбу.

Описание основного геймплея — шутер\слешер с физикой и видом «сверху». Десяток или чуть больше различных классов которые разблокируются по мере того как мы находим их трупы, у каждого класса два умения и какая-нибудь интересная механика. Например: воин — левой кнопкой рубит мечом (удар описывает левый полукруг относительно направления на курсор мышы), правой кнопкой бьет щитом (соответственно правый полукруг, отбрасывает врагов и может отбивать выстрелы). Надо чередовать клики пока не сломаешь мышку. Танцор — цепляется за врага и вращается вместе с ним, как это будет выглядеть пока не очень представляю. Лучник — пока держишь левую кнопку он натягивает тетиву, пока держишь правую — меняет угол (дистанцию атаки). Надо хладнокровно зажимать и отпускать кнопки точно в нужный момент, неудобство прицеливания компенсируется разрушительным уроном.

В итоговую версию лучник не вошел, а у воина механика поменялась, но общий смысл не поменялся.

Тема — сегодня я чувствую боль.

Обоснование темы — Боль — важный элемент геймплея. Базовая механика — при нанесении урона большая его часть — не постоянные травмы, а просто временная боль, которая может убить также как травмы, но убывает со временем. Получается что-то среднее между классическими хп (в каждом бою теряешь хп пока они не кончатся) и полной регенерацией (если выжил в одной схватке — здоровье полностью восстанавливается со временем).

А дальше к этой базовой механике добавляются особенности героев. Воин забывает о боли нанося урон другим, варвар совсем не чувствует ни боли ни повреждений, лекарь чувствует чужую боль как свою, у кого-то начинают дрожать руки, а кто-то наоборот использует свою боль для усиления заклинаний.

Почему именно эту игру — Когда первый раз делал топдаун игру с физикой, получилось классно. Потом много раз хотел повторить, но каждый раз мешали то какие-нибудь технические проблемы то нехватка времени. Может хоть сейчас получится. Правда насчет соответствия теме я пока не уверен, да и вообще начало разработки не слишком многообещающее, за пару дней успел понаставить костылей интегрируя куски кода из прошлых попыток (лучше бы с нуля делал). А сегодня я убил целый день заменяя графику на другой ассет с opengameart, потом запустил, понял что старая графика таки лучше и вернул старую. Но теперь мне будет жалко этого потерянного дня, так что постараюсь доделать.

smju0Qt

о себе — 34 лет, живу в Москве, работаю программистом в области микроконтроллеров, в качестве хобби пилю игры, а последние полтора года еще увлекаюсь историческим\ролевым фехтованием. Игры мне пилить нравится больше, но у ролевиков зато можно с людьми пообщаться, да и вообще круто же.

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

Из игр — много чего делал, с детства, но кроме опыта особых результатов не достиг. Небольшой список проектов тут

Методы разработки

Если бы в crystal-lang доделали поддержку винды, делал бы всё на нем. Но пока там только линукс, а в игру на линуксе никто не сыграет, да я даже сам не могу ее на другом компе запустить без кучи манипуляций с библиотеками. Поэтому пока так:

Движок — свой, на паскале. По большому счету просто обертка над SFML. Сама игра — на руби. Графика — из бесплатных ассетов, доковырянных в Paint .NET. Физдвижок — chipmunk, собственно все инструменты в сборе, задача ясна, за работу. Главное — не продумывать слишком далеко вперед, а то пилить код станет скучно.

Если чуть подробнее сам процесс описать (да, я знаю что баллы уже зачли, но я графоман)

Сначала придумываю идею. Без бумаги и прочего, просто хожу и думаю. Обычно какая-нибудь песня\фильм\игра\эпизод из книги вспоминается и наводит на мысль (правда потом изменяется почти до неузнаваемости, т.к. при разработке для меня важнее геймплей, а идея подгоняется под геймплейные механики), иногда что-то более абстрактное, иногда старая идея вспоминается. Когда идея пришла и я ей «загорелся» — примерно прикидываю сколько это работы и что прикольного можно включить в игру в идеальном случае. Иногда получается фигня — или слишком дофига работы, или геймплей не вырисовывается, или какой-нибудь неочевидный дефект, приходится искать другую идею.

Примерно одновременно с идеей появляется понимание на чем делать — не то чтобы у меня был широкий выбор инструментов, лол. По большому счету либо руби, либо паскаль, либо кристал. Первый тормозной, второй многословный (но зато можно собрать для андроида), третий на линуксе. Из движков — BearlibTerminal для текстовых игр, Свойдвижок (https://gitlab.com/kipar/nonoengine) — с недавних пор дефолтный выбор, ZеnGL если игра сойдет для андроида, иногда — чистый opengl + паскаль.

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

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

Ну и дальше всё в общем также — чеклисты и идеи в телефоне, берем самые простые задачи и исполняем (обычно даже не заглядывая в телефон). Скорость — примерно 1−2 пункта в день, так что по длине чек-листа легко прикинуть укладываюсь ли в срок и соответственно начать урезать фичи когда укладываться перестаю. После реализации каждой штуки запускаешь и гоняешь, чтоб убедиться что игра стала интереснее.

Кому, по вашему мнению, должна понравиться игра — МНЕ, А В ПЕРСПЕКТИВЕ — ЛЮБИТЕЛЯМ РЕАЛТАЙМ РОГАЛИКОПОДОБНЫХ ИГР КОТОРЫХ НЕ УСТРАИВАЮТ ВСЕ ЭТИ МЕЙНСТРИМНЫЕ АЙЗЕКИ И ГАНЖЕНЫ.

qOfsXOU

oVjYzvV

HUIqTUq

Релиз!

https://bitbucket.org/kipar/nmtr/downloads/19mToRevenge.zip

Версия для 32-битной винды (почему-то работает намного медленнее): https://bitbucket.org/kipar/nmtr/downloads/19mToRevenge-x86.zip

Исходники: https://bitbucket.org/kipar/nmtr

Запускать: запускать run.bat.

Я извиняюсь что в корневой каталог вывалена куча файлов исходников, но сейчас два ночи и мне лень исправлять. Надеюсь, что вы сможете найти среди них единственный bat файл.

Да, если на втором уровне у вас меньше 57 фпс (на первом уровне все должно быть ок даже на слабых компах) — сорри, всё плохо, нормально играть не выйдет, дальше будет тормозить сильнее. Разработка на топовом компе расхолаживает, я постараюсь исправиться. Или нет.

  • kipar
  • 13 мая 2019, 01:59

Результаты голосования

Самая стильная игра13 место (0)
Лучшая история16 место (1)
Самая оригинальная игра16 место (0)
Лучший геймплей17 место (0)
Самая целостная игра18 место (0)
Основное голосование23 место (0)
Blank