Een eiland in de oceaan van weblogs

Tag: godot (pagina 1 van 2)

Opgeleverd

De afgelopen week was ik een beetje druk met m’n game-jam. De kids hadden nog vakantie, dus we deden wat leuke dingen (naar de Eemhof wezen zwemmen en m’n nichtje kwam logeren). Maar in de tijd die ik nog wel had werkte ik aan m’n game-jam inzending, genaamd MoonR.

Uiteindelijk vooral 2 dagen druk aan gewerkt, donderdagavond tot 1:30 ’s nachts en zondag de hele avond bezig geweest. Donderdags was vooral veel bezig geweest met de basis gameplay-loop, het kijken, het starten en stoppen van het moonen en de logica achter het berekenen (en groeien) van de punten.

Clip van de gameplay in versie 0.4.0 (donderdag)

Toen zaterdagavond kleine beetjes gedaan, maar was de hele dag in Almere – Elvis samen gekeken met m’n moeder en daarna daar lekker blijven mee-eten.

En toen zondagavond vooral bezig geweest met visuele aanpassingen, kleuren toegevoegd en wat kleine animaties. Uiteindelijk nèt op tijd de game ingediend en toen was ik klaar.

Het eindresultaat

Of tenminste, toen begon het “marketing-gedeelte”. Dus ik promootte de game op verschillende kanalen, liet andere game-jam deelnemers het spelen en een waardering geven en ik speelde ook veel andere spellen. Zitten wel leuke spellen bij, maar vind m’n eigen toch wel het leukst / grappigst / eigensts.

Deze week is dus nog vooral veel andermans spellen spelen en die een waardering geven en dan ergens begin volgende week komt de uitslag, ben benieuwd op welke plek MoonR eindigt.

Speel het zelf hier: https://skar.itch.io/moonr

Game dev enthousiast

Heb al lange tijd een game-idee, denk dat het al paar jaar door m’n hoofd spookt. Heb al meerdere keren beetje lopen nadenken hoe ik het wilde gaan maken – maar nooit echt aan begonnen.

Maar sinds de afgelopen maanden ik met een aantal game jams mee heb gedaan, vond ik het nu langzamerhand wel tijd om echt iets te gaan doen.

Heb ik wel vaker gedacht, maar dacht dan elke keer “nog even wachten, eerst nog even dit-en-dat leren of beter worden in zus-en-zo“.

Terwijl het grappige is dat ik juist van het doen in de game jams heel veel geleerd heb. Veel meer dan alleen maar uitzoeken en lezen, maar daadwerkelijk het doen en iets doelgericht moeten oplossen.

Dus ik besloot afgelopen week om echt een eerste stap te zetten. En in dit geval is de eerste stap een style definieren. Het idee wat ik heb is namelijk niet bijzonder origineel (een soort hack/slash ala Dark Souls, maar dan zonder bossfights). Maar ik wil vooral dat de style er vanaf druipt.

Dus ik ging aan de slag. Na heel even getwijfeld te hebben of ik niet alles zelf moest doen, maar op itch.io gaan zoeken naar wat stylen. Daar zitten toch ook meer de artiesten die het net ietsje beter kunnen dan ondergetekende. En ik hoef niet alles-alles zelf te gaan doen, begin ik me steeds meer te realiseren.

Nadat ik uiteindelijk een artist had gevonden wiens art-style heel erg in de juiste richting was, toen in Aseprite zelf een mockup gemaakt:

De dagen erna beetje lopen rommelen met de pixels soort van 3d-ish te maken dmv sprite stacking, maar uiteindelijk vond ik dat toch niet zo heel geweldig. Het heeft een heel gaaf effect, maar het deed beetje af aan de stijl die ik had neergezet in de mockup.

Dus uiteindelijk maar gekozen om ‘normaal’ 2D verder te gaan.

Dus zie hier, de eerste bewegende pixels van (werktitel) DunBrawl

leren

Laatste tijd veel mezelf aan het ontwikkelen door games te maken en daarover te vloggen (zoals dat zo mooi heet).

En had zelfs zo de smaak te pakken dat ik besloot om ook wat kleine tutorials te maken waarin ik kleine nuances of techniekjes uitleg welke ik gebruikt heb of heb ontdekt tijdens het maken van m’n games.

