PU.nl bouwt een Top Down ShooterDeel 9 

PU.nl bouwt een Top Down Shooter – Deel 9 2019-05-09T00:38:45
In deze serial gaat Johan iets doen wat nog nooit eerder gedaan is… Met de PUmunity een game in elkaar schroeven! We slaan de handen ineen om samen een vette top down shooter maken, dus schuif aan, zet je creatieve pet op en doe mee met dit ambitieuze project!

Heya! Welkom bij alweer het negende deel van deze serial. We gaan weer verder waar we de vorige keer gebleven waren, dus check vooral de vorige delen (1, 2, 3, 4, 5, 6, 7, 8) voordat je deze leest! In deze editie van pu.nl bouwt een Top Down Shooter fixen we wat bugs, verwerken we wat feedback en werken we aan de Vertical Slice, wat eigenlijk wil zeggen dat we een compleet level proberen te maken. Het is een flinke, dus zet je schrap!

Overenthousiaste Alien

Laten we gelijk beginnen met een bugje. De grijze alien die sinds aflevering 5 Powerkid een kopje kleiner probeert te maken schoot vanaf het begin al gelijk in het rond zodra hij de speler zag lopen. Dat ziet er natuurlijk een beetje raar uit - er staat gewoon een dikke muur tussen de twee, maar toch probeert hij tevergeefs onze blauwe held verrot te knallen...

gif-alien-shoot-1  
Daar kunnen we wat aan doen! De oplossing is vrij simpel - we nemen de X en Y coördinaten van Powerkid en de desbetreffende alien en trekken daar een lijntje tussen. Als de alien vervolgens de trekker over probeert te halen wordt er eerst gecheckt of er geen solide objecten geraakt worden door het lijntje. Als er dus bijvoorbeeld een muur tussenzit besluit de vijand niet te schieten. Pas als het mogelijk is om te raken mag de alien weer schieten.

gif-alien-shoot-2  
Hatseflats! Dat ziet er al een stuk minder knullig uit.

Toffe Tileset

Goed, laten we nu dan maar beginnen aan het grootste gedeelte van deze aflevering, de Vertical Slice! Een van de grootste dingen die we nog missen is een fatsoenlijke "achtergrond". Die lichtgroene tegels en bruine muren geven je misschien wel een idee waar je naar kijkt, maar erg fraai is het niet. Tijd om een mooie tileset in elkaar te schroeven! Ik heb alleen geen flauw idee wat voor soort thema ik nou voor Graddus moet gebruiken.

Plots weet ik het. Ik Whatsapp Graddus en vraag hem wat zijn favoriete game allertijden is. "Hmmm, daar vraag je wat op de vroege morgen..." Het duurde niet lang voordat hij zijn antwoord had. "Zelda OoT, sowieso." Ik vraag hem wat zijn favoriete gebied of tempel in het spel is. "Forest. ...Nee, Kakariko Village!"

Daar kunnen we wat mee!

kakariko  
Natuurlijk heb ik het meesterwerkje dat Ocarina of Time is wel gespeeld, maar ik zoek even wat plaatjes op om te gebruiken als reference. Veel gras, stenen muurtjes, blokkerige huizen met simpele texturen van steen en hout... Direct aan Kakariko aangesloten zit ook de Graveyard. Dat mooie stenen pad kunnen we ook wel gebruiken.

Zo'n compleet groene achtergrond is ook een beetje saai, dus ik voeg wat tiles toe met wat plukjes gras om het op te breken. De tileset wordt straks geïmporteerd als vierkantjes van 16 bij 16 die ik handmatig in het level mag gaan plaatsen. Het grootste gedeelte van de grond waar de speler mag lopen zal het standaard blokje gras zijn, maar het is leuk om wat variatie te hebben. Voor het pad gebruik ik een simpele grijze kleur en probeer ik het vierkante uiterlijk van de tegels in Ocarina of Time aan te houden. Het ziet er allemaal wel net iets te netjes uit, dus ik rommel wat met het blok om er een interessantere vorm uit te krijgen. Vervolgens maak ik nog drie blokken die op dezelfde manier aan alle andere blokken past en plaats ik ze willekeurig op het pad.

grass-and-path  
Dat ziet er al een stuk natuurlijker uit!

Ik pak nog wat elementen uit Kakariko die ik goed kan gebruiken. Stenen muurtjes, een trap, wat hekjes en de grafstenen uit de Graveyard. Allemaal met genoeg variatie dat straks niet alles op elkaar gaat lijken.

walls-stairs-graves  
Laten we de boel eens even in actie bekijken!

tileset  
Vervolgens doe ik een poging om een 2D versie van de huizen die in Kakariko staan te maken.

houses-1  
Al met al nog best goed gelukt, al zeg ik het zelf. Het ziet er nu trouwens uit als een "normaal" huis, maar ook deze zal straks voor de tileset in stukken van 16 bij 16 pixels worden opgebroken, zodat ik wat kan spelen met de vorm van de huizen en ze niet allemaal een carbon copy van elkaar zijn. Voor wat extra variatie voeg ik nog de andere twee soorten huizen uit Kakariko toe.

houses-2  

Interactieve Objecten

Dat het level nu iets prettiger is om te aanschouwen is leuk natuurlijk, maar bij gamen gaat het natuurlijk om interactie, hoe klein dan ook. Subtiele details zoals gras wat gemaaid wordt als je het raakt voegt bijvoorbeeld al wat toe.

grass  
Nice! Al is dat natuurlijk wel een beetje nutteloos - het is niet alsof er rupees uit vliegen. Voor een iets interessanter interactief object maak ik een kistje, zoals die ook in Kakariko te vinden is.

crates-1  
Zoals je ziet heb ik er gelijk een "vernietigde" sprite bij gedaan. Ik importeer de plaatjes, geef het kistje wat HP en zorg ervoor dat de sprite van plaatje wisselt als zijn health onder de 1 komt.

crates-2  
Hij doet het! Misschien wel leuk als er een beloning uitkomt, anders voegt het net zo weinig toe als die blaadjes gras.

crates-3  
Jackpot! Als de speler nu een doos kapot schiet vliegen er 1 tot 5 N64 cartridges uit. Met de crates heb je natuurlijk hetzelfde als de tileset - als je steeds precies dezelfde sprite voorbij ziet komen wordt dat ook snel saai. Daarom maak ik snel een paar andere formaten crates.

crates-4  
Hoe groter de crate, hoe meer geld er uit vliegt! Ze hebben dan wel iets meer kogels nodig om open te barsten.

crates-5  

Vlijmscherpe Valstrikken

Een van de dingen die ik merk terwijl ik aan een groter level werk is dat we eigenlijk niet zo bijzonder veel variatie in vijanden of obstakels hebben. De kippen doen eigenlijk niks, de krabben zijn vrij makkelijk te vermijden en de Greys als enige echte bedreiging is toch niet genoeg. Ik wil jullie deze aflevering vragen voor wat meer ideeën wat dat betreft, maar voor nu maak ik even snel een kleine spike trap om wat interessantere situaties te kunnen bieden.

spikes-1  
Ik maak een object aan met een vrij simpele opdracht: Wacht heel even en doe dan de spikes omhoog, wacht dan heel even en doe vervolgens de spikes weer omlaag. Als "omhoog" dan "true" is terwijl de speler in contact met het object is ontvangt hij een beetje damage.

spikes-2  
It works! Met deze traps kunnen we er niet alleen voor zorgen dat de speler niet door het level rusht, maar ook bijvoorbeeld dat je moet kijken waar je loopt terwijl je de kogels van een alien probeert te ontwijken.

Wonderbaarlijke Wereldreis

Alright, even genoeg van dat level. Zoals ik vorige maand met DoomguyIsLink al besprak wilde ik graag een map screen toevoegen voor de Vertical Slice. Zo kan de speler een level selecteren - en hebben wij een scherm om hem naar terug te kicken als het level gehaald of gefaald is.

Ik maak om te testen eerst een lege, grijze kamer waar ik Powerkid van positie laat veranderen als ik op A of D druk.

map-1  
So far so good, maar we willen natuurlijk een echte landkaart waar hij niet in een rechte lijn van A naar B gaat. Ik maak een sprite voor de achtergrond met een paar frames - elk frame unlockt een nieuw pad. In het game object zorg ik ervoor dat het huidige frame overeenkomt met het "maximale level" en maak het zodat de "W" toets het volgende level unlockt.

map-2  
Dat lijkt prima te werken! Wel een beetje lelijk zo. Ik weet nog niet hoe de andere levels eruit gaan zien, maar ik kan Kakariko in ieder geval alvast een iets opgepoetste sprite geven gebaseerd op de tileset die we net in elkaar hebben geflanst.

map-3  
Mijn idee was om een miniatuur versie van de wereld te maken, zoals bijvoorbeeld Super Mario Galaxy dat deed. De naam komt tevoorschijn als de speler er op gaat staan.

map-4  
Dat ziet er prima uit voor nu!

Leipe lasers

We hebben nog een paar kleine dingetjes af te ronden voordat we er een eind aan breien. Zo kwam famouswolluf een maand of twee geleden met een klein probleempje:

"Misschien ook een idee om het wapen een range te geven? Zo schoot ik een Grey guy neer en de enemy heel stuk verderop was ook dood. Wellicht de range limiteren tot wat je op het scherm ziet (+ een x aantal pixels erbuiten voor iets range)"

Goed idee! De huidige kogels knallen nu richting hun doel en stoppen pas als ze een solide object aanraken. Een beetje oneerlijk dus. Ik geef de lasers wat "drag", zodat ze elk frame iets afgeremd worden.

bullet-range-1  
Goed om te zien dat het werkt, maar dit is natuurlijk wel een beetje extreem. Je zou op zijn minst alles wat je kan zien moeten kunnen raken.

bullet-range-2  
Dat is beter! Ze houden er net iets na het randje mee op. Wel een beetje awkward dat ze zo in de lucht blijven hangen...

bullet-range-3  
There we go!

Lolindir had ook een suggestie: Geef Graddus een health bar! Het is nu niet te zien hoe veel HP de eindbaas over heeft. Klinkt logisch!

boss-hp-bar  
Ohja, als laatste had ik nog wat collectibles gemaakt van het PU logo, dat was tijdens de tweede aflevering een kanshebber voor de HP bar, maar toen die verloor veranderde het plan naar een Donkey Kong Country-achtige "KONG" collectible.

pu-1  
Shiny!

pu-2  
Je kan ze nu dus al vinden in de game, maar ze hebben nog geen functie. Dat brengt me op het volgende...

Helpende Hand

Zoals ik hierboven al een paar keer heb aangegeven is het huidige aanbod aan gameplay in het level nog vrij beperkt. Daarom wil ik bij deze jullie hulp vragen om wat nieuwe, unieke dingen te verzinnen.

Vijanden
We hebben de krabben en de greys, maar daar is alles ook mee gezegd. Hebben jullie een tof idee voor een paar nieuwe enemies? Iets wat ranged of melee aanvallen doet, of beide?

Obstakels
Ik heb in dit deel natuurlijk zelf de spikes toegevoegd, maar als jullie nog een tof idee hebben voor een ander soort dynamisch obstakel, let me know!

Puzzels
"Puzzels? Wat? Dat hoort toch helemaal niet thuis in een top-down shooter?" Natuurlijk moeten we geen "The Witness"-achtige taferelen krijgen in een game die relatief fast-paced hoort te zijn, maar wat simpele "puzzeltjes" om bijvoorbeeld deuren te openen of een pickup te krijgen zou wel leuk zijn. Als iemand een idee heeft hoor ik het graag!

PU Collectibles
Tsja, wat gaat het nut zijn om alle vijf te verzamelen in een level? Een extra leven? Wat gamecartridges? Vertel het me!

KakariNO Village
Last but not least denk ik dat we een alternatieve naam moeten gaan verzinnen voor Kakariko Village. Nintendo staat er om bekend dat ze elk project wat hun IP gebruikt de lucht uit trekken, dus laten we het maar veilig spelen - ik heb geen zin om opeens een leger advocaten voor m'n deur te hebben die me een Cease&Desist overhandigen. Dus wat denken jullie? Nog een leuke nieuwe naam?

The End

Dat was hem weer voor vandaag! Als je zelf de game in zijn huidige staat wilt uitproberen is hij hierrr te downloaden. Volgende maand zijn we alweer bij de tiende aflevering, waar we een recap doen van alles wat we tot nu toe gedaan hebben in deze serial. De maand daarna ga ik weer hard aan de slag met de suggesties die jullie hebben gedaan, dus laat me weten wat voor toffe ideeën jullie allemaal hebben! Tot volgende maand!

REACTIES (21) 

Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord