Greedy Adventure - какво да не правим другия път!

Hi, народе, мина време. 5 месеца кажи-речи от последния пост тук. БЛОГЪТ НЕ Е ЗАБРАВЕН!

Ludum Dare свърши и аз изгарям от желание да напиша един post mortem, който най-вероятно ще е едно голямо HOW-TO спрямо 2-те ни проби в Ludum Dare. Но

Какво е post mortem?

Post mortem бележките или документите при разработката на игри, са нещо като разказ през какви етапи е минала разработката, какви трудности са срещнати и какви са поуките от дадени случки, техники и т.н. Общо взето, един такъв пост цели да отговори на въпроса: "Как другия път да бъде по-добре?"

И какво е Ludum Dare?

Лудумът е един online game jam евент, ако може да го класифицирам в такава категория и се провежда 3-4 пъти годишно. Концепцията е лесна, направи игра сам за 48 часа или в екип за 72. Награда - няма. Позитивни емоции, задоволството от завършеното предизвикателство и това, че все пак си направил игра и някой е обърнал внимание на нея.

Кухнята

Ludum Dare е доста готина идея, защото в повечето случаи, ти си казваш: "Ей сега се прибирам и всяка вечер след работа ще правя нещо и ще човъркам над някой game проект.", но това така ѝ не се случва. Още повече идва чуденето какъв да е проектът и моментът с "Ей сега се прибирам..." отпада тотално. С Ludum Dare-a си знаеш, 48/72 часа, си се отдаваш на това, плануваш си weekend-a, който се знае от месец по-рано и правиш само това. Време, в което да научиш нещо, да създаваш и да ти е супер интересно.

Събрали идеи и опит от миналата проба, с Хриси се заехме 1 месец по-рано да набележим някакви tool-чета, с които да работим. Седейки от миналия ни опит, един от проблемите там беше, че само 1 човек от екипа можеше да работи с нещо по-специфично, в случая с engine-на. Преди си мислех, че това няма да е такъв проблем, все пак трябва и да учим някакви неща, но в последствие се оказа голяма спънка.

Поука 1: Екипът работи добре, когато всички познават/ са запознати поне минимално с използваните продукти и инструменти.

Стигнахме до горните разсъждения чрез хаотично и паническо ровене из интернета, как трябва да се реализират дадени работи. Загубихме много време и всичко това доведе до разконцентриране от основната дейност - да правим самата играта.

Водени от поука 1, се заехме да разглеждаме Unity, GameMaker и разни други неща, които са ни попадали през времето. Реално за един месец, не научихме кой-знае-какво, но поне се затвърдиха някакви базови знания и умения. Сцени, обекти, колизия, различни технологии за генериране на някакви неща. Хриси дори се хвана да направи малки pixel art-чета, които се получаваха. Следствията, от тази бегла подготовка, доведоха до изравняване на знанията ни, което се оказа положително по време на самата работа. В крайна сметка се оказа, че направихме играта на 2 платформи - web и unity. Комично, но старта беше важен. Аз знаех какво прави Хриси, както и тя знаеше какво правя аз. Аз знаех какво ще използва тя, както и обратното. Това позволи да разработваме огледално, без да се забавяме в хаотично търсене на съвети и code snippets. Не губихме време в това да изясняваме технически работи, просто правихме играта.

Поука 2: K.I.S.S (Keep it simple stupid)

Може би, тази поука е една от най-важните. Подценявах този принцип, но спазването му върши чудеса.

Теоретично, самият принцип е достатъчно прост. Всяка итерация в разработката да бъде разбита на малки, изпълними и достатъчно прости частици. Примерно, една итерация може да бъде:

  • играта да тръгне в windowed режим 640x480
  • зареждане на фон
  • зареждане на игрови персонаж

2-ра:

  • персонажът да се движи наляво
  • надясно
  • нагоре
  • надолу

3-та:

  • скок
  • стрелба
  • базова колизия със стени

Схванахте логиката. Принципът може да се приложи дори и в реалния живот за планиране на задачките през деня, но това е друга тема. :P

