Categorieën
Game development

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.

Categorieën
Game development

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.

Categorieën
Game development

Jam update #7

Vandaag had ik de dag vrijgenomen van werk, speciaal om aan de game jam te werken. Dus ben weer een heel eind verder gekomen. Heb een level gemaakt, een font toegevoegd, de animatie toegevoegd waarmee de vijand naar de speler toeloopt en nog allemaal andere zaken welke nodig waren.

M’n eerste level
Categorieën
Game development

Jam update #6

Vanochtend begon al goed met de mededeling van m’n collega-developer die meldde dat hij het heel druk had met ‘real world issues’ en dat hij dus de komende 2 dagen niks kon doen.

What else is new?

Maar ok. Heb er steeds meer vrede mee, geeft mij namelijk steeds minder zorgen om te moeten samenwerken met zo’n iemand. En ik kan dus prima gewoon alles doen zoals ik het wil.

Vanavond vooral bezig geweest met dingen uitzoeken en voorbereiden. Heb morgen de dag vrijgenomen van werk (dacht initieel dat de game jam morgen zou aflopen, vandaar), dus kan dan me heel de dag focussen op de game jam.

Categorieën
Game development

Jam update #5

Vandaag gebeurde er niet zoveel. Het was beetje stil. M’n collega-developer liet niets meer horen. Had eerlijk gezegd ook niet anders verwacht. Maar ook de muziek-gast en de artists waren stil.

Begon me beetje af te vragen of ik de enige was die nog enthousiast was voor deze game jam.

Zelf ‘s avonds ook niet zoveel motivatie om iets te doen. Was beetje gaar van gisternacht.

Categorieën
Game development

Jam update #4

Gaaaaaaaaaaaaaaap!

Ik vanochtend na 4 uur slaap

Gisteravond beetje tot te laat doorgegaan. Ik had ‘s middags (tussen allerlei meetings door) al aan het inventory-systeem gewerkt.

De player kon nu items oppakken en er werd een inventory getoond wat hij dus in z’n broekzakken had zitten.

Onze rat kan items oppakken 🎉

Toen ‘s avonds wilde ik aan de slag met het quest-syteem. Doel was dat de player naar een npc (non-player character) kon lopen, met hem/haar kon praten, dan een quest kreeg (een opdracht om een item te zoeken/halen) en die dan terug kon brengen.

Lastige vond ik dat m’n collega-developer had aangegeven dat hij wel eventjes dat dialoog-systeem zou bouwen. Maar ik had het gevoel dat ik een goed idee had hoe dit te moeten bouwen … en hij deed constant maar 1-2 uurtjes werk en haakte daarna weer af onder het mom van allerlei smoesjes. Dus ik besloot om (wederom) de stoute schoenen aan te trekken en gewoon het dialoog-systeem te bouwen.

Enige probleem was dat het inmiddels al 23:00 was en ik nog moest beginnen.

Maar ik zag het helemaal voor me. Had de JSON-file al helemaal opgezet hoe ik het voor me zag, dus hoefde nu ‘alleen nog maar’ de code te typen.

En dat ging wonderwel zo eenvoudig als het klonk. Juist omdat ik de hele JSON-structuur al klaar had, kon ik vrijwel in een constante stroom alle benodigde code schrijven en had uiteindelijk om 02:30 (‘s nachts ja) een super gaaf dialoog-systeem.

Waarbij de player dus bepaalde quests kon doen, daarbij werd bijgehouden of hij die quest al geaccepteerd had en bepaalde reacties werden zelfs pas actief wanneer de speler de benodigde item in z’n inventory had.

Voelde echt super gaaf – ondanks het late tijdstip. En ik had heel veel geleerd en was nu vol zelfvertrouwen hoe ik bepaalde dingen in Godot moest gaan doen.

De demo van m’n dialog-systeem, welke ik vol trots aan m’n teamgenoten stuurde

Enige nadeel (en klein beetje voordeel) was dat m’n collega-developer (die dus vrijwel niks had gedaan de afgelopen 2 dagen) me vanochtend een berichtje stuurde: “Wow, de development gaat wel heel hard. Weet even niet wat ik moet doen nu”

Dus heb hem keurig een lijstje gestuurd met alles wat er gedaan moet worden; dingen als animaties, menu, navigatie etc. En zeker de levels, want zonder levels hebben we niks.

En nu gaat hij zich dus richten op het level-design. En kan ik me dus op de randzaken gaan richten als animaties, overall game-flow etc.

Er is nog genoeg te doen voordat het aanstaande zondag klaar moet zijn.

Categorieën
Game development

Jam update #3

Vandaag bezig geweest met overdenken hoe de game er nou globaal uit moest komen te zien, qua flow en verschillende ‘states’.

