Loading

Research journal by nikita perlee

Hallo en welkom bij weer een toffe Spark pagina door mij. Vandaag gaan we onderzoek doen naar 'Hoe maak je een kleine game?' Voor mijn tutorial heb je Blender nodig. Dit is een gratis software dus geen geld te verliezen.

Benodigdheden:

  • Blender
  • Muis
  • Enthousiasme

Om te laten zien wat we allemaal gaan uitspoken heb ik hier het eind resultaat:

Waarom wil ik dit onderzoeken?

Ik ben op het idee gekomen op onderzoek te doen naar games omdat ik zelf speel, ik door iedereen die me kent wordt verteld 'Ik zie jou wel in de game industrie werken.' en ik wil er zelf ook wat aan snuffelen. Voor mijn stage leek het me namelijk ook een leuk idee om stage te doen in een jeugd game van mij Star stable (3D paarden spel). Dit is dan wel in Zweden dus daar ben ik nog steeds niet over uit of ik dat wel een half jaar wil gaan doen. Ik heb daarom op Youtube vooral gezocht naar wat gebruiken andere, grote, game industrieën voor software om deze games te maken / animeren. Hier heb ik daarom een kleine game gevonden met een hele tutorial van 2.30 uur aan het maken van een hele basic game.

Kubus laten bewegen

Stap 1

Goed, laten we beginnen. Als je Blender heb, en een nieuw project hebben we al een kubus om mee te beginnen. Goed, om niet meteen fout te beginnen gaan we (foto hieronder) de 'Blender Render' omzetten naar 'Blender Game'

Blender startup
Tabje open
Default wordt
Game logic
Onze goede settings

In het midden hebben we 3 kolommen. Dit zijn sensoren, controllers en actuators.

Stap 2

We gaan onze eerste beweging maken. Hier gebruiken we de sensoren voor. We willen een beweging maken dat met het toetsenbord kan worden nagedaan.

Wat we dus gaan doen is bij het tabje Sensoren staat 'Add sensor'. Als je daar op klikt krijg je een hele lijst met opties. Wij nemen de 'Keyboard'. Hieronder nog eens de foto's;

Klik op 'Add sensor'
kies 'keyboard'
Als je op 'Keyboard' klikt opent dit

In het nieuwe kleine venster staat een aantal spullen. De eerste 'Keyboard' met de twee pijltjes kan je een andere keuze maken qua sensor. De 'Keyboard' ernaast kan je de naam veranderen, wij noemen deze 'W key'. Daaronder staan 'Key:' 'First Modifier:' 'Second Modifier:' 'log toggle:' en 'Target:'. Als we op het lege tabje bij 'Key:' klikken kunnen we dus de toets die we willen gebruiken indrukken. Dit wordt de 'W'. Hieronder het eindresultaat:

Onze instellingen

Nu gaan we over naar de 'Controller'. Hier doen we het weer met dezelfde stappen, open het tabje 'Add controller', klikken nu op 'And'. Hier kan niks in veranderen.

Nu gaan we het een tikje anders doen, naast de 'Keyboard' staat een dikke zwarte stip. Deze stip kunnen we verplaatsen. We gaan de stip verbinden met de 'And'. Foto's:

Hoe het er dus nu uitziet
Wat we gaan doen
Hoe het er dus nu uitziet

Nu gaan we hetzelfde doen met de Controller en de Actuator. Klik op 'Add actuator', klik op 'Motion'. De motion settings zien er als volgt uit;

De 'L' naast de Z as is de 'Local space'. Als deze aanstaat kunnen we de kubus roteren en de Y as volgt. Als je deze wit maakt wordt het 'Global space'. Global space houdt de Y as op zijn plek hoe hard je de kubus ook roteert. Sinds wij niet de kubus laten roteren zetten we dus de bovenste 'L' op 'Global space'.

Nu gaan we de Controller zwarte stip verbinden met de Actuator stip.

Wat we ook nog moeten doen is de motion kunnen maken. We willen dat als we de W intikken we ook de kubus vooruit zien gaan. Dit doen we door de 'Loc:' 'Y as' in de + te veranderen. Hier hoef je alleen in de rechter '>' van de 'Y as' te klikken en het staat al goed.

Dit dus

Om te zien of we allemaal op hetzelfde pad zitten heb je nu dus dit op je scherm:

Zo ziet het er dus nu uit

Stap 3