Та, спазването на този принцип е изключително важен дори при планирането на самата игра.
При опит 1, тръгнахме от нещо просто, но с натрупване на много прости неща, се случи нещо сложно, което надали можехме да завършим за 48/72 часа или дори за няколко месеца. Не ме разбирайте погрешно, онзи следобед на планиране, беше невероятно добър, но от простата идея, нещата излязоха извън контрол. И кога се забеляза тази "грешка", няколко месеца след това. :D Комично. Но, тогава без нищо реализирано, само на дъска си мислехме за анимациите, за малките детайли, които за момента нямаха нищо общо. Обзалагам се, че ако си направим един design paper с изговореното тогава, то това би било една добра игрица, но за 3-ма ентусиаста, които искат да направят ПЪРВАТА си игра, това беше непосилно.

След тези изводи, с Хриси още в планирането на новата игра, се придържахме към KISS принципа. Бих казал, че се получи:

  • Тръгнахме от това, че имаме 48 часа, най-малкото време за което трябва да сме направили играта. => Играта не трябва да има кампания, задоволително е, поне едно ниво.
  • Обобщихме знанията си и какви възможности ни предоставят те. Разписахме си няколко гейм механики. Match 3 game, text-based game, quest
  • Обсъдихме, коя комбинация би се реализирала най-бързо с най-малко усилия (от към разработка и учене на нови неща) и спрямо подръчните средства колко усилия би ни струвало.

В повечето случаи, проблемът ни беше, че няма кой да рисува, но и бих казал по-добре, защото тогава най-вероятно бихме изпаднали в ситуацията от първия ни Ludum и щяхме да забравим за KISS. Та, разсъждавайки, се спряхме на текст базиран куест. Лесно за реализиране - един граф, с малко парче история и пъзели. Бройката също беше важна, за да се чувства все пак играта завършена, но си поставихме цел, минимално трябва да имаме 1 пъзел. Максимално 5.

Резултатът от всичко това беше ето тази дъска:


Това ни беше общия план:

  • текст базиран куест
  • минимално 1 пъзел (2 възела от графа)
  • максимално 5 пъзела (12 възела от графа)

Това беше достатъчно инфо да започнем вече да мислим как бихме реализирали това в Unity, какво може да използваме като картинки, музиката тотално отпада. Останалото е логично. 12 сцени общо в Unity, всяка препраща към следващата. На всяка сцена има текст, картинка и препраща нататък. Семпло, но това е желания ефект. Винаги над тази базова структура може да се сложи още текст, интерактивност, нови възели, пъзелии т.н. За конкретните ни цели и умения, плана беше достатъчно ясен и изпълним.

Последното, което ни трябваше е да сложим текст за пълнеж. Затова тука решихме да делегираме задачката. Решихме да не мислим ние за нея, защото щяхме да се разсеяме и да я нагаждаме спрямо нашите ни цели. И отново щяхме да си вдигнем както очаквания, така ѝ целите, които си бяхме поставили щяха да се променят. Резултатът, братът и бащата измислиха много добра историйка, кратка, ясна и с лек twist. Невероятно. :D Пък и на тях им беше интересно.

Всичко това се случи за 2 часа. Бях изненадан колко добре вървим.

Поука 3: Мисленето на пъзелите отнема по-малко време отколкото самото им реализиране. Или реализирането на дадена гейм механика отнема повече време, отколкото измислянето ѝ.

Така е. Не знам колко поука е горния ред, но това се оказа така. Очаквах да е обратното. След всичко описано горе, решихме да си нахвърлим пъзелите. Хриси извади книжки пълни с тестове за интелигентност и от там почнахме да ровим. Само след 30 минути вече бяхме избрали 5 модела за пъзели и нужните подсказки, както и интригата с тях. Редактирахме ги. Беше невероятно. Форсиране на идеи, обсъждане и смях. Нали това се иска от този евент.