En nu is m’n eerste klaar, over hoe tekst te animeren en te triggeren in Godot:

heeft de smaak te pakken

Eind vorige maand deed ik mee met een game jam, de GMTK Game Jam 2020. En had de smaak te pakken en dus de afgelopen week weer aan een game jam meegedaan. Deze keer de eerste MizJam, georganiseerd door de Youtuber Miziziziz.

Had vorig jaar al eens samen met Rick (m’n neef) gewerkt aan een game, waarbij hij de muziek en soundeffecten deed en ik de game zelf bouwde. En nu voor deze MizJam hadden we besloten om weer samen te gaan werken.

We werkten beetje bij beetje, soms een avondje 1-2 uurtjes, soms iets meer, soms iets minder. De laatste dagen van de jam werd er wel steeds meer tijd in de game gestoken, waarbij het ook gaaf was dat Rick naast de muziek ook levels ging bouwen.

Heb dus vannacht nog tot 3:30 zitten werken om het allemaal beetje af te krijgen.

Maar uiteindelijk wel gave game gebouwd samen:

En ga dus nu aan de slag met m’n devlog voor deze game, heb alles opgenomen terwijl ik werkte – dus eens kijken of we daar iets moois van kunnen bakken.

Laatste jam dag

Vannacht slecht geslapen. Denk dat m’n hoofd nog vol zat met alles wat ik wilde / moet doen en m’n lijf het ook niet heel fijn vond dat ik heel de dag had zitten werken.

Maar toch om 7:30 weer aan de slag. Iets gaarder dan gisterochtend, maar nog steeds wel vol goede zin. Ook omdat ik gister veel voortgang geboekt heb, dus ik het gevoel heb dat m’n game al wel beetje staat. Vandaar kan ik dus vooral gebruiken door dingen te tweaken, mooier te maken en te polish-en

[09:50]
Na wat uurtjes te hebben lopen zoeken naar gratis te gebruiken geluidseffecten, heb ik dan eindelijk een combinatie van een aantal kunnen maken voor de splash-screen en het schieten.

Kost wel veel tijd, maar voegt wel heel veel toe.

[10:20]
Geluiden toegevoegd voor het herladen (draaien van de schiet-richting) en een plop-geluidje voor wanneer je een vijand killed.

[11:15]
En weer een uur verder, nu zit er een geluid in voor wanneer de speler af gaat, wanneer je de game op pauze zet en de kogels gaan door de vijanden heen.

Heb lange tijd (wat op zich relatief is, aangezien ik nu pas 1,5 dag bezig ben) lopen twijfelen … maar vond het toch beetje afdoen aan de gameplay dat je kogels maar 1 vijand kon neerschieten. Werd daardoor beetje (onnodig) moeilijk. Het is al moeilijk genoeg om de vijanden te ontwijken. Denk er zelfs soms over om de player health te geven, zodat je het langer vol kan houden ipv direct bij elke aanraking af te gaan.

[12:00]
Heb een lettertype toegevoegd en ook de achtergrondmuziek zit erin. Heb ook weer tijd lopen zoeken, maar uiteindelijk de ‘makkelijke’ weg gekozen en een mooi nummertje van m’n neef (Rick) gekozen.

Nog 9 uur voor de deadline. De game begint beetje af te voelen. Vind het soms ook wel lastig om te bepalen wat ik nog precies moet doen. Er is heel veel en tegelijkertijd ook niet genoeg tijd.

[12:30]
Heb maar een uitleg-scherm aan het begin toegevoegd waarmee de besturing wordt uitgelegd. Deze verdwijnt automagisch na een paar seconden en verschijnt ook niet meer na een paar keer herstarten.

[14:00]
Afgelopen 1,5 uur aan een intro-sequence gewerkt voor m’n eigen naam. Voelt aan de ene kant beetje onnodig, maar was eigenlijk ook wel weer gaaf om te maken … en om te zien elke keer als ik de game start:

Profi he ^^

[15:00]
Afgelopen uur bezig geweest met de itch.io pagina, heb de game aangemeld bij de GMTK Game Jam pagina – dus nu is het officieel een submission en kan ik rustig verder met afronden van het spel. En heb een naam verzonnen:

[15:30]
Een main-menu toegevoegd, zodat de speler zeker in het scherm geklikt moet hebben en zodat de overgang tussen de splash-screen en het spel minder hard is.

[16:00]
Het begin van het spel iets aangepast. Nu komen er niet direct vijanden, maar moet de speler eerst bewogen hebben. En als er dan 1 vijand is verslagen, dan pas worden de rest van de vijanden gespawned. Zo leert de speler beetje hoe alles werkt.

[17:00]
Beetje afbeeldingen op de achtergrond toegevoegd om het iets meer aan te kleden en de tijd tussen de wisselingen van de schiet-richting is elke keer random.

[18:30]
Net avond gegeten en toen bedacht welke dingetjes ik nog in de beschikbare tijd denk te kunnen doen. Eerste half uur was voornamelijk kleine dingetjes tweaken, zoals pauze-scherm toevoegen, initiele spelers positie, iets meer ruimte rondom speler voor het spawnen van de vijanden.

[19:00]
Heb nu net het tonen van de informatie in het pauze-scherm werkend. Nu kan je – als je het spel pauzeert – zien welke waardes de vijanden en speler hebben, zoals de attack-snelheid, beweeg-snelheid, schiet-richting wisseltijd etc. Dit allemaal ter ondersteuning van de laatste grote feature – het kunnen veranderen van deze waardes.

Hopelijk red ik dat nog voor de deadline, maar heb nog 2 uur – dus denk dat het wel moet lukken.

[19:30]
Toon punten wanneer een vijand wordt gekilled. Klein dingetje, maar voegt wel zoveel toe. Dus ben blij dat ik dit nog heb kunnen toevoegen.

[20:40]
De tijd vliegt. Ben nu bezig de laatste hand te leggen aan de RandomEffectController. In deze controller kunnen de verschillende onderdelen (speler, vijanden en de game) zich ‘registreren’ en de controller houdt bij welke effecten er toegepast kunnen worden.

Wanneer een vijand wordt gekilled is er een kans (20%) dat er een powerup-item gedropt wordt en wanneer de speler die oppakt, wordt een van de geregistreerde effecten getriggerd.

Dit werkt nu op zich prima – maar ben nog hard bezig om allerlei effecten toe te voegen, maar ergens gaat er nog iets niet helemaal lekker.

Denk niet dat ik het allemaal klaar krijg voor de deadline. Heeft me toch net iets teveel tijd gekost.

Helaas

[20:53]
En het moment dat ik m’n code op wil slaan in een aparte feature-branch zie ik ineens wat er mis gaat. Dus dat gefixed, even snel getest of alles nog goed werkt en de laatste build naar itch.io gepushed.

Op hoop van zegen.

[21:00]
De deadline is voorbij. Klaar. Mag niks meer aan de game doen.

Of tenminste, ik kan wel eraan doorwerken, maar het resultaat zoals het er nu voorstaat dat telt voor de jam – de rest is bonus.

Vond het werken aan de game wel super leuk, dus denk dat ik hier nog wel wat aanpassingen / fixes / tweaks voor ga maken.

Bekijk het resultaat hier:

Game Jam #2

Vandaag is de eerste èchte dag van de game jam.

[7:00]
Vroeg opgestaan. Op zich wel goed geslapen, beetje enthousiast en kan niet wachten om te beginnen. Kinderen waren ook al wakker, dus even ontbijtje gesmeerd en toen naar zolder gegaan.

Hier zal ik de komende 2 dagen voornamelijk vertoeven.

[9:00]
Basis voor de wapens gemaakt. Had gisteravond al wat dingen uitgezocht over hoe je een modulair wapen maakt. Voornamelijk bezig geweest met het uitzoeken hoe je moet detecteren of een zwaard iets raakt.

Al had ik vannacht / vanochtend bedacht dat het misschien leuker was om gewoon om je heen te schieten. Dus daar nu de basis voor geschreven, dat je een pistool hebt wat automatisch schiet.

[10:00]
Uur later en we hebben een indicator waar je naartoe schiet en wanneer je gaat schieten:

[11:30]
Sjonge sjonge. Ik dacht dat ik de pipeline goed had ingericht, maar nadat ik m’n vorige versie klaar had en trots wilde demo’en, merkte ik dat het spel niet meer goed werkt in de browser.

Uiteindelijk anderhalf uur bezig geweest om te achterhalen dat ik een aantal folders met hoofdletters had geschreven en later had hernoemd en dat Git dat niet opgepakt had – waardoor er tijdens het bouwen iets mis ging.

Alle bestandsnamen met kleine letters schrijven. Altijd.

Oskar – na 1,5 uur debuggen

Maar ok. Het werkt allemaal weer. Heb m’n lesje geleerd, maar ben blij dat ik nu weer verder kan. De pipeline werkt fantastisch en had het vervelend gevonden als ik het allemaal handmatig had moeten doen.

[12:50]
Vijanden toegevoegd, die de speler volgen en kunnen hem killen. En de speler kan de vijand weer neerschieten. Ook staat nu groot bovenin het scherm de tijd hoelang nog voordat de speler van richting veranderd.

[15:00]
Veel kleine tweaks gedaan. Restart en game over scherm. Vijanden spawnen niet direct waar de speler is, maar op enige afstand. En de snelheid van de vijanden heeft wat randomness erbij gekregen.

[15:30]
Punten van vijanden toegevoegd, gebaseerd op hun bewegingssnelheid. Speler beweegt stuk simpeler, zonder friction en geglij. Voelt veel fijner nu om rond te rennen. En heb de animerende schiet-indicator vervangen voor een statische pijl – vond het animeren niet heel veel toevoegen.

[21:50]
Afgelopen uren vooral druk bezig geweest met de visuals van het spel. Heb tijdje lopen zoeken naar bestaande art, maar kon niks vinden wat me aanstond. Uiteindelijk ’s middags paar schetsjes gemaakt en toen een eerste animatie gemaakt.

Nog niet helemaal wat ik voor ogen had

Daarna na het avondeten (of eigenlijk tijdens al) wat meer geschetst en toen had ik uiteindelijk de look die ik zocht:

En toen volgde de rest vrij snel, enemies en richt-lijn en alles.

[23:00]
Na eerst te hebben gezocht naar bestaande passende omlijning aan de rand van het spel, zelf uiteindelijk maar simpele stylized borders om het spel getekend. Gewoon simpele roze lijn aan de rand. Werkt prima en past goed bij de overall stijl van het spel.

En nu ook een exploderende vijand toegevoegd:

Plop

[00:11]
Laatste update voordat ik naar bed ga. Nog even een zogenaamde camera shake toegevoegd om het iets meer swung te geven. En kleine dingetjes toegevoegd als een knal voor als je schiet en in de splash-screen worden nu de achtergrondkleuren random getweened.

GMTK Game Jam 2020

Vanavond om 21:00 begon de game jam.

Afgelopen week al beetje wat dingen voorbereid, zoals de automatische deployment naar itch.io enzo. En had ook al een soort template gemaakt voor als ik een nieuw spel wil maken.

Dit allemaal zodat ik me zoveel als mogelijk kan concentreren op het maken van m’n spel.

Hieronder beetje een log van hoe de voortgang vanavond ging:

[16:30]
Alvast een leeg project aangemaakt, naar Github gestuurd en even getest of het deployen naar itch.io goed werkt.

Nu ben ik helemaal klaar voor vanavond.

[20:30]
Middenin de film (Super Juffie) hield ik het niet meer en ben ik naar boven gegaan. Er was al wat artwork vrijgegeven met het logo, dus alvast begonnen met een splash-screen te maken hiermee.

[21:00]
Het thema wordt bekend gemaakt en het is: Out of Control

Een heerlijk thema – lekker vrij en abstract.

Direct hiermee aan de slag gegaan en brainstormen en ideeën lopen schetsen.

Na het schetsen eerst even het werken aan de splash-screen afgerond en aan de slag gegaan met wat basis player movement. En daarna gekeken naar aantal tutorials / uitleg over hoe je een melee-wapen maakt. Nog wel lastig, zie het nog even niet goed voor me hoe dat moet werken.

Wat snelle schetsjes voor de wapens

En om 23:30 netjes gestopt. Morgen een drukke dag voor de boeg, dus ga maar ff op tijd naar bed.

Jam post-mortem

Allereerst het belangrijkste, welke game hebben we nou gemaakt:

Ratvolution

We zijn inmiddels 2 dagen verder, dus mooi om even terug te kijken op de game jam. Doe het maar ff puntsgewijs, gewoon ff een lijstje:

  • heb super veel geleerd. Voor de jam had ik nog maar weinig met Godot gedaan en nu heb ik dus animaties gemaakt, animaties aangestuurd vanuit code, dialoog-systeem geschreven die ingeladen JSON-bestanden parsed en gebruikt, een hele game geschreven die goed functioneert, tilemap gebruikt en nog heel veel meer. Had dit alles niet geleerd (of tenminste niet zo snel) als ik de jam niet had gejoined
  • ook heb ik veel geleerd over het samenwerken met andere mensen – vind ik toch wel heel erg lastig. Vooral dan het loslaten en niet overal de controle over hebben.
  • maar ook het middelen van een game-idee is iets wat ik moet leren en/of anders moet doen, vond het lastig om m’n eigen ideeën los te laten en te gaan waar de meerderheid voor wilde gaan – ben zelf meer van abstracte games en dit werd er eentje met duidelijke graphics en een verhaallijn enzo
  • wat ik sowieso geleerd heb is dat ik veel (!!!) kieskeurig ga zijn met wie ik wil gaan samenwerken. Heeft me heel veel energie gekost om te kunnen verkroppen dat die collega-developer eigenlijk weinig heeft bijgedragen en wel lange tijd de schijn heeft opgehouden. Kan me er nog over opvreten als ik de chats teruglees met alle grote uitspraken waar dan later weer op teruggekomen werd. Constant.
  • denk ook dat ik heb geleerd om heel snel het prototype van een spel te moeten maken en dan daarna verder te gaan verbeteren. Wist al wel dat dat zo zou moeten werken, maar we hebben bijna de hele eerste week alleen maar onderdelen (graphics, animaties etc) lopen maken en pas op de laatste dag (!) ben ik levels gaan maken. Heb zelfs voordat ik het submitten niet eens de game helemaal gespeeld. Kwam er later dus ook achter dat heel veel dialogen niet eens goed pasten of nog bijzondere tekens bevatten 🙁
  • ben heel blij dat ik heb meegedaan. Was een mooie ervaring, veel geleerd en ga het zeker nog wel eens doen. Maar denk dat ik het dan solo ga doen … en ook minder van m’n vrije tijd erin ga stoppen. Heb er nu wel iets van 40+ uur ingestoken. Ben dan ook heel dankbaar dat Lies me de kans gegeven heeft de afgelopen week.
  • en nog een laatste leuke dingetjes. Tobias is super trots dat zijn papa een game gemaakt heeft, zelfs eentje die op internet staat! Hij heeft het vol trots verteld in de klas en gaat hem morgen delen met z’n vriendjes.

    Dus vind het eigenlijk nu beetje jammer dat ik niet een simpel abstract spel gemaakt heb, maar eentje waarin tekst heel belangrijk is – en ook nog eens in het Engels 😛

Jam update #9

[09:35]
Laatste dag. Deadline-day.

Vanavond om middernacht moet het spel klaar zijn. Er moeten nog 3 levels gebouwd worden en het is ook nog eens vaderdag, dus ik kan niet de hele dag hieraan werken.

Kan gewoon niet loslaten dat dit ‘maar’ een game jam is, ik wil gewoon iets moois opleveren. Iets waar we allemaal trots op kunnen zijn.

[16:49]
Vanmiddag toch wat dingetjes kunnen doen. Beetje de splash-animatie zitten tweaken en uiteindelijk het eerste echte level gemaakt. Eerst in de woonkamer wat level-ideeēn zitten schetsen op papier en daarna het eerste level echt gaan maken.

Maar ik verslikte me een beetje – mede door m’n eigen enthousiasme – en maakte het eerste level heel erg groot. De speler moest heel veel rondlopen en het was eigenlijk heel lastig om je weg te vinden.

Maar een teamgenoot vond de schaal juist wel fijn werken en ik heb uiteindelijkd is maar met de breedte van de weg zitten spelen om het allemaal maar beetje werkend te houden.

Lastige was alleen dat ik de enige was die echt nog aan het werk was aan de game. De muziek-gast heeft vanochtend z’n muziek toegevoegd en daarna heb ik weinig van hem meer gehoord. De schrijver was klaar met z’n werk en had ’s avonds andere plannen. En de beide tekenaars (artists) reageerden alleen heel reactief op zaken wanneer ik het nodig had.

Dit was iets anders dan ik het me had voorgesteld. Voelde me beetje op een eilandje zitten. Prima als je solo een spel maakt, maar nu hadden we een groep van 6 mensen – maar ik zit als enige nog keihard te werken.

Nu eerst even avondeten en dan straks nog eventjes paar uur door.

[19:57]
Het eerste level is “af”. Heb alle layout gefixed, vijanden posities staan vast, de items liggen op hun plek.

Nu verder naar het volgende level. Heb ook de credits-pagina al afgemaakt. Leuke daaraan – al zeg ik het zelf – is dat de namen in willekeurige volgorde gesorteerd staan. Leek me wel zo eerlijk. Heb nog even overwogen om m’n collega-developer niet toe te voegen of altijd als laatste te plaatsen. Maar uiteindelijk maar de eer aan mezelf gehouden.

[21:50]
En het tweede level is qua layout “klaar”. Heb ook de (awesome) animatie in het hoofdmenu afgerond. Was weer eventjes leuk spelen met verschillende sprite-animaties combineren enzo. Maar het werkt nu – super gaaf.

Heb nog maar 2 uur voordat alles klaar moet zijn en nog steeds is niemand anders online. Alleen de designer is er, maar die zit lekker te gamen en reageert soms als ik iets vraag.

[23:07]
Nog minder dan een uur. Ben er bijna, maar nog niet helemaal happy met de levels. En moet nog een scherm toevoegen die getoond wordt als je het spel wint.

[23:53]
En heb het spel gesubmit. Heb uiteindelijk weinig / geen aankleding meer in de levels kunnen doen. Beetje jammer, want nu zijn de levels helemaal leeg en verlaten. Er waren zoveel achtergrond sprites gemaakt door de pixel artist, maar had ik geen tijd meer voor om toe te voegen. En niemand kwam helpen.

Beetje jammer.

Nu ook geen zin meer om er dingen aan te gaan doen. Tijd om te gaan slapen. Ben bekaf.

Jam update #8

Laatste dag voor de deadline.

En nog super veel te doen.

Gisteravond hadden we een overleg met het team om te bepalen wat we nou precies gingen doen en wat iedereen nog moest gaan maken. Uiteindelijk nog best veel om te doen, waaronder 3 levels om te bouwen. Maar ook allerlei condities die nog gecheckt moeten gaan worden, verschillende schermen (zoals game-over of victory) die gemaakt / getoond moeten worden. En veel ligt bij mij – want m’n collega-developer was ineens weer terug, met als enige melding dat hij niet precies snapte wat we nu aan het bouwen waren. Waar waren de dingen die hij had opgezet in het begin? Waarom was dat ineens weg? Heb maar rustig gereageerd dat we gezien de tijd besloten hadden om de omvang van de game iets kleiner te maken, omdat er nu al genoeg te doen is. Heb maar niet gezegd dat zijn bijdrage 4 dagen geleden was en dat hij dus weinig recht van spreken had in mijn ogen.

Paar uur later reageerde hij nog een keer met de oproep dat hij niet snapte wat er nog allemaal gedaan moest worden en of we precies konden aangeven wat er verwijderd was en waarom. Dus heb toen nogmaals heel duidelijk uitgelegd wat er nog allemaal gedaan moest worden … en dat was de laatste keer dat we iets van hem hebben gehoord.

Opgeruimd staat netjes.

Heb hem uiteindelijk nog wel een plekje in de credits gegeven – maar kostte me wel veel moeite.

Maar ok. Vandaag dus veel kleine dingen lopen fixen. Heb de enemy-movement gefixed, hoofdmenu afgemaakt, een game-over scherm toegevoegd, de custom achtergronden per npc toegevoegd in de dialoog-schermen en nog veel meer.

Merk dat vooral het gedrag van m’n collega-developer me heel erg dwars zit. Er moet super veel gebeuren en ik heb dan ook een grote hekel aan mensen die van alles roepen, maar weinig doen. Bij hem had ik al snel dit gevoel, maar duurt toch even voordat het duidelijk is dat het gevoel klopt.

Helaas.

En we hebben nog maar 1 dag en morgen is het vaderdag. Dus wordt nog hard eraan trekken om iets fatsoenlijks af te leveren.