Als alles klopt gaan we nu dus de 'W' testen. we beginnen door de game "te starten". Klik op de 'P' toets. Nu zit je in de game. We gaan het testen door simpelweg de 'W' in te tikken. Een video:

Stap 4

Nu moeten we dus de andere 3 toetsen invullen. ze moeten als volgt;

  • S key - And - Motion, Loc:, Y as: -0.10, L wit.
  • A key - And - Motion, Loc:, X as: -0.10, L wit.
  • D key - And - Motion, Loc:, X as: 0.10, L wit

Ikzelf heb ook de pijlen toegevoegd. Dit hoef jezelf niet te doen. Dit is dan het eindresultaat:

Met de pijlen

Als je zelf wilt dat de kubus sneller of langzamer beweegt kan je dat veranderen in de motion assen. Daar hoef je ze alleen bijv. 0.10 naar 0.20 te veranderen en het beweegt sneller.

Vloer en Jump

Stap 5

We zijn zover gekomen om een bewegende kubus te maken. Wat we nu gaan doen is ervoor zorgen dat de kubus met zwaartekracht te maken heeft. Hoe gaan we dat doen? We kijken naar de kolom rechts onder, de witte naast actuation. Zorg er wel voor dat je de kubus heb geselecteerd.

Degene waar 'Scene' in staat

Wat we hier in gaan doen is de kubus een karakter maken én deze met zwaartekracht laten voelen. Dit doen we door de meest rechter tabje van alle icoontjes aan te tikken, het "vinkje" met een bal;

Die

Hierin staat 'Physics type:'. Daar staat nu voor 'Static'. Open hiervoor het tabje en kies 'Character'.

Op deze manier

Nadat je dit heb gedaan gaan we een stukje naar beneden naar de 'Collision Bounds' Deze vink je aan. En hier kunnen we kiezen wat voor een figuur het meest op ons character lijkt, en dat is 'Box'. Deze kan je kiezen, als het niet goed staat, in het tabje zoals gewoonlijk.

Nu we onze character hebben moeten we, vanwege de zwaartekracht, iets hebben waar de kubus op valt. Zorg er wel voor dat je de kubus met de blauwe pijl bij de kubus boven het raster heb. We gaan daarom nu aan de vloer / plane werken. Hoe gaan we dat doen? Door "Shift + A" in te drukken komt er bij je muis een tabje open. Haal hierbij de muis over 'Mesh' en zoek 'Plane'.

Nu heb je een vloertje onder de kubus. Zoals te zien is deze vloer te klein voor de kubus. Je kan daarom de Plane groter maken door "S" in te drukken en met de zwarte pijl de plane groter te schalen. Als je dan nu op "P" klikt valt de kubus op de Plane. Wil je weer weg van de game klik dan op "ESC".

baby plane
Zwarte pijl dat het laat schalen

Stap 5.5

Wat we ook kunnen doen is aanpassen hoe hoog de character springt. Dit kan je doen onder 'Physics Type'. Daaronder staat 'Actor' en een paar kolommen daarin staat 'Jump Force:'. Deze staat nu op 10.000. Ik heb deze aangepast op 12.000 maar je mag natuurlijk ook een eigen hoogte kiezen. Dit is dus hoe het er nu uitziet:

Omdat we de 'Character' hebben gekozen hebben we in de 'Actuation' 'Motion' een nieuwe "trigger". Wat we nu dus gaan doen is weer een nieuwe sensor maken, deze noemen we 'Space bar'. Wat we hier ook gaan doen is bij 'Level | Tap' de 'Tap' aanklikken. Daar weer een 'Controller' 'And' te maken. Dan weer een Actuation Motion te maken. Alleen nu kiezen we bij 'Motion Type:' 'Character Motion'. Hierin staat nu onder de XYZ as een knop genaamd 'Jump'. Jump moet zwart gekleurd zijn anders doet hij het niet. Rarara wat dat gaat doen.

Coins

Stap 6

Best saai zo hé? Beetje rond surfen op een vloer. Let's add some coin and toss it to your Witcher. Goed wat we eerst willen doen is op het kleine raster klikken om een nieuwe laag te maken.

In deze nieuwe laag is de kubus en plane weg. Deze zitten in de andere laag die je hierboven als een gele punt ziet. In deze nieuwe laag gaan we de coin maken. En daarvoor houden we weer "Shift + A" ingedrukt. En je kan elk soort coin maken die je wilt maar ik ga voor de 'Torus'.

