Een eiland in de oceaan van weblogs

Categorie: Game development (pagina 1 van 5)

plek 17

Afgelopen weekend kwam dan de uitslag van de Godot Wild Jam (game-jam) en mijn spelletje, MoonR, is geëindigd op plek 17.

Op zich prima plek, 17 van de 61 inzendingen. Dus op 27% … maar was er wel beetje door teleurgesteld. Eerlijk gezegd had ik zelfs beetje gehoopt op een 1e plek … zo vol zelfvertrouwen was ik van de kwaliteit en fun die mijn spelletje bood. Heb veel van de ingezonden spellen gespeeld en vaak dacht ik: “ja leuk, maar niet super tof” of “ziet er mooi uit, maar is qua gameplay beetje saai” etc.

Dus toen de eindscore gepresenteerd werd en een ander spel op 1 stond, dacht ik nog even: “oh, misschien ben ik dan top 3″… maar nee, ik moest een stuk naar beneden scrollen. Totdat ik MoonR op plek 17 tegenkwam.

Accessibility#43.5523.552
Controls#63.7593.759
Theme#94.2074.207
Originality#104.0004.000
Fun#133.4143.414
Overall#173.4483.448
Graphics#213.7243.724
Audio#551.4831.483
de scores voor MoonR

En boven mijn inzending stonden andere spellen, waarvan sommigen echt wel leuk waren of kwalitatief goed in elkaar zaten … maar er zaten er ook bij die een stuk minder origineel / grappig / leuk qua gameplay waren. Een old-school racer bijvoorbeeld – met een grote maan op de achtergrond … that’s it. Speelde super basic en was (vond ik althans) totaal niet leuk om te spelen… enige was dat het er wel nice uitzag.

Maar merkte tijdens het spelen en waarderen sowieso al een groot verschil, op bijvoorbeeld sommige spellen werd super enthousiast gereageerd – terwijl ik het niet echt bijzonder vond.

Maar ok. Zag ook wat spellen helemaal onderaan de ranking staan, waarvan ik dacht: “wow, dat is wel heel gaaf gemaakt”. Dus blijkbaar is mijn mening niet eentje die veelvuldig gedeeld wordt.

Ach ja. Ik heb weer iets gemaakt, dat was het belangrijkste doel van deze game-jam. Nu weer snel de game-dev-pen oppakken … voordat het allemaal weer wegzakt.

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

Blote billen

Sinds ik twee jaar geleden m’n eerste gamejam joinde, heb ik paar keer iets gemaakt. Laatste keer was vorig jaar zomer en daarna is het beetje verloren gegaan in kom-er-niet-aan-toe-excuses.

Prioriteiten, heet dat.

Gelukkig zijn er zat game-jams om te joinen, maar ik hou toch vooral de Godot Wild Jam in de gaten. Die is elke maand en gaat om het werken met Godot, m’n preferred engine.

In maart besloot ik om weer eens een game-jam te joinen, maar kwam niet helemaal uit over het idee en haakte af voordat ik ook maar iets kon produceren.

Maar elke keer als ik terugkeek op m’n gemaakte games, herinnerde ik me het plezier wat ik had tijdens het maken en werd ik helemaal enthousiast.

Dus afgelopen zaterdag joinde ik de GWJ game-jam van deze maand, met als thema:

Ik wilde het heel simpel aanpakken. Gewoon een game maken om af te kunnen ronden, om m’n enthousiasme weer aan te wakkeren.

Dus ik maakte een heel simpel concept, soort van infinite runner waarbij je de positie van de maan moest veranderen om je mannetje te laten springen (aka zwaartekracht aan te passen).

Had het technisch beetje in elkaar zitten, de grond werd gegenereerd op basis van verschillende onderdelen … maar had wat moeite met de hoogte te bepalen voor de runner. En merkte dat m’n enthousiasme alweer afnam.

Ik begon beetje Twitter te bladeren op zoek naar inspiratie, las m’n halve Mojo-archief en wilde eigenlijk afhaken om weer eens een comic te tekenen.

