Informatica in het hoger onderwijs / gametechnologie
maak je eigen app (gids, game, simulatie, toepassing)
GameTechnologie en Informatica GameTechnologie wordt wereldwijd ingezet om leuke games te maken, maar wordt ook gebruikt om simulaties te maken. GameTechnologie is wereldwijd een grote wetenschap geworden met tal van mogelijkheden en toepassingen in het dagelijkse leven... en niet enkel en alleen voor spellen. Een belangrijk onderdeel van de informatica is dan ook de GameTechnologie. In GameTechnologie komen logisch denken, creativiteit, ontwerpen, vormgeving, modelleren & programmeren samen op verschillende niveaus. Bruikbaar bij opleidingen in het hoger onderwijs waar je in eerste instantie niet aan zou denken.
JE EIGEN GAME 1) Als je de game niet individueel gemaakt hebt, met wie heb je dan de game gemaakt?
___________________________________________________________________________________________________ 2) Wat is het onderwerp van de game? ___________________________________________________________________________________________________ 3) Wat is je doelgroep? ___________________________________________________________________________________________________ 4) Op welke manier kom je zelf in de game voor?
___________________________________________________________________________________________________
___________________________________________________________________________________________________ 5) Geef een korte beschrijving van het scenario.
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________ 6) Het moet een serious game (educatief spel zijn). Wat leer je van je (of jullie) spel?
___________________________________________________________________________________________________
___________________________________________________________________________________________________ 7) Heb je de uitleg voor de game gemaakt onder de functietoets
zoals afgesproken?
___________________________________________________________________________________________________ 8) Is de Game (ook) Nederlandstalig?
___________________________________________________________________________________________________ 9) Wat heb je ervan geleerd?
___________________________________________________________________________________________________
___________________________________________________________________________________________________ 10) Waarom is het leuk om de game te spelen en blijft het ook leuk? ___________________________________________________________________________________________________
___________________________________________________________________________________________________
GameMaker en GML
- research & development -
Bij het programma GameMaker maak je gebruik van… - sprites:
afbeeldingen/plaatjes die nog niet echt iets kunnen, het kunnen ook animated gifs zijn; als je afbeeldingen gemakkelijk transparant wilt maken sla ze dan op in het formaat .png. Met Irfan View kan je gemakkelijk de transparant kleur kiezen; bij het ontwikkelen van sprites kan je ook gebruikmaken van de vele sprite-strips op Internet of deze zelf maken.
- objecten:
objecten zijn sprites waaraan gebeurtenissen (events) en methoden (acties) worden toegekend; het zijn dus sprites die ergens op (kunnen) reageren.
- instanties:
instanties zijn klonen van de objecten die je in je room (level) hebt geplaatst; van een object kun je meerdere instanties maken (niet andersom natuurlijk).
- room of level Een room of level kun je een bepaalde achtergrond (background) geven; de background kun je al dan niet laten bewegen; een goed ontworpen background (of meerdere bij verschillende levels) geeft een game of simulatie meteen een heel ander uiterlijk en moet je functioneel maken/ontwerpen. - geluid
Voorzie je game of simulatie van functionele geluidseffecten en een passend achtergrondgeluid (in .mid, .wav of .mp3); let erop dat je geluidsbestand niet te groot wordt; er zijn verschillende programma’s voor je beschikbaar voor audiobewerking en natuurlijk hebben we ook een microfoon.
- GML
GML staat voor Game Maker Language en is een object georiënteerde programmeertaal (O.O.-taal), die op dezelfde manier werkt als bijvoorbeeld de programmeertaal JAVA, C# of C++. Dus wat je leert met GML kan je later ook gebruiken bij opleidingen waarbij modelleren of programmeren een rol speelt (zoals bijvoorbeeld economie en econometrie, architectuur, werktuigbouwkunde, gesimuleerde experimenten bij biologie, enzovoorts). In gamemaker kan je al heel veel programmeren met de bijgeleverde visuele programmeeromgeving (IDE = Integrated Development Environment), maar via GML worden de mogelijkheden oneindig.
- overerving
Inheritance of overerving is erg handig bij de OO talen en kan je in GameMaker gebruiken om bepaalde objecten de eigenschappen (attributen) en acties (methoden) te laten erven van andere objecten; op die manier hoef je al die attributen en methoden die een rol spelen bij bepaalde events niet opnieuw te programmeren – erg handig.
- scenario
Bedenk een goed scenario en werk dat uit; welke sprites en objecten ga je gebruiken, waar moeten die objecten op reageren, hoe is de interactie met de achtergrond, hoe verwerk je verschillende levels (rooms) in je scenario, welke geluidseffecten om de interactie te ondersteunen, wat voor genre wordt het (actiongame, platformgame, shooter (FPS), adventure, strategy game, role playing game (RPG), racing game, …). Wat maakt een game interessant? Denk daarbij aan de game scene, de spelregels, uitdaging, gevoel van controle, meerdere manieren om te winnen, easy to begin – hard to master, balans in het spel, goede interactie (niet te traag, niet te snel – dus goed testen). Een goed idee – daarmee staat of valt de game. Graphics – maak gebruik van photoshop, irfan view en bestaande sprite-collecties, kies geschikte afbeeldingsformaten qua extensie en qua grootte, aan te passen met de bekende applicaties. Animaties – welke plaatjes ga je animeren en hoe gedetailleerd moet dat?
Sounds – zorg voor een goede sound, zonder sound geen game; sounds zijn belangrijk om de speler de game echt te laten beleven. Vraag je docent naar audio bewerkprogramma’s. Programmeren – In deze lessen gebruik je GameMaker (GML) maar je kunt bijvoorbeeld ook Visual Basic, C++, JAVA of Flash gebruiken. Via programmeren wordt je spel pas echt interactief. Testen – Test je game regelmatig en test uitvoerig als de game klaar is, het liefst door verschillende personen. Jij weet als maker precies hoe je de game moet spelen. Maar als anderen je game testen dan zie je wat er anders en beter kan. Publiceren – publiceer je game als deze helemaal klaar is. Ook andere mensen kunnen de game dan spelen. Je docent informatica heeft een softwarepakket waarmee de in GameMaker ontwikkelde game omgezet kan worden in html5 code voor een website. Op die manier kun je de ontwikkelde game via de browser op Internet spelen en opnemen in bijvoorbeeld je eigen website. Een goed begin Een goed begin om het werken met gamemaker in de vingers te krijgen is het drakenspel maken (Evil Clutches) en/of het doolhofspel (Maze Game) en/of de tutorial bij de start van GameMaker. Goed zoeken via de diverse gamefora, kijken op yoyo games, bestaande games bekijken, tutorials en voorbeelden op youtube enzovoorts. Experimenteren met Research & Development moet van jou een echte ontwikkelaar maken, vwo-waardig en te zijner tijd klaargestoomd voor het hoger onderwijs. Maar daar moet je wel wat voor doen ;-)
In tegenstelling tot de meeste vakken staat bij het vak informatica de praktijk centraal. Daarom vragen toekomstige werkgevers meestal niet of je bijvoorbeeld goed in geschiedenis bent, maar wel of je ICT/informatica-vaardig bent:
Gebrekkige ICT-kennis werknemer kost 19 miljard - woensdag 7 maart 2012 Computerproblemen en gebrek aan digitale vaardigheden kosten werkgevers 19 miljard euro per jaar. De Nederlandse werknemer verliest per dag gemiddeld 8 procent van zijn tijd aan ICT-problemen. Dat blijkt uit het rapport Ctrl Alt Delete na onderzoek van de Universiteit Twente. Als er problemen zijn, schakelt bijna de helft van de werknemers de helpdesk in. Slechts een klein deel lost de problemen op met hulp van collega’s. Uit het onderzoek blijkt dat deze hulp het meest effectief is. Ruim 63 procent van de werknemers helpt wel eens een collega met computerproblemen. Dit kost veel tijd en geld. Een mogelijke oplossing zou zijn om op elke afdeling een ICT-buddy aan te wijzen. Deze buddy is een duidelijk aanspreekpunt waardoor problemen snel en effectief opgelost kunnen worden. Dat moet dan iemand zijn die goed geschoold is in informatica. Ondanks dat het effect van een ICT-training groot is, heeft slechts eenvijfde van de ondervraagden een training gevolgd. Werknemers onderschatten hun vaardigheden op dat gebied. Verbetering van het informatica onderwijs moet een oplossing bieden. Bij sollicitaties zal vaker gevraagd gaan worden naar de informatica vaardigheden van het toekomstig personeel.
JE EIGEN GAME
- Naam: _________________________
Inleveren bij je docent informatica
1) Als je de game niet individueel gemaakt hebt, met wie heb je dan de game gemaakt?
___________________________________________________________________________________________________ 2) Wat is het onderwerp van de game? ___________________________________________________________________________________________________ 3) Wat is je doelgroep? ___________________________________________________________________________________________________ 4) Op welke manier kom je zelf in de game voor?
___________________________________________________________________________________________________
___________________________________________________________________________________________________ 5) Geef een korte beschrijving van het scenario.
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________
___________________________________________________________________________________________________ 6) Het moet een serious game (educatief spel zijn). Wat leer je van je (of jullie) spel?
___________________________________________________________________________________________________
___________________________________________________________________________________________________ 7) Heb je de uitleg voor de game gemaakt onder de functietoets zoals afgesproken?
___________________________________________________________________________________________________ 8) Is de Game (ook) Nederlandstalig?
___________________________________________________________________________________________________ 9) Wat heb je ervan geleerd?
___________________________________________________________________________________________________
___________________________________________________________________________________________________ 10) Waarom is het leuk om de game te spelen en blijft het ook leuk? ___________________________________________________________________________________________________
Evil Clutches
- een oefengamepje voor 4-vwo -
naam: _______________________________
Hulpbronnen (resources) Sprites: spr_dragon is dragon.gif is de draad (bestaat uit 6 subafbeeldingen), achtergrond transparant; geen spaties in namen; spr-boss is boss.gif is de bendeleider; spr_demon voor de kwaadaardige demonen; spr_baby voor de babydraakjes; spr_fireball voor de vuurballen die de draak uitspuwt Objecten obj_dragon; aan een object wordt sprite toegekend; obj_boss; obj_demon; obj_baby; obj_fireball; Sounds snd_music (music.mp3 voor achtergrondgeluid); snd_demon (demon.wav); snd_baby (baby.wav); Backgrounds background.bmp Gebeurtenissen (events) en bijbehorende acties (methoden) Bendeleider (boss) object Create-event Move Fixed-actie Intersect Boundary-event Reverse vertical-actie Draak (dragon) object Keyboard-event Move Fixed-actie
Als een bendeleider gecreëerd wordt in het spel (een create-event) dan koppelen we meteen een beweging aan (move fixed actie); Om te voorkomen dat de bendeleider uit de room beweegt voegen we een een actie toe om de verticale bewegingsrichting om te keren bij rand room; Door een pijltoets in te drukken (keyboard event) laten we de draak een Bepaalde richting in bewegen (up of down); Zo ook events voor de -key en de No key>;
Rooms (levels) Creëer een speelveld
Vuurbal (fireball) object Create-event Move Fixed-actie Outside Room-event Destroy Instance-actie
Spelveld (level) maken van 640 x 480 pixels en geef dit level een naam; Voeg een instantie van het bendeleider-object en een instantie van het draak-object toe aan de room; Als een vuurbal gecreëerd wordt dan krijgt die een snelheid naar rechts; Een voorwerp dat uit het speelveld vliegt moet vernietigd worden, anders kan het spel heel erg log, groot en sloom worden;
Draak (dragon) object Key press-event <space> Create instance-actie
Als je op de spatie drukt moet de draak een vuurbal afvuren; Je gebruikt hiervoor een toetsaanslag-event (en niet een toetsenbord-event) Kies vuurbalobject, relatief (zodat de vuurbal bij de draak verschijnt), nog even de x en y coördinaat aanpassen om te zorgen dat de vuurbal uit de mond van de draak verschijnt (kies x 100 en y 10);
Demon object Create-event Move fixed-actie Intersect Boundary-event Reverse Vertical-actie Outside room-event Destroy Instance-actie Collision-event vuurbal Destroy Instance-actie Set score-actie Collision-event draak Show Highscore-actie Restart Game-actie
Demonen komen van de bendeleider af en bewegen van rechts naar links; Bij deze move fixed actie kiezen we alle drie de richtingen naar links; Als de demon de rand van de room raakt moet deze terugkaatsen; Als de demon uit de room vliegt moet deze vernietigd worden; Als de demon met de vuurbal botst dan moet de demon vernietigd worden; Als met de vuurbal een demon geraakt wordt dan moet bij de score 100 punten opgeteld worden (relatief); Als de demon met de draak botst dan moet de demon vernietigd worden en een overzicht van de score getoond worden, na het tonen van de score moet het spel opnieuw beginnen;
Bendeleider (boss) object Step-event (30 steps/s) Test chance-actie (sides 50) Create instance-actie demon Babydraak object
Demonen willekeurig laten verschijnen vanuit het bendeleider object (relatief);
Babydraakjes verschijnen aan de kant van de demon maar mag je niet raken (kost 300 pnt); Je laat de babydraakjes verschijnen via het bendeleider object (test chance sides 100);
Breng tot slot geluidseffecten en een background aan en test het spel. Compileer het geheel tot een zelfstandig werkende executable of converteer deze naar een html5 bestand voor op Internet.