Infinithon 2016: InfiQuest

Een paar waarmakers bij elkaar: karakters, verhaallijn en quests en je speelt binnen 24 uur Infi’s eigen RPG.

Deze blog is oorspronkelijk geschreven door Erik en verder uitgebreid door Devin

Voor het bouwen van InfiQuest zijn we aan de slag gegaan met Unity. Unity is een cross-platform game engine waarmee je 3D en 2D-games kan ontwikkelen. In dit programma schrijf je custom code voor een game in onder andere C#. Dat ligt gelukkig precies in ons straatje.

Voor deze game wilden we een quest, een adventure game, bouwen. De nadruk lag minder op de graphics en meer op het verhaal en de puzzels. Mede daarom hebben we besloten om de game tweedimensionaal te maken met een ‘overhead’ view, zoals sommige Zelda- en Pokémongames.

De game zou uiteindelijk gaan over Infi, waarin jij, als speler, je eerste dag op Infi moet doorkomen. Door met je collega’s te praten, items te verzamelen en de problemen op kantoor op te lossen leer je de bedrijfscultuur van Infi kennen. Leuk verzonnen – maar nu het lastige gedeelte.

Beter goed gejat...

Een deel van het ontwikkelaarsteam is aan de slag gegaan met het maken van plaatjes en sprites voor de achtergrond (het Infi-kantoor), de speler, NPCs (non-playable characters) en items om te verzamelen voor quests. Ook werd er een gaaf introductiefilmpje (die helemaal niet op de openingscrawl van  Star Wars was gebaseerd) in elkaar gezet.

Een ander gedeelte van het team ging aan de slag met het verhaal en met de inhoud van quests. Een game zit altijd vol conflict, anders heb jij als speler natuurlijk niets te doen. Zo werden er opdrachten en verzamelquests verzonnen en werd gekeken welk voorwerp bij welk karakter hoort en hoe er door de speler vooruitgang gemaakt moest worden.

Actie reactie

Eén van de grootste uitdagingen was om de gesprekken in het spel uit te kunnen voeren en uit te kunnen lezen. Er moet hierbij altijd rekening worden gehouden met de ‘huidige situatie’. Heb je bijvoorbeeld al een specifiek voorwerp in je inventaris die een karakter nodig hebt of heb je al een eerdere opdracht vervuld zodat je een nieuwe activeert.

Deze verschillende variabelen zorgen voor verschillende gebeurtenissen en gespreksopties met de NPCs in het spel. De invoer van deze gespreksopties en variabelen is gedaan in XML. Op deze manier konden meerdere mensen tegelijk conversaties uitwerken en in het spel verwerken. De XML-code werd vervolgens door het spel geparsed en in een converstation engine geladen.

Deze conversation engine kent de staat van het spel en weet welke variabelen aan welke situatie gekoppeld moest worden. De conversation engine geeft door aan het spel welke tekst een karakter dient te zeggen en uit welke antwoorden de speler kan kiezen.

Als je van coderen leren kan

Het was even wennen om te werken in Unity, maar het ging best goed. Unity maakt het mogelijk om vrij eenvoudig een hoop leuke dingen te maken: bewegende poppetjes via animatie van de sprites, een botsing tussen twee elementen detecteren, je personage midden in het scherm te houden, enzovoort.

Uiteindelijk is het goed gelukt om een adventure game te maken. Met nog iets meer tijd hadden we er wat moeilijkere puzzels in kunnen stoppen, maar met de Infinithon krijg je maar 24 uur en regels zijn regels… Wellicht de volgende keer!

--

[Erik was ontwikkelaar bij Infi
Devin is communicatieheld bij Infi]

We zoeken een ervaren developer!

› Wil jij je hersens bij ons laten kraken?

Wil je iets waarmaken met Infi?

Wil jij een eigen webapplicatie of mobiele app waarmee jij het bij anderen maakt?

Waargemaakt door de nerds van Infi.
Nerds met liefde voor softwareontwikkeling en die kunnen communiceren. En heel belangrijk: wat we doen, doen we met veel lol!

Wij willen het fixen. Laat jij van je horen?

Voor wie heb je een vraag?