Невероятно е чувството, когато се мъчиш да мислиш като гейм дизайнер и се опитваш да разбереш какво усещане биха получили играчите. Визирам конкретно шифрите в нашата игра. Като играч, знам как ще направя и как искам да чийтна. Затова когато правихме нашите шифри, решихме да експлоатираме това желание за чийт, пък и така целият шифър ще бъде разчетен. Най-базовото, играчът би се помъчил да дешифрира думите, които се открояват. При нас тези 2-те думи в началото водят до смърт. Друго, вторият шифър не е задължителен, но подсказва. И подсказката е буквална, няма какво да крием. Интересно беше, как имаше хора които са разбрали подсказката буквално, такива които са я интерпретирали наобратно и трети, които не са дешифрирали напълно. Голямо удоволствие беше да четем feedback-a и да си коментираме с играещите.

Цялата работа ни отне около 15-16 часа сумарно работа. Разбира се, през това време ударихме един сън, вечеряхме и разбира се, играхме. Започнахме събота сутринта и завършихме неделя привечер някъде. Реално играта и нейната структура беше готова още на 3-4-тия час. Останалото беше картинки. Търсене, обработка, правене на колажи, доизясняване на малки детайли. Може и да преувеличавам, но толкова не бяхме работили на фотошоп. Поне аз. :D
Пак към поуката, не бях предполагал, че ще измислим пъзелите за 30 мин. и после часове ще правим буквално колажи.

Поука 4: Web версията е задължителна

Тази поука ме огря в ранните часове на 28-ми август (неделя). Съдейки по себе си, има по-голям шанс да тествам дадена игра в LudumDare, ако тя има web версия. Рядко тегля windows вариантите (сетъпа) и то само ако играта ми е направила изключително впечатление от описание и скрийншоти. Веднага ме светна, че текущата ни структура може да се реализира чрез Twinery. Много мощен tool за създаване на книги игри, или истории. В основата му, стои концепцията, че един абзац текст, може да сочи към друг такъв. Така може да стане един голям граф от навързани абзаци.

Имах малко опит от предишни занимания с Twinery и реших да разгледам по-обстойно, доколко може да го "напъна". Изненадан бях, когато видях че twinery поддържа и if структури и т.н. Не му мислех повече и се захванах да направя web вариант на нашата игра. Резултатът беше красота. (картинката, красива е)


Въпреки, че ходех в "небрано лозе", документацията на twinery е доста добре написана, пълна с примери и затова с много малко затруднения, Greedy Adventure щеше да се появи и в html вариант.

С нетърпение разказах на Хриси за откритието си, и беше много готино, защото от даден момент до края, Greedy Adventure се "правеше" огледано на 2 платформи. С Хриси си разменяхме картинки, съвети и т.н. Беше забавно.

Стигнахме до поука 4, след като започнахме да разпращаме архива с 2-те версии.
И 2-те версии се разцъкваха, но web версията беше по-достъпна от това, че не трябват плъгини или пък да се тегли голям пакет с файловете. Принципно unity има и web експорт, но поради липса на хост, нямаше как да разпространим web версията. Тенденцията беше, че първо се разцъква web версията и след това unity варианта. => web платформата трябва да е задължителна за следващи участия. За конкретните цели, web вариантът е по-ефикасен.

Едно любовно писмо

LudumDare е нещо хубаво. Може да усетите какво е да правите игра. От WOW моментите, когато ви идва хитрата идея, до grind-а да обработвате картинки няколко часа. Всички емоции ги има, отделно е много добър отборен тренинг.

Най-големите пропуски, над които трябва да поработим от този опит:
  • задълбочаване в GameMaker/Unity
  • да се научим да рисуваме
  • или да намерим някой да ни рисува
  • да се научим да правим минималистични артове
  • изследване на други механики и level design
Както във всяко нещо, и при правенето на игри има get-gud елемент. Всяка следваща игра е по-добра от миналата. Сега разпращаме архиви да ни играят играта, след време може пък хората сами да искат да ни изпробват играта. Get-gud и по-малко мрън!

Силно препоръчвам, ако идеята ви звучи добре, да се включите в някой от идните евенти. Следващият Лудум ще се проведе декември. Знам, че ние ще сме там, а вие?