Maar ik had mezelf voorgenomen om deze game-jam af te maken en daar herinnerde Lies me aan. Dus ik zette nog een keer m’n game-jam pet op en krabbelde wat andere ideeën. Eentje zat al in m’n achterhoofd vanaf het zien van het thema, mooning.


Mooning is the act of displaying one’s bare buttocks by removing clothing, e.g., by lowering the backside of one’s trousers and underpants, usually bending over, and also potentially exposing the genitals.

Wikipedia

Dus zondag (dag 2) schetste ik een auto met daarin een jongetje die vanaf de achterbank “stiekem” de voorbijgangers mooned, terwijl je moet oppassen dat je moeder je niet betrapt.

En merkte gelijk dat het enthousiasme weer terugkwam. Haalde meer energie uit het tekenen en hoefde iets minder te programmeren, alhoewel ik ook dingen als een Finite State Machine kon toepassen – wat ook wel weer gaaf was.

Ondertussen zijn we paar dagen verder, de voortgang is beetje stroef – niet zoveel meer kunnen doen en (daardoor?) ’s avonds ook niet zoveel zin om eraan te werken. Merk dat ik vooral overdag de drive heb, maar ja, dan ben aan het werk.

Misschien maar weer eens dagje omdraaien, overdag game-jam en ’s avonds nog beetje werken. Dat is op zich wel het voordeel van freelancen en thuiswerken.

Deadline voor deze game-jam is aanstaande zondag, maar aangezien het de laatste vakantieweek is hebben we nog zat plannen om te gaan doen. Dus waarschijnlijk krijg ik er hoofdzakelijk nog de minimale dingen erin, zoals punten-telling en (hopelijk) wat kleur.

We gaan het zien en ga het hier wel roepen alssie klaar is.

Game gejam

Afgelopen week in een spontane aktie weer meegedaan met een game-jam, de Godot Wild Jam. De game-jam was afgelopen vrijdag al begonnen, maar kwam maandag op m’n radar en toen stond m’n pet juist in de “ik heb weer zin om een game jam te doen”-modus … dus ideale timing. En deze keer weer eens lekker alleen-ig.

Het thema was deze keer “You Aren’t The Hero”.

Begon dus eerst met het brainstormen van ideeën; vele ideeën kwamen op het papier en even leek het alsof het idee van een tovenaar die een platform-held moest helpen met het overkomen van obstakels zou “winnen”. Maar het voelde niet leuk – en dat is toch wel belangrijk als je iets wilt gaan bouwen.

Dus nog even beetje nadenken en toen was daar HET idee – een held die door een dungeon loopt, welke jij moet bouwen voor hem. De held loopt / vecht vanzelf, jij bepaald indirect zijn succes, door te bepalen waar de monsters, de schatten en de hartjes komen.

Maandag (17) begon ik met het genereren van kamers met willekeurige deuren, zodat niet elke kamer hetzelfde aantal en plekken van deuren had. En toen plaatste ik deze kamers op het grid.

Op dinsdag (18) maakte ik een design in Aseprite en verwerkte dat in de game. Aan het eind had ik iets wat een beetje leek op wat ik had getekend.

Het design in Aseprite

Woensdag en donderdag (20) werkte ik aan de mogelijkheid om kamers te kunnen selecteren, een preview te kunnen zien en ze te kunnen plaatsen.

Vrijdag (21) voegde ik de eindkamer toe (eindelijk een doel om naartoe te kunnen bouwen) en deed ik wat tweaks met de look-and-feel.

Nog twee dagen te gaan en had wel een basis, maar nog weinig echte gameplay. Terwijl dat altijd wel m’n aanpak is, zo snel mogelijk de gameloop klaar – zodat je kan aanvoelen en testen of het leuk is om te spelen.

Komt ook wel beetje doordat ik doordeweeks gewoon moet werken en dus alleen ’s avonds aan m’n gamejam kan werken.

