Rakso

Een eiland in de oceaan van weblogs

Menu Close

Categorie: Game development (page 1 of 2)

CPP

C++, de programmeertaal welke ik al jaaaaren eens machtig wilde worden.

Het begon rond m’n twintigste, ik had het idee voor een MOD voor Quake2 – de MOD zou Obsession gaan heten. Het idee was dat het een aangepaste versie van Free For All zou zijn, waarbij er zou worden bijgehouden wie wie killde en dat je dus meer punten zou krijgen als je je Nemesis zou killen. En dat ook de topscorers meer punten waard was dan andere spelers.

Dus ik begon beetje uit te zoeken hoe je een MOD moest bouwen, maar Quake2 was geschreven in C++ en heb toen een beetje gekeken hoe dat werkte, en het daarna met rust gelaten.

Tijdens m’n studie kregen we dan wel weer les in C++, heb meerdere dingen geprogrammeerd, maar kan me er eigenlijk weinig meer van herinneren. Tijdens m’n studie had ik dan ook nog niet heel veel interesse in programmeren. Vond er niet zoveel aan, zwalkte beetje door m’n studie heen en nam het pad met de minste weerstand. En tja, dan is (leren) programmeren niet de beste route, want tijdens programmeren en zeker het leren ervan, ondervind je super veel weerstand. Dat heb ik inmiddels wel geleerd en juist leren omarmen.

En zo ontwikkelde ik me dus in de loop der jaren in de richting van de scripting languages (ActionScript, PHP, Javascript etc). En voelde ook weinig behoefte om een èchte programmeertaal te leren.

Maar onlangs kwam er (weer) een oproep van een team hobbyisten die bezig zijn aan een onofficieel vervolg op HalfLife 2. Dit vervolg, genaamd Project Boralis, had een half jaartje geleden al eens m’n interesse gewekt, maar toen had ik er weinig mee gedaan.

Nu las ik dat ze op zoek waren naar mensen die mee konden helpen, maar als ik dan de vacature-eisen doorlas, stond er overal bij dat je ervaring moest hebben met C++. Er stonden nog wel andere eisen, maar vond zelf deze het grootste struikelblok.

Dus sinds een paar weken ben ik echt serieuzer bezig met het leren van C++, via een geweldige website. Ik maak hele (heeeeele!) kleine programmaatjes, leer langzaam de taal en de quirks. En heb het heel erg naar m’n zin.

Dus tja, straks / later / hierna komt de keuze … ga ik verder met C++ en dan iets van Unreal Engine leren ofzo? Of ga ik verder met m’n Unity cursus en is C++ een mooie bonus?

ça va?

Even kort dagboek-entry om eventjes bij te kletsen:

// Vorig weekend (met Pinksteren) gingen we een lang weekend naar een camping. Een zogenaamde natuurcamping. Dit klinkt net alsof we daar naakt rondrennen, maar dat is het gelukkig niet. Het is een camping zonder alle meuk als een animatie-team, disco etc. Dus gewoon lekker middenin de natuur, vogeltjes om ons heen, mooie ruime plek, vriendelijke mensen, trampoline voor de kinderen en lekker eenvoudig maar heerlijk kamperen. Samen met m’n moeder, die kwam ook een paar nachtjes in een trekkershutje.

// Afgelopen week was dan weer beetje mix van beetje gamen en daarnaast weer verder met het game-project waar ik samen met m’n neef Rick mee bezig ben. Het begon ooit als cursus-projectje (eerste versie), maar is inmiddels weer zoveel verandert dat het er niet helemaal meer op lijkt. Dus vorige week paar avondjes beetje lopen rommelen met inladen van geluiden, bugs eruit halen, gameplay aanpassen etc.

// Afgelopen weekend waren er meerdere Switch-games in de aanbieding, wat mij dus triggerde om Hollow Knight opnieuw te kopen (had hem al op de PC, maar speelde hem daar nauwelijks). En dat speelt toch wel weer super nice en is toch wel sneller erbij gepakt dan op de PC (+ controller aansluiten etc).

// En ook nog Crypt of the NecroDancer gekocht, want die was helemaal bizar in de aanbieding (3 euro)

Nek, Shaders…

... knie en teen - knie en teen

Al sinds ik computerwerk doe, zijn m’n nek en rug zwakke schakels. Om de paar maanden heb ik er last van. De ene keer heftiger dan de andere keer. Heb er hier al meerdere keren over geschreven. En nu was het weer zover.

Ik had (weer eens) te lang op m’n laptop zitten werken gamen. Deze keer was Risk of Rain de boosdoener. En dit samen met op de bank voorovergebogen zitten, voor langere tijd, zorgde ervoor dat m’n nek helemaal verkrampt raakte en ik daar 1,5 week last van heb gehad.

Ben zelfs een dag thuisgebleven van werk. Maar vorige week toch maar naar de fysio gegaan, die heeft me wat oefeningen gegeven en het even los gemasseerd. Dus het gaat nu alweer een stuk beter.

En ik doe – als ik eraan denk – m’n oefeningen en let meer op m’n houding achter de computer. En dat lijkt allemaal goed te werken.

Heel fijn.

Maar dit resulteerde ook dat ik niet verder kon met m’n game-dev ontwikkelingen. Enige wat ik kon doen was op de bank zitten en beetje films kijken. In de afgelopen week ook wel weer meer gaan inlezen / bekijken over shaders en de technologie daarachter.

Super interessant en leuk!

En nu sinds een week is m’n nek weer beetje losser en ben ik beginnen met te rommelen met Shader Graph – de tool om shaders te bakken in Unity. Heel erg gaaf, maar nog super veel om te leren.

Shader Graph, de nodes die het effect zoals hieronder samenstellen.
M’n geexperimenteer met shaders (in Unity)

Ook een aantal videos gevonden met andere toepassingen van Unity, waaronder het procedureel genereren van de wegen en huizen in steden. Super gaaf en zeker iets waar ik binnenkort iets mee wil gaan doen.

M’n top-down shooter spelletje heeft ook wat kleine verbeteringen gekregen. Zo was het voor Rick (m’n neef, die de muziek en geluidseffecten verzorgd) handig als hij runtime de geluiden kon inladen – zodat hij kon experimenteren met de balans en samenhang. Dus een avondje me eventjes kwaad gemaakt en het inladen van de geluidsbestanden erin gehangen.

Merk dat ik al wel steeds meer vertrouwd raak met Unity en dingen erin bouwen. Is echt wel heel gaaf. Maar nog zoveel te ontdekken en leren.

Maar nu hebben de shaders weer even de aandacht. Zal binnenkort wel weer vervangen worden door iets anders, misschien wel verder gaan met de top-down shooter.

We zullen zien.

Watskeburt

// Vorige week m’n topdown shooter afgerond. Hij valt hier te bekijken: Laser Defender

// Hierdoor ook weer enthousiast geraakt en toen samen met neef Rick gaan doorontwikkelen. Hadden genoeg nieuwe ideeën en Rick gaat voor de muziek en soundeffects zorgen. Heb er weer helemaal zin in.

// Ook heb ik samen met Lies Avengers: Infinity War teruggekeken. Door de lengte van de film, moesten we hem over twee avonden uitspreiden. Maar we moesten hem afkijken, want

// Afgelopen zaterdag gingen Lies en ik naar Avengers: Endgame. De laatste, afrondende, film in de hele Avengers saga. Was een hele gave afronding van het verhaal, zal niks spoilen, maar zeker eentje die je moet gaan kijken.

// Werd laatst enthousiast gemaakt door een post op Waypoint over Risk of Rain 2 en ben nu weer helemaal into PC-gaming. Roep al zo lang (al jaren!) dat ik ooit weer zelf een PC wil gaan bouwen, maar heb het altijd afgeschoven als te duur. En geinspireerd door Tobias z’n Switch-spaar-plan nu zelf ook een PC-spaarplan gemaakt:


Dus hopelijk kan ik eind binnen een jaar een nieuwe PC samenstellen en daarop lekker weer gamen.

Elke week weer anders

Sinds ik me kan herinneren, of eerder, sinds ik me er bewust van ben geraakt, ben ik regelmatig enthousiast over iets anders.

Heb er ooit een hele post aan gewijd, m’n golvende enthousiasme. Ene moment ben ik enthousiast over het een en het volgende moment over het ander.

Momenteel ben ik me aan het inlezen over het programmeren voor de GPU, zogenaamde shaders maken dus. Dit alles na het zien van onderstaande trailer van de indie-game A Short Hike.

Vond de grafische stijl zo gaaf, zag daar al echt een grover spel in gebeuren … en wil dat dus gaan leren.

Heb nog even aan de ontwikkelaar gevraagd of hij iets meer kon vertellen hoe hij dat had gemaakt en al snel kreeg ik een reactie met wat meer informatie.

Een van de grootste eye-openers was dus dat de stijl deels mogelijk wordt gemaakt door een aantal custom shaders. Dus tja, daar wil ik dan meer van weten.

En tegelijkertijd heb ik ook weer het gevoel dat ik mezelf niet verder ontwikkel, omdat ik de Unity-cursus alweer paar weken niet heb aangeraakt en dat eigenlijk zou moeten afmaken… vind ik dan.

Maar ja – ga nu lekker even wat tutorials doen om shaders te (proberen te) begrijpen.

Weer eentje af

De afgelopen weken werkte ik langzaam door de stapjes van m’n Unity cursus. Vaak tijdens de 30/40 minuten durende treinreis van/naar m’n werk en soms nog wat thuis verder, als er tijd is.

En zo rondde ik vorige week weer een spelletje af. Ben te enthousiast voor het volgende spel, dus zal niet meer levels maken. Maar je kan hem hier spelen: Block Breaker

En heb ook de source van al m’n werk op Github gezet:

Momenteel ben ik bezig met een topdown shooter, genaamd Laser Defender. Dit concept spreekt me veel meer aan – ook qua looks & feel en gameplay. Dus wil hier nog wel wat meer extra’s in verwerken.

Huidige staat van de game

En nog een spelletje

Vanavond rondde ik weer een (simpel) spelletje van m’n Unity-cursus af. Een spelletje waarin je simpel een getal in gedachten neemt en dat ‘het spel’ dat getal gaat raden. Qua programmeren was het echt te simpel voor woorden, maar heb er wel weer een-en-ander van geleerd. Het inladen van verschillende scenes, de knoppen werkend maken etc.

Let wel, visueel is het echt een draak. Had geen zin om er iets moois van te maken, wilde door met de volgende lessen ^^

Bekijk het spelletje hier dus: Number Wizard UI

Spielerij

Vorige week begon ik met een online Unity cursus, op het platform Udemy.

Als eerste kwamen de kleine simpele tutorials. Meestal sla ik die over, ik wil meteen door naar het echte werk. En loop dan tegen allemaal dingen aan die ik niet weet en haak dan af. Dat is ongeveer het patroon van de afgelopen jaren.

Maar ik word ouder… en wijzer. Ik begin in te zien dat ook (lees: juist) de kleine beginstapjes heel erg waardevol en leerzaam zijn. Deze beginselen vormen de basis van de rest van wat je gaat leren.

Dus ik bekeek alle filmpjes (op 1,5x de snelheid, soms zelfs 2x) en deed mee op m’n laptop. En ik leerde. Soms was het heel logisch en soms zelfs dan leerde ik nog kleine dingetjes. Handigheidjes en truukjes die ik niet kende.

En zo begon ik aan m’n eerste echte spelletje. Een textbased choose-your-own-adventure. Ik besloot om het voor Tobias en Renske te schrijven, dat maakte het nog veel leuker en makkelijker.

Eerst dus een setting kiezen, daarna de flow/stapjes uitwerken. Ik tekende op draw.io een flow-diagram en vulde die in een avondje met allemaal stapjes en teksten.

En schreef het daarna in C# en Unity. Ik voegde zelfs nog wat kleine extra dingetjes toe, zoals keuzes die onthouden werden, keuze-afhankelijke teksten (die getoond werden op basis van je gemaakte keuzes) en moest hiervoor nog wat dieper rommelen met C# en regular expressions. Heel leuk. En dat bleek ook wel, want uiteindelijk ging ik weer veels te laat naar bed.

Maar hij was wel af. M’n eerste spelletje. Of eigenlijk m’n tweede, want anderhalf jaar geleden maakte ik er ook al eentje.

Bekijk hier m’n eerste baksel: een lekker ontbijtje.

En hier staan – voor archief-doeleinden – nog even m’n Asteroids-kloon

Twee eindes

Van de week weer even iets meer gefocust aan m’n Asteroid game verder gegaan. Wilde hem maar eens afmaken, want was weer enthousiast geworden van een nieuwe manier van bouwen. Dus maandag aan de slag, gefocust op het implementeren van de navigatie, het kunnen pauzeren en herstarten enzo.

Uiteindelijk was het best een leuke en leerzame klus. Helemaal toen ik besloot om het niet allemaal perfect te doen, maar het gewoon degelijk in elkaar te zetten. Uiteraard nog steeds wel netjes, maar of het de beste manier is – daar hield ik me even minder mee bezig. En dat bevrijdde me zo, dat ik na een avondje rommelen heel de flow af had. Pauzeren, restarten, game-over… alle states waren afgevangen en het spel was dus (soort van) klaar. Het einde van m’n eerste game-ontwikkel-projectje.

Check het resultaat hier: Mac OSX / Windows

Of bekijk het hier in je browser

Het tweede einde haalde ik dinsdag, toen ik besloot om DOOM maar eens verder te spelen. Het voelde alsof ik bijna aan het einde was… en dat bleek ook zo te zijn. Was laatst 1/3 level van het eindgevecht gestopt. Dus even nog 2/3 afmaken (was nog best/beetje pittig) en toen kwam de eindboss. Deze was in eerste instantie best wel lastig, ik ging 2-3 keer dood en gooide al bijna de handdoek in de ring. Maar besloot het nog 1 keer te proberen. En die poging slaagde en ik had DOOM uitgespeeld.

Het eind was beetje mwah, maar overall heb ik me heel erg goed vermaakt met het spel.

Asteroids Advanced Extra Extreem ++

Afgelopen week besloot ik om me weer wat meer te richten op game development. Pakte m’n Asteroids projectje weer op en ging weer beetje verder rommelen.
Begin dit jaar had ik al de enemies geintroduceerd en beetje een beginnetje gemaakt met dat ze de player volgden.

Maar toen beetje blijven hangen in dat ze (de enemies) moesten kunnen rondkijken, de player vinden en dan naar de laatste locatie gaan waar ze hem vonden. Denk dat ik het mezelf weer beetje te moeilijk heb gemaakt. Maar toch kon ik het idee niet helemaal loslaten. Heb destijds (begin dit jaar) ook een tijdje wat tutorials en cursussen (online) gevolgd over trigeometry enzo, was super interessant en leerde er weer veel van. Maar m’n game-dev ambitities belanden weer in het vergeethoekje.

Dus nu weer beetje opgepakt. Vanavond weer beetje lopen rommelen en uiteindelijk nu enemies die je zoeken en volgen, health items die animeren wanneer ze worden opgepakt en last-minute ook nog even wat smoke animaties gemaakt wanneer je ergens op schiet ^^

Kijk hieronder even een aantal gifjes met de voortgang:

De enemies achtervolgen de speler (februari 2017)

Testje om de enemy te laten zoeken ipv dat ze direct op de speler afkomen (februari 2017)

Enemies zoeken en zodra de speler in hun Field of View is, gaan ze naar de laatste lokatie waar hij gezien is (september 2017)

Smoke en health pickup animaties (september 2017) – en lastige enemies ^^

© 2019 Rakso. All rights reserved.

Theme by Anders Norén.