Jan Allersma

Computer gozer

Devlog Murder mystery

Dit is een blog over een game die ik aan het maken ben.
Ik heb deze vakantie mijn soort van tweede game afgemaakt (zie link hieronder). Ik heb dit gedaan met het volgen van een modeling cursus. Heel leerzaam, maar ik wil nu bezig met een ander stijl: handpainted textures.

De game is geinspireerd op Maquisard. Het idee is dat in een cyclus van een week er allerlei interacties op een schip mogelijk zijn. Met die interacties moet je kom je steeds meer te weten over de moord dieis gepleegd. Je hebt het spel uitgespeeld als je weet wie de moord heeft gepleegd.

Voor het maken van deze game zijn er twee eisen waar de game aan moet voldoen:

  1. De game moet gebruik maken van handpainted textures. Ik wil meer leren over hoe ik die textures kan maken en of ik die ook kan gebruiken in een game.
  2. De game moet leuk zijn om te spelen. Als ik kijk naar afgelopen twee games, dan zijn ze niet echt geweldig om te spelen. Het hoogtepunt van de Aladdin got robbed is de minigame op het einde. Ik heb veel geleerd over het maken van terrein, en het in elkaar zetten van een karakter, maar de game zelf is niet geweldig om te spelen. Kijken of dat deze keer beter kan!

Dag 1 en 2: De romp van het schip maken

De eerste dag heb ik in Blender geprobeerd om een schip te maken en bijbehorende textures. Met de tutorial hieronder is het mij gelukt om in GIMP twee houten textures te maken. Een voor de wand en een voor de vloer.

Het probleem met een van de textures is dat ik ben vergeten de achtergrond ook tilable te maken. Ik heb dus maar voor een deel van de lagen tilable gemaakt. Je krijgt daardoor een rare lijn als de bovenkant van de texture overloopt in de onderkant. Gelukkig is daar een oplossing voor gevonden: de texture kopieeren en naast de bestaande texture te plakken. Vervolgens die kopie horizontaal spiegelen. Dan hetzelfde nog een keer maar dan voor beide textures verticaal spiegelen. Tada! Een texture die tilable is.

Verder heb ik nog een tutorial gevolgd om in blender een handpainted texture te maken. Het resultaat is deze plank hieronder. Het ziet er op zich wel redelijk uit. Dit is nog een plaatje van mijn oude plank. Ik ben de texture kwijtgeraakt, dus ik heb een nieuwe plank moeten texturen in de late uurtjes. Weer een stomme fout die voorkomen had kunnen worden als ik mijn werk had opgeslagen!

Ik heb de tweede dag de UV mapping gefixed en ik heb de tweede dag een ruwe opzet gemaakt van het interieur van het schip. Alleen wat planken en een driehoek die als schans moet fungeren zodat je als speler boven op het dek kunt komen. Het is nog best ingewikkeld om dit ruimtelijk kloppend te krijgen. En het moet uiteraard op schaal dat past bij de grootte van de speler.

Ten slotte heb ik de tweede dag in Godot controls gemaakt voor de speler, zodat je je kunt bewegen. Omdat er nog geen collision is, heb ik nu nog even geen zwaartekracht ingeprogrammeerd en kan je met Page Up en Page Down verticaal bewegen. De besturing is alleen met E om naar voren de te gaan en D om naar achteren te gaan. Je kunt een bocht maken door met je muis naar links of naar rechts te gaan. De camera draait dan om de speler heen. De speler loopt naar voren in de richting waar de camera naar kijkt. De besturing is op zich wel oke. Alleen is het toch wel irritant dat je soms met je camera de andere kant op moet draaien dan je zou willen omdat je cursor dan niet verder naar links/rechts wil. Misschien kan ik hier nog iets op verzinnen. Bijvoorbeeld dat je alleen de camera draait als je ook je linker muisknop ingedrukt hebt. Interacties kan je dan met je rechter muisknop doen.

Dag 3: Railing, stenen trap en collision

Weer een nieuwe dag om aan de slag te gaan. Ik begon met het maken van railing. Weer een texture van hout getekend in Blender. Ik moet zeggen dat dit zelf beter is gelukt dan de texture van de plank. Oefening baart kunst!

Ik zat nog met die driehoek. Eerst wilde ik er een trap van maken, maar dat gaf wat moeilijkheden. Als ik wilde tekenen op de treden, dan lukte dat alleen vanaf een bepaalde hoek. Dus de bovenkant van de treden zou ik nooit kunnen inkleuren. Ik kon twee dingen doen. Of ik exporteer de layout van de UV map en kleur de trap in in GIMP. Of ik maak er gewoon een schans van. Ik koos voor het tweede. Het valt op dat alles van hout is. Het is wel een beetje saai om er nog meer hout in te hebben. Ik besloot om daarom maar een stenen schans te maken. De eerste keer een stenen trap tekenen is wel een beetje spannend. Misschien flopt het totaal! Maar het viel mee. Het is niet perfect, maar het geeft in ieder geval de indruk dat het steen is. Dat is belangrijk.

In de screenshot hierboven zie je ook iets geels op de achtergrond. Dat de-toneert direct. Dat is de railing rondom het bovenste dek. Ik dacht mij er makkelijk van af te kunnen maken door het met shading metaal-achtig te doen laten lijken. Het ziet er niet uit. Dat zal ik dus in de toekomst ook moeten inkleuren.