Zaterdag (22) maakte ik beduidend meer voortgang:

  • de held loopt zelfstandig door de dungeon
  • wanneer deur connecten, teken een “opening”
  • de held loopt in willekeurige volgorde door de dungeon
  • kamers hebben verschillende eigenschappen (monsters, schatten of hartjes) en daar wordt iets mee gedaan

Zondag (23) was de laatste dag en er was nog genoeg te doen. De deadline van 22:00 kwam in de buurt en uiteindelijk heel veel kunnen oplossen:

  • Je score wordt berekend op basis van aantal “stapjes”
  • De levenskracht van de held wordt bijgehouden en hij/zij kan “dood”
  • Wat visuele tweaks (zoals de grond en gras)
  • Een splash-screen en hoofdmenu werden toegevoegd

Uiteindelijk submitte ik m’n game en was klaar. De deadline was afgelopen en ik was klaar.

Of toch niet?

Toen ik het spel – kort na de deadline – bekeek op de itch.io pagina, zag ik dat de tekst door elkaar stond. Tijdens de last-minute tweaks, had ik per ongeluk wat tekst versleept. Nu stond de uitleg door een stukje tekst over hoe te restarten. Helemaal niet leesbaar.

Gelukkig heeft de organisatie van de Godot Wild Jam een regel dat als er een game-breaking bug in je game zit, dat je die dan mag uploaden om te fixen. Dus ik paste het gelijk aan en stuurde een berichtje.

Maar de organisatrice was aan het werk en niet te bereiken. Dus ik moest wachten tot ze weer terug was om te reageren.

In de tussentijd merkte ik op dat het spel in de browser heel (heel veel!) trager speelde dan lokaal. Het was gewoon bijna niet speelbaar, de held liep super traag en je moest dus heel lang wachten totdat hij uberhaupt de dungeon binnentrad.

En ik begreep maar niet waar het door kwam. Totdat ik m’n fout realiseerde en me wel voor m’n kop kon slaan. Ik had het lopen van de held op basis van een Timer gedaan – dus elke 18 milliseconden deed hij een stapje. Maar aangezien het spel in de browser draaide, was de update daarvan niet consistent. Soms werd de code wat later uitgevoerd en dan was het “stap”-moment al geweest en werd de held dus niet verplaatst.

Een hele erg beginnersfout, een van de eerste dingen die je leert als game-maker … maar ik was er toch ingetrapt.

De fix was heel eenvoudig, zit gewoon (praktisch) ingebakken in Godot. Bij de update (_process) functie krijg je altijd de tijd mee sinds de vorige update. Dus als je daar gewoon kijkt of er inmiddels 18 milliseconden voorbij zijn, kan je dan de held een stapje laten zetten … en kan je gewoon normaal bewegen – ongeacht de snelheid van de updates.

Dat werkt perfect. Deed z’n werk en was ook nu robuust gemaakt. Maar ja, ik had m’n game al gesubmit. En zo’n fix is niet echt game-breaking.

Maar toen kwam de organisatie van GWJ en meldde dat de upload nog even aangezet was. Dus ik kon m’n tekst wijziging nog uploaden. En toevallig kwam daarin ook m’n timer-probleem-fix mee.

Gefixed!

Check de game hier

De rest van de week heb ik eigenlijk (te) weinig reclame gemaakt voor m’n game, het werd maar door 15 mensen gerate en het spel eindigde dan dus ook op plek 48, van de 89 – dus net iets onder de helft. Helaas.

Qua meeste categorieen (graphics en theme) stond ik in de middenmoot. Alleen qua controls en originaliteit en fun eindigde ik iets hoger:

Controls#18
Originality#22
Fun#26
Theme#32
Overall#48
Graphics#53
Accessibility#59
Audio#82

En hoe nu verder?

Ik typ deze blog nu 2 maanden later (19 juli), maar cheat een beetje (voor de record van het archief) door deze op de oorspronkelijke postdatum te laten staan.