Verschillende flows van de game

Daaruit volgde dat ik bepaalde zaken ergens moest gaan bijhouden, maar was niet helemaal tevreden met de voorgestelde mappen-structuur van m’n collega-developer.

Aangezien hij meer ervaring had met Godot ben ik de eerste dagen hem gevolgd met z’n voorgestelde mappenstructuur, maar hoe meer ik in Godot werkte, hoe meer ik een hekel kreeg aan de opgezette mappenstructuur. Het werkte allemaal niet fijn, zat teveel theoretisch bij elkaar, maar niet logisch.

Ter voorbeeld, zo zat alle animaties in een mapje animations en de code in movable_objects – maar als ik dan iets met de player wilde doen, moest ik in 2/3 verschillende mappen zijn. Veels te veel gedoe.

En aangezien m’n collega-developer vandaag ineens aangaf dat hij examens had op z’n school en dus weinig kon doen (verrassing!), besloot ik om de stoute schoenen aan te trekken en gewoon de boel helemaal om te gooien naar een (voor mij) logischere indeling.

Deze indeling was ongeveer als volgt:

.
├── assets
├── data
├── entities
├── global
├── gui
├── levels
├── menu
├── sound
├── splash
├── tilesets
└── zzzz_deprecated
  • assets – alle sounds en sprites, onderverdeeld in verschillende mappen, per entiteit of domein:
├── assets
│   ├── Sound
│   ├── fonts
│   └── images
│       ├── enemies
│       ├── items
│       ├── menu_animation
│       ├── misc
│       ├── npcs
│       ├── player
│       ├── ui
│       │   ├── main
│       │   ├── npc_dialog
│       │   └── splash
│       └── world
│           ├── floor
│           ├── props
│           └── walls
  • entities – alle verschillende entiteiten, zoals een mapje voor de player, een ander mapje voor een enemy en dan weer een ander mapje voor een item of een npc. Zo staat alles wat bij elkaar hoort bij elkaar, code en animaties:
├── entities
│   ├── enemies
│   ├── items
│   ├── player
│   ├── villagers
│   └── world
  • global – alle globale scripts – bijvoorbeeld om de game-state bij te houden of om muziek af te spelen. Maar ook zaken om globaal de dialogen bij te houden
  • gui – alle UI gerelateerde zaken
  • level – de verschillende levels die gemaakt waren
  • tilesets – de verschillende tilemaps voor de levels

Een aantal mappen had ik achteraf gezien ergens anders willen onderbrengen:

  • sound waarin de code stond voor het aansturen van de muziek, had eigenlijk als submap in global gemoeten
  • menu had als submap van gui gemoeten
  • net als splash wat ook een submap van gui had moeten zijn

Maar al-met-al was ik wel heel happy met hoe ik de overall structuur opgezet had. Voelde heel intuitief aan en wordt ook door Godot niet afgedwongen ofzo – dus kon zelf gewoon lekker m’n eigen weg erin vinden.

En nu dus morgen lekker aan de slag met het quest-systeem, waarbij een npc dus een bepaald item kan requesten, de player dit item dus moet kunnen oppakken en kunnen afleveren.

Heb al wel beetje een idee, maar eens zien hoe we dat gaan aanpakken dan.

Categorieën
Game development

Jam update #2

Afgelopen weekend een beetje aan de game jam kunnen doen.

Zaterdagmiddag beetje lopen rommelen met de globale game opzet, terwijl m’n collega-developer de player-movement voor z’n rekening zou nemen. Daarna aan de slag gegaan met het detecteren van de player door de vijanden. Dit ging eigenlijk verbazingwekkend snel en had ik binnen een uurtje in elkaar gezet.

En zondag was ik overdag op visite bij de familie in Almere, maar toen ‘s avonds lekker aan de slag gegaan met de player-animaties. Heb dus nu al een wandelende player, inclusief een staart die los van de speler beweegt. Wel beetje laat geworden, sloot pas na 1:00 ‘s nachts af – wilde echt even die staart-animatie en alles goed hebben.

Het resultaat is wel heel gaaf:

Wandelende rat (inclusief bewegende staart)

M’n collega-developer ben ik alleen iets minder over te spreken.

Het begon zaterdag al meteen dat hij wel even de player-movement zou doen, had hij toch al wat voor liggen.

Uiteindelijk na een paar uur wachten produceerde hij een stukje code waarmee we de player konden bewegen. Maar ik had in diezelfde tijd de vijand detectie geschreven en om dat te testen ook zelf even tussendoor de player movement geschreven. En mijn haastig geschreven stukje code was eigenlijk zelfs al beter (als ik dat zelf mag beoordelen) dan zijn gepruts code.

En nu – na nog niet eens 2 dagen – begin ik al kriebels te krijgen over deze samenwerking. De artists en muziek-gast zijn allemaal hard aan de slag, tonen echt duidelijk inzet en produceren ook. Maar vanuit m’n collega-developer krijg ik voornamelijk commentaar op het werk wat ik doe, allemaal commentaar over de code die ik schrijf, terwijl vanuit hem weinig komt.

Er komen voornamelijk excuses (die nu al steeds meer beginnen te klinken als smoesjes) waarom hij bepaalde dingen niet afgekregen heeft. Terwijl hij tegelijkertijd hoog van de toren blaast dat het allemaal makkelijk is en hij het wel ‘even’ zal afmaken allemaal de komende uren.

Heb nu al bijna genoeg van deze game jam, als dat zo moet verlopen. Merk dat ik zelf moet loslaten de controle te hebben en dat ik me maar moet focussen op dat ik zelf veel kan leren. Het idee dat dit maar een week duurt steunt me enorm.

Maar had me dit toch iets anders voorgesteld. Ben benieuwd hoe dit gaat uitpakken.

Categorieën
Game development

Jammin’

Een game jam is een wedstrijd waarbij de deelnemers vanuit niks een video game proberen te maken. Afhankelijk van de opzet mogen deelnemers ofwel allen of samen in teams werken. De wedstrijd duurt gebruikelijk 24 tot 72 uur. Deelnemers zijn over het algemeen programmeurs, ontwerpers, tekenaars, schrijvers en andere game gerelateerde disciplines.

Traditioneel richten game jams zich op video games, maar soms worden er ook wel bordspellen gemaakt.

Losse vertaling van de definitie van Wikipedia

Al een paar jaar wil ik eens een keer aan een game jam meedoen. Er zijn er genoeg. Ik kende in eerste instantie alleen de Global Game Jam of Ludum Dare. Dit zijn de twee meeste bekende en elke keer als er weer eentje aangekondigd werd, begon ik te twijfelen of ik nou deze keer eens mee wilde gaan doen.

Maar ik durfde nooit.

Het leek me geweldig om met een klein team gefocussed aan een maf idee te werken. Maar had altijd het gevoel dat ik nog niet genoeg game dev ervaring had en eerst zelf meer bekend moest zijn met Unity, voordat ik echt tot nut kon zijn en met een team mee kon draaien. Dus ik liet de game jams allemaal aan me voorbij gaan…

Maar toen ik dus 3 weken geleden Godot ontdekte, kwam ik al snel op de Discord in gesprek met iemand die zei dat het heel leerzaam was om met een game jam mee te doen. En toevallig was er een specifieke Godot game jam die elke maand gedaan wordt. Dus ik heb me vol enthousiasme aangemeld, in de dagen in aanloop naar de game-jam een team gezocht en kleine dingetjes (zoals automatische deploys naar itch.io) opgezet.

En vannacht om middernacht begon deze game jam. Vanochtend vroeg opgestaan (6:00) om samen met m’n team te overleggen. Het moest zo vroeg, want alle teamleden zitten verspreid over de hele wereld, een in India, twee in Amerika en twee in Estland.

Vanochtend dus onze brainstorm-sessie gehad, tot een beetje een idee gekomen (een stealth game waarbij je (spelende als rat) langzaam volgers moet werven voor je revolutie tegen katten). En nu beginnen we langzaam met ons idee uitwerken.

– wordt vervolgd –

Categorieën
Game development

Godot – het vervolg

Afgelopen weekend ben ik begonnen met het opnieuw maken van m’n eerste Unity game, Asteroids.

Voornamelijk om te zien hoe ik in Godot een echt spel moest maken en daarnaast omdat het me een mooie vergelijking leek, eens kijken hoe makkelijk/moeilijk dit gaat verlopen.

Maar al snel had ik de assets erin zitten, had ik de juiste instellingen en kon ik m’n schip bewegen door het scherm.

Volgende stap was het toevoegen van asteroiden. En nu – 2 dagen later – heb ik al een werkend prototype:

Het begin is er ^^

Om tot dit prototype te komen was eigenlijk niet zoveel gepuzzel nodig, vooral logische zaken. Weinig (tot geen) gedoe met uitzoeken hoe ik iets nou precies in Godot moest doen (zoals wel moest bij Unity) – maar vooral nadenken over game-design.

Maar nu ik dit heb, beginnen de ideeën weer te borrelen. Zomaar Asteroids weer opnieuw maken is beetje suf. Dus we gaan een iets andere richting op – later meer hierover (wil niks spoilen ^^)

Maar tot nu toe heb ik Godot nog steeds super hoog zitten, het werken ermee is super leuk en ga nu gewoon weer lekker verder.