Tussendoor ben ik bezig met de collision in Godot. Het gaat niet helemaal lekker. Na een hoop gekloot is het gelukt om de collision voor elkaar te krijgen. Maar het gaat nog steeds niet helemaal lekker. Een plank staat wat hoger dan het platform waar het op ligt. Blijkbaar is die helling te hoog en te steil voor de speler om er op te stappen. Ik heb de collision van die plank wat verlaagd, maar nu lijkt de speler half in de plank te zitten. Zeker niet ideaal. Verder is er nog een tweede probleem met de collision: als je valt en je valt op de wand van het schip (die niet helemaal recht is), dan val je door het schip heen.
Voor nu denk ik: zwaartekracht is overrated. Misschien ga ik wel collisions toevoegen zodat het niet meer mogelijk is om van planken te springen.
Voor nu is het mooi geweest. Morgen maar weer zien wat mijn voortgang is. Ik denk dat ik dan wil kijken of ik een gigantische kaars kan maken. Die kaars kan fungeren als licht in het schip. Daarnaast kan ik misschien iets maken waarmee je achter de kaars kunt schuilen en anderen kunt afluisteren.

Dag 4: Hangmat

Na er een nachtje over geslapen te hebben, zijn de frutseltjes die op de stenen schans getekend zijn niet zo mooi. Ik denk dat ik ze op korte termijn weg ga halen. De texture wordt er wel saaier door, maar je moet ook niet teveel willen als je aan het leren bent.

En ik ben vandaag van plan om met iets nieuws te beginnen: het maken van een hangmat. Ik probeer dit zonder tutorials te doen, dus ik hoop dat het een succes wordt.
Het begint al met hoe je het technisch mogelijk wil maken: met het tekenen van een texture in Blender, kan je niet delen van je texture dupliceren. Simpelweg omdat je geen lagen kunt gebruiken voor zover ik weet. Het plan is dus om een hangmat te maken, die te UV mappen, en een plaatje van de UV map exporteren. Vervolgens teken ik 1 touw die diagonaal door de hangmat gaat in blender. Ook die texture exporteer ik. In GIMP kopieer ik dan dat touw, zodat ik niet elk touw van de hangmat apart hoef te tekenen.

Toevallig lag er vandaag voor mijn schuurtje een vissersnet. Er viel mij een paar dingen op:

  1. Het buitenste touw om het vissersnet heen is dikker dan de andere touwen.
  2. Het zal er voor de hangmat mooier uit zien als de gaten tussen de touwen, niet vierkant maar rechthoekig zijn.
  3. Waar de touwen elkaar kruisen, zijn ze vastgemaakt met knopen.
Deze observaties zijn handig om in het achterhoofd te houden met het maken van de hangmat.

Ik begon met het tekenen in Blender. Gewoon even wat oefeningen om te kijken hoe je eigenlijk een touw tekent. Dat ging niet makkelijk: het lijkt erop dat als je te ver ingezoomd bent, je geen pixels meer kunt tekenen op je vlak. Het was dus even een monnikenwerkje om wat te tekenen. Het eindresultaat was niet bijzonder, maar wel iets om tevreden over te zijn als je zonder enige hulp jezelf iets behoorlijk nieuws aan het aanleren bent.

Daarna ging ik aan de slag in GIMP. Wat een verademing was dat. Dat ging allemaal een stuk eenvoudiger. Na een beginnetje gemaakt te hebben, besloot ik om de texture eens op het model te plakken, om te kijken of het een beetje lijkt. Het resultaat was boven verwachting!

Over het algemeen wordt luiheid niet beloond bij het maken van games, maar ik denk dat het beter is om die observaties van dat visnet achterwege te laten. Dit is prima zo (en heeft me bovendien al genoeg tijd gekost). Ik heb de hangmat afgemaakt en heb nog een texture voor kisten getekend.

Dag 5: Collisions fixen

Ik heb wat hulp gekregen bij hoe ik de collisions moet fixen. Het idee is dat ik ze niet maak door in Blender een model te maken en Godot de opdracht te geven om daaruit een collision te genereren. In plaats daarvan ben ik vandaag met de hand bezig geweest om cubusje voor cubusje met de hand als collision toe te voegen. Vandaag was een kort dagje. Dus ik heb verder niks aan m'n game gedaan.

Dag 6: Kaars

Vandaag wederom maar een kort dagje. Desalniettemin heb ik heel snel een kaars in elkaar gezet. Ik heb uitgelopen kaarsvet gemaakt met sculpting, een techniek die voor mij vrij nieuw is. Ik heb het wel eens gebruikt om een terrein te maken in mijn vorige game, maar ik kan nog niet zeggen dat ik heer en meester ben in het sculpten. Het maken van een vlam in Godot met een geanimeerde sprite is wel nieuw. Het bewegende gifje hieronder is het resultaat van mijn werk.
Het idee van de kaars is dat die in het spel heel groot is. De speler kan zich er achter schuilen en op die manier gesprekken afluisteren.

Dag 7: Minigame

De laatste dag van de vakantie. Ik heb deze dag een minigame gemaakt. Het doel van het spel is om op het juiste moment op enter te drukken om op die manier zo snel mogelijk de balk te vullen. Het idee is dat deze minigame start zodra je informatie van een van de karakters probeert te krijgen.

Ten slotte

Ik zal er vast nog wel meer mee aan de slag, maar dit zijn vooral de meest uitdagende dingen geweest waar ik mogelijk tegenaan liep. Ik denk dat ik af en toe eens een uurtje eraan besteed om de game verder af te maken. Voor nu is het wel mooi geweest. Ik denk ook niet dat het zo heel spannend is om verder uit te weiden over waar ik in die losse uurtjes mee bezig ben. Daarom laat ik het ook hierbij met de blog. Zodra de game af is, komt hier een linkje naar de game te staan.