Runners - постмортем участника GM48
Я не уверен что здесь так принято, но рискну написать пост про свои «как дел». Нужно завершить гештальт, а то ночами не сплю. А хотелось бы выспаться:)
Предыстория.
Я записался участвовать в Gaminator, заангажировал всех (да и себя отчасти), но в итоге слился на середине пути. Тут работа, там фриланс, еще и тренировки... в общем, жизнь взяла за горло. Или еще за что. Не люблю поэтому длинные джемы и средне-крупные проекты. Люблю короткие спринты по 48 часов, чтобы на выходные засел, сбацал, и готово, можно вернуться в будни с чувством выполненного долга.
Так и решил сделать, ибо накануне закрытия Гаминатора как раз подходил срок для GM48 — джема для пользователей известного GameMaker: Studio.
TL;DR — решил сделать и сделал. Ай да я.
День первый. Суббота.
Так как джем пиндосский, то по московскому времени он начинается то ли 5, то ли в 6 утра. Раньше я заводил будильник, сейчас обленился и начинаю день в районе 9 часов. Тема — Companion. Ну что же, не самый плохой вариант (на gm48 принято создавать общий пул тем и голосовать за них в несколько этапов, поэтому приблизительно было известно к чему всё идет).
Заварив кофе, я начал думать над концептом. Где-то я слышал теорию о том, что мужики-де фокусируются на будущем, оценивая риски и выгоды, а дамы живут настоящим и видят возможности и ценности. Что-то около того. В общем, тема джема меня и натолкнула на концепцию игры, которую я поспешил записать в виде «несущих столбов»:
- Ассиметрическая кооперативная игра для двоих (couch-game, игра на одном устройстве, подразумевал но не успел запилить поддержку двух геймпадов).
- Упрощенная киберпанк-эстетика (для простоты отрисовки и саундизайна).
- Общие и индивидуальные цели (один сгорающий ресурс энергии, но две полоски здоровья)
Опираясь на этот список, я быстро набросал список фич, отсортировал их по типу waterfall-а, и вуаля. Передо мной лежал объем работ на следующие 48 часов (фактически меньше, но я еще не знал насколько).
Всю субботу я писал код. Кусал локти когда дошел к части со сплит-скрином — по идее игры каждый персонаж должен был видеть игровой уровень по-разному. Один видит ловушки и хищников, другой видит источники энергии и здоровья. Это «зрение» не пересекается — то есть второй персонаж не видит ловушки, например.
К вечеру субботы я управился с меню выбора персонажей и геймплеем, и начал рисовать главный экран.
День второй. Воскресенье.
И всё бы ничего, если бы на вск не была назначена маленькая пивная вечеринка в честь дня рождения моего товарища по команде. И всё бы ничего, если накануне поздно вечером не обсуждалась поездка на страйкбол в честь именниника. И всё бы ладно если бы обсуждение не зашло в тупик, и я не решил что поездка провалилась.
9:00. Я пью кофе и неспешно рисую экран. В вацапе неспокойно, кто-то куда-то собирается ехать. Уверенно собирается. Уже собрался. Уже едет. Через десять минут заедет за мной.
ВАТАФАК???
Мне удалось отсрочить выезд, но дорисовывать арт пришлось всё таки впопыхах, одной-ногой-здесь-другой-там собирая снарягу и подключая аккумуляторы к зарядным устройствам. Отдам себе должное — я почти успел дорисовать.
15:30. Игра закончилась. Накачанный допамином по уши (на последних минутах сделал отличный проход в семь фрагов), я приехал домой. Душ, сникерс, го джем.
16:00. Титулка готова. Ощущая жесткий лимит по времени, решил не мутить с названием, не делать поддержку геймпадов, и вообще не разгоняться. Всё что нужно было, я сделал. Кроме озвучки... фак!
16:15. Именниник мне напоминает, что в 18:00 (край в 19:00) меня ждут в пабе Harats. Оке, челлендж принят.
16:35. Готов саундтрек и звуковые эффекты. Осталось чуть больше часа (хочу поужинать), нужно поиграть в игру и потестить всё.
16:55. Вроде всё ок. Нарезать иконку, баннер, сделать билд, залить на сайт. Готово! Я шикарен!
17:00. ...или нет. Понимаю, что нужно делать спецэффект, минимум один. Когда активируется энергетическая ловушка, непонятно что произошло — есть взрыв, но здоровье не отнимается. Я решил что это баг здоровья, но потом дошло — это был чёртов минус на энергию. Если я, автор игры, этого не понял, это явный косяк.
17:30. Окей, готово. Теперь есть яркая белая полоска, которая контрастно и жирно выделяется, а потом сжимается до текущей отметки ресурса энергии. Четко видно сколько было, сколько сгорает из-за ловушки, и сколько остается. Каеф!
17:50. Лажа. Когда энергии остается мало, нет смысла продолжать играть — нет возможности успеть хакнуть источник. Нужно срочно вставить маленький дополнительный if-then-чик, чтобы в таком сценарии энергия убывала с пониженной скоростью.
18:00. Готово! Аплоад!
18:05. Девушка приготовила ужин. Вкуснятина!
18:06. А если игрок будет хакать источник на таком мизере энергии, что даже пониженной скорости будет достаточно для гамовера?... Пиляяць...
18:07. Пишу новый if-then, чтобы энергия переставала убывать в случае если идет хакинг, а энергии меньше 2 пунктов.
18:10. Аплоад...
18:27. Финальный тест. Всё работает. Я шикарен.
18:30. Такси у подъезда.
19:30. Привет, ребята. Привет, заслуженная IPA :)
В целом, я очень доволен этим джемом. Несмотря на жесткий лимит по времени (и его незапланированное лимитрование еще больше), я успел и реализовать достаточно непростой по механикам проект, и добавить в него мелкого приятного полишинга. Пускай никто не узнает об последних горячих правках логики ресурса энергии, главное что мне крайне кайфово знать — я сделал всё на отличненько. Не забил, не проигнорировал ничего, прошерстил каждый уголок дизайна.
Как говорил Великий — «Do. Or do not. There is no try.»
PS. Кстати да, страница игры. Буду благодарен за отзыв, дорогой читатель, а если у тебя есть аккаунт на reddit — прошу и рейтануть мой проект. Спасибо!
- 23 октября 2018, 21:33
- 04
4 комментария