Maar nu ik het proces van deze game jam heb beschreven, merk ik dat m’n enthousiasme voor dit concept nog steeds leeft. Het was zo lekker simpel en eenvoudig, maar had zoveel potentieel.

Dus ik wil er heel graag aan verder werken – betere game van maken.

Heb hierna nog een andere game jam gedaan en de game die daaruit kwam was een leuk experiment – maar merkte dat ik daar veel minder enthousiast over was.

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

Snelle video

Na m’n eerste tutorial video had ik de smaak te pakken en werd geinspireerd door een comment, dus maakte meteen kort daarna een tweede video met meer uitleg.

Snel en kort gemaakt, maar uiteindelijk kostte het toch nog iets meer bewerktijd dan ik had voorzien. Maar al-met-al wel tevreden met het eindresultaat.

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:

Boem!

En de volgende devlog is klaar.

Het maken ging al een stuk sneller dan de eerste.

Alhoewel. Het opnemen van de voice-over ging een stuk sneller, aangezien ik nu weet hoe ik dat proces wil doen. Ik schrijf de bulletpoints op, ga dan gewoon zitten en begin te vertellen en gebruik de bulletpoints als leidraad. Daarna luister ik m’n gebrabbel terug en schrijf het letterlijk uit, zonder alle uhms en verander sommige woorden nog wel beetje.

Dan heb ik een ‘natuurlijk verteld’ verhaal en kan het daarna in 1 run opnemen. Soms paar keer even pauseren wanneer ik de draad kwijt raakte of even struikelde over m’n woorden, maar over het algemeen was het redelijk snel opgenomen.

En toen begon het zoeken van de juiste video-fragmenten, wat een grotere klus was dan ik had verwacht.

Bij m’n eerste devlog had ik de fout gemaakt dat ik geen tussentijds beeldmateriaal had opgenomen, dus heb tijdens het maken van m’n devlog een aantal keer gefaked – een oude build geopend en die gefilmd … alsof ik ermee bezig was.

Dat werkte wel bij de dingen die ik moest doen binnen Godot, maar voor bijvoorbeeld het tekenen van de art werkte dat niet – want juist dat opbouwende proces kon ik niet laten zien, wat jammer was.

Dus had me bij deze game jam voorgenomen om elke keer alles op te nemen. En dat had ik ook heel keurig gedaan.

Wat dus resulteerde in dat ik meer dan 20 uur aan videomateriaal had. Met daarbij dus allemaal geswitch naar Spotify of Discord, wanneer ik met Rick aan het kletsen was. Of dat ik eventjes iets moest opzoeken of even m’n mail bekeek – stond er allemaal op.

En daar moest ik dus overal doorheenploegen. Gelukkig kon ik nog wel beetje m’n git history gebruiken om te kijken wanneer ik bepaalde features af had gerond en dus beetje zien wanneer ik waar mee bezig was.

Dat scheelde wel aanzienlijk, maar ben toch dagen (op-en-af) bezig geweest met het doorzoeken van de videos naar de juiste fragmenten.

Maar hij is eindelijk klaar!

Wel blij met het eindresultaat. Heb iets meer dingen kunnen laten zien hoe het gedaan is en wil ook wat kleinere videootjes op gaan nemen die bepaalde aspecten nog iets beter uitleggen.

Heb wel beetje de smaak te pakken gekregen met het maken van videos.

En heb ook gelijk maar even geinformeerd bij een aantal mede-game-developers hoe zij hun devlog materiaal opnemen. En die doen dat dus blijkbaar tijdens het ontwikkelen, dat wanneer ze een bepaalde feature afgerond hebben, dat ze dan even dat opnemen, zodat je later gewoon wat fragmenten kan combineren en klaar.

Dus dat gaan we de volgende keer doen ^^

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.

Eerste devlog

De afgelopen week ben ik druk bezig geweest met het maken van m’n eerste (video) devlog. Had hier op Rakso al een verslag getypt, maar ik genoot heel veel van de verschillende devlogs op Youtube.