Hierna heb ik de Torus nog wat kleiner in schaal gemaakt, dit hoef jezelf natuurlijk niet te doen. Hierna heb ik de tab, 'User Ortho', in het scherm geopend, de Torus verwijderd en opnieuw erin gezet en heb ik de 'Major Segments:' de segmenten van 48 naar 12 veranderd.

Dit menu, 'User Ortho'.
Het menu dat dan openklapt, wij gaan alleen 'Translate' gebruiken.
Nadat je de Torus heb verwijderd en opnieuw heb neergezet staat 'Major Segments:' ertussen.

Maar nu staat het dus nog op de grond, en beweegt het niet zoals we willen. Hiervoor gaan we met de rotatie aan de slag. Klik op "R", dan zie je weer zo'n zelfde zwarte lijn als met het schalen. Klik nu op "X", dit zorgt ervoor dat de rotatie alleen kan worden uitgevoerd over de X as. Nu tik je 90 in op je toetsenbord en druk je op "Enter" of de linkermuis knop en staat je coin.

Kleur

Stap 7

We gaan nu de coin een goud achtige kleur geven. Dit kan heel simpel, we gaan weer kijken naar al onze tabjes en kiezen we de rechter bal icoon.

Daarin staat datzelfde icoon en daarnaast een grote tab met 'New' erin. Klik op 'New'. Als je nu wat lager scrolled zie je ook dat we een nieuwe material kunnen maken, met als eerst de 'Preview:'. In deze preview heb je de grote bal staan, daaronder links 'Diffuse' met een witte balk. Klik op deze balk om een kleur te kiezen.

Nu gaan we de 'Torus' ook echt de naam 'Coin' geven. Dit doen we door het kubus icoon aan te tikken.

Nu dat we dat helemaal goed hebben is het tijd om het ook in de eerste laag te hebben staan. Dus we gaan terug naar laag 1 door er met hetzelfde rastertje als d'r net op te klikken of je gebruikt de toets "1". Hiervoor gaan we een "Empty" gebruiken. Een 'Empty' is een object zonder een mesh. En deze gaat ervoor zorgen dat als we op "P" drukken we onze coin kunnen zien in de game. Deze kan je vinden door weer op "Shift + A" te drukken en dit keer niet naar 'Mesh' te gaan maar naar 'Empty' en daar de 'Plain Axes' te kiezen.

Je kan de Empty overal op de vloer plaatsen. We gaan hem nu met de Sensor, Controller en Actuator (SCA) laten reageren hoe we willen. Hij moet nadat we op "Play" drukken de coin laten zien. Dit doen we dus door dit met de SCA te controleren: (Met de zwarte stippen aan elkaar verbinden)

  • Sensor - Always
  • Controller - And
  • Actuator - Edit Object - Object: Coin

Waarom we de 'Empty' hebben gebruikt en niet gewoon de coin in de eerste laag gezet is vrij simpel en als animator zijnde makkelijker. Als we de coin in laag 1 hadden gezet waren we nog een tijdje bezig met coins maken. Als ik nu met de "Shift + D" indruk kan ik een nieuwe 'Empty' maken die dezelfde instellingen heeft als de eerste 'Empty'. Ook als ik later m'n Torus wil veranderen hoef ik alleen de originelen te veranderen en de 'Empties' volgen de veranderingen. Als ik allemaal losse coins maak moet ik die allemaal individueel klikken en aanpassen, wat langer duurt.

Coin weg wanneer Kubus eroverheen gaat

Stap 8

We beginnen in de 2e laag. Daar gaan we een SCA maken. In de 'Sensor' zetten we dit keer een 'Collision' neer. In de 'Collision' is een leeg veld met 'Property:'. Dit lege veld verteld de Sensor voor welk object het moet zoeken. Dit gaan we zometeen aanpassen in de 'Add Game Property'. We gaan in de 'Property:' het volgende neerzetten "Player". Als we nu op 'Add Game Property' klikken, kunnen we in het dat lege vak PRECIES hetzelfde woord neerzetten. Hiermee weet de sensor dat het alleen naar de player object moet zoeken en niks anders.

Hierna gaan we de Control en Actuator toevoegen, en verbinden met de zwarte stip.

  • Control - And
  • Actuator - Edit Object - Add object > End object

We gaan nu aan de slag met de property ook daadwerkelijk de juist property is. Dus, als je daarnet al een Game Property heb gemaakt kan je deze weer verwijderen door het X in het venstertje. Dan weer terug naar laag 1, daar de kubus selecteren en dan wat ik daarnet ook zei op de 'Add Game Property' te klikken, in het blanco venster "Player" neer te zetten en dat is dat.

Coin roteren

Stap 9

We beginnen hiermee in laag 2. Daar gaan we: Verbinden met zwarte stip

  • Sector - Always
  • Controller - And
  • Actuation - Motion - (Rot:) L wit - (Rot:) Z 5 graden (mag je ook zelf aanpassen).
Score

Stap 10

We willen natuurlijk dat de speler de score kan zien nadat hij een coin heeft. Dit doen we in deze stap (kubus is geselecteerd).

In 'Sensor' gaan we een 'Collision' toevoegen. In 'Property:' schrijven we 'Coin'. We gaan hiervoor naar de 2e laag, om dit in de 'Add Game Properties' toe te voegen. Selecteer de coin. Klik op 'Add Game Properties' en schrijf erin 'Coin'. In 'Controller' kiezen we een 'And'. Deze twee verbinden we weer met de zwarte stip. En dat ziet er dan zo uit:

De coin property:

En in 'Actuator' nemen we een 'Property'. De property actuator kan de '+ game property' in de game zetten. Om dit ook voor ons te laten werken maken we een nieuwe property aan in 'Add Game Property'. Deze noemen we 'Score'. Daarna klikken we op de blauwe i ernaast. Deze i zorgt ervoor dat je ook daadwerkelijk de score kan zien in de game.

Terug komend op de actuator. Waar nu 'Assign' staat gaan we 'Add' maken. Dus klik het tabje maar open en klik op 'Add'. Daarna gaan we in 'Property:' 'Score' kiezen. Daaronder staat 'Value:'. Hierin kan je zetten hoeveel je krijgt elke keer dat je een coin hebt gepakt. Ik ga hier 10 opschrijven maar je bent natuurlijk vrij om daar wat anders in te vullen. Dit gaat er dan zo'n beetje zo uitzien:

Om de score ook echt te zien in de game gaan we links boven naar 'Game'. Zoals hier:

Als je de 'Game' niet kan zien moet je hierop klikken:

En zoek naar de 'Info' tab:

En dan kies je voor 'Show Debug Properties':

Nu dat is geselecteerd kan je in de game ook zien, wat je met de i heb aangeklikt, dat de score er staat.

Schaduw en licht

Stap 11

In de game zelf zijn de schaduwen best donker. Dit kunnen we veranderen. Dit komt omdat Blender opent in de default voor schaduwen. We gaan daarom naar de render tab. Dit is de camera waar we ook de kleuren kunnen veranderen etc.

Hierna gaan we helemaal naar beneden scrollen tot je Shading ziet staan. Daar staat het op 'Multitexture'. Wij willen het op "GLSL'. Klik daarom op de 'GLSL'. In GLSL kunnen we namelijk wel schaduwen gebruiken.

Hierna gaan we naar onze lamp. Deze selecteer je en daarna gaan we weer naar de kleine tabjes bij de lamp settings.

In deze settings gaan we de Lamp van Point naar Sun veranderen.

Maar in het scherm zien we nog niet zoveel veranderen. Dit komt omdat we in de solid kijken. Zeg maar alleen kleur is te zien. Wij willen een 'echte' wereld zien zodat we constant een 'update' zien voordat we op 'P' hoeven te klikken. Dit is simpel te veranderen, we gaan naar het kleine balletje in het midden, waar ook 'View' staat. Daar klikken we dan op en kiezen voor 'Texture'.

De schaduwen hebben we nu in ons spel. We gaan deze wat lichter maken want ze zijn nog wat harsh

Was dit niet voldoende

Als mijn tutorial niet goed heeft geholpen, heb ik nog deze dude die precies hetzelfde uitlegt maar is misschien makkelijker te begrijpen:

Conclusie

Ik ben echt diep teleurgesteld dat we niets met games doen. 2D of 3D, ze zijn allebei te doen. Ik heb het idee dat juist animatoren later een grootte rol spelen in games en films. Ik ga ook zeker nadat ik ben afgestudeerd op het GLR meer zoeken naar cursussen voor green screens, game development en zelfs een beetje fotografie.