En ik wilde daar aan bijdragen. Dus ik besloot er een zelf te maken van m’n GMTK game jam ervaring.

Lastige was alleen dat ik geen beeldmateriaal had opgenomen tijdens de game jam – dus ik moest het gaan faken.

Eerst schreef ik een script, alles wat ik wilde vertellen. Toen moest het opgenomen worden en gemonteerd.

Na wat zoeken (en uitproberen van een aantal programma’s) kwam ik uit bij Hitfilm Express, een gratis pakket waarmee je films kan monteren.

Was eventjes zoeken en wat tutorials volgen, maar al snel kon ik aan de slag. Maar had daar wel nog goede audio voor nodig.

Ik ging op onderzoek naar een (betaalbare) microfoon welke ik kon gebruiken en kwam uit bij de Blue Yeti Nano:

Dus het was even wachten totdat deze binnenkwam. Ik besloot om alvast even een proefopname te maken, zodat ik beetje kon rommelen met Audacity (om m’n stemopname te bewerken) en dan kon ik alvast beginnen met monteren. Deze opname klonk echt belabberd, maar gaf me wel wat timing om mee te werken bij het monteren.

Maar gelukkig kwam al snel de bestelde microfoon en kon ik echt gaan opnemen. Dit was wel weer een heel nieuw gebied om te leren. Ik heb het op meerdere manieren geprobeerd, totdat ik de manier vond welke ik het fijnste vond werken.

Eerst las ik los alle zinnetjes / alinea’s op welke ik had uitgeschreven, allemaal in aparte geluidsbestandjes en die ik apart bewerkte. Maar daardoor klonk elke zin anders, omdat die anders qua volume was bewerkt.

Daarna nam ik langere zinnen op, dit zorgde er wel voor dat het geluidsniveau gelijk was, maar de stukjes waren ook echt dat, stukjes – weinig spontaniteit, maar echt opgelezen stukjes tekst.

Inmiddels was ik al een paar dagen verder met op-en-af ermee bezig te zijn. Begon er beetje genoeg van te krijgen, maar wilde het ook wel graag afmaken.

Dus ik gooide het over een andere boeg. Ik veranderde m’n lange uitgeschreven tekst naar bullet-points en vertelde alles in 1 keer. Met veel ge-uhm en zoeken naar de juiste woorden, maar uiteindelijk had ik toch een spontaan verhaal.

Toen heb ik dat woord-voor-woord (maar uiteraard zonder de uhm’s) uitgetypt en toen nogmaals in 1 keer opgenomen.

Nu had ik dus een spontaan klinkend natuurlijk verhaal, zonder uhm’s maar wel met spontaniteit en enthousiasme erin.

Deze audio-track gebruikte ik vervolgens als leidraad om m’n video te monteren. Per onderdeel zocht ik wat video-materiaal erbij. Ik had gelukkig nog wat fragmentjes opgenomen tijdens het developen (welke ik in m’n vorige posts er al had bijgezet) en voor de rest deed ik alsof.

Ik opende Aseprite en deed alsof ik m’n tekeningen maakte. Ik opende de websites welke ik had bezocht en deed alsof ik op zoek was naar geluiden of art assets. Ik opende Audacity en deed alsof ik de geluiden bewerkte.

Dit wekt (hopelijk) beetje de indruk dat het live beelden zijn van tijdens de game jam. En voor de rest toonde ik fragmenten van de verschillende stadia van het spel. Van toen ik net begonnen was, toen ik halverwege was, toen ik de grafics had toegevoegd en van toen het klaar was.

Al-met-al is het best een aardige devlog geworden. Zeker voor een eerste keer, al zeg ik het zelf.

Volgende plan: aanpassingen doen aan Forced Directions en dit dan direct opnemen en dan snel een devlog ervan maken.

En eind komende week begint een nieuwe game jam, deze keer van Miziziziz. Dus dan kunnen we het nogmaals goed oefenen ^^