O2. Game
Je gaat je eigen game programmeren!
Opdrachtbeschrijving
De opdracht in het kort is: Maak in groepjes van twee je eigen spel in JavaScript. Je gebruikt de startcode en maakt gebruik van de p5js-library.
Je schrijft je in op GitHub Classroom via de onderstaande link (login met je github account).
Letop 1: Zorg dat je gebruikersnaam in GitHub begint met je voornaam, gevolgd door je leerlingnummer om hem uniek te maken. Je kunt je gebruikersnaam aanpassen in
GitHub -> klik op je foto rechtsboven -> Settings -> Account
.
Letop 2: De teamnaam die je kiest bevat de gebruikersnamen van alle leerlingen in je team, bijvoorbeeld jolanda123111-klaas123987
Nadat je jezelf helemaal ingeschreven hebt, krijg je automatisch toegang tot een repository met startcode. Er is één repository per team. Elk teamlid heeft lees- en schrijfrechten in de repository.
Je bent vrij om zelf te kiezen welke game je gaat maken. Je docent moet de game die je kiest goedkeuren. Enkele voorbeelden van een game die je kunt maken zijn: Tennis, Flappy Bird, Snake (voorganger van Slither.io), een Break Out Game (zoals Arkanoid), een race spelletje, een eenvoudige platform game (zoals pacman), een puzzelspel enzovoort.
- Je maakt deze opdracht in een team van twee personen. De docent geeft aan hoe de teams gemaakt worden. Je bepaalt zelf hoe je het werk binnen je team verdeelt, zolang iedereen een gelijkwaardige bijdrage levert. Je krijgt één cijfer per team, maar de docent kan hiervan afwijken als teamleden geen gelijkwaardige bijdrage hebben geleverd.
- Je krijgt van de docent startcode voor deze opdracht. Deze staat klaar in een repo op GitHub. Er is één repo per team.
- Je maakt code in Gitpod. Elk teamlid heeft zijn eigen Gitpod omgeving.
- Elke week (liefst vaker) slaan alle teamleden hun tussentijdse werk op in de repo op GitHub. Zo zorgen jullie ervoor dat de laatste werkende versie van jullie opdracht steeds op GitHub staat.
- Deze opdracht maak je alsof het een echt project is. Je maakt eerst een planning. Daarna kijk je wekelijks of je nog volgens plan loopt. Als je niet volgens plan loopt, dan stuur je bij. In de les word je hiermee geholpen, maar uiteindelijk moet jij zorgen dat je op tijd klaar bent en een goed resultaat oplevert.
Het cijfer dat je voor je PO krijgt wordt vanuit verschillende invalshoeken bepaald:
Minimale eisen
Voordat je een cijfer krijgt voor je PO, wordt gekeken of je werk voldoet aan de minimale eisen. Werk dat niet voldoet aan de minimale eisen krijgt het cijfer 1,0. De minimale eisen zijn:
- De inhoud is moreel verantwoord: het is niet beledigend, visueel gewelddadig of op andere manieren onfatsoenlijk.
- Natuurlijk mag je overleggen met klasgenoten en mag je op internet kijken hoe je bepaalde dingen kunt maken. Let wel op dat je geen plagiaat pleegt. Je mag maximaal 5 regels code overnemen van andere leerlingen of internet en je schrijft in het commentaar erbij waar je het voorbeeld vandaan hebt. Dat geldt ook voor code die je zelf vertaalt naar het Nederlands. Overtypen van code uit een Youtube-video of een tutorial van internet volgen en dat resultaat inleveren is niet toegestaan.
- Je gebruikt de startcode die je krijgt.
- Je gebruikt het stappenplan dat bij deze opdracht gegeven is.
- Een download in zip-formaat van je opdracht mag maximaal 50 MB groot zijn.
Werking en aantrekkelijkheid
- Spel start op
- Het spel werkt (hoe klein ook)
- Behaalde punten zijn zichtbaar bij game-over
- Het doel en de bediening van het spel is duidelijk
- Aantrekkelijk uiterlijk
- Prettige bediening
- Eenvoudig om mee te beginnen en moeilijker als je verder komt
- Afwisselend
Techniek
- De code volgt de lijn van het template
- De code is netjes en duidelijk leesbaar
- De code bevat geen dubbele stukken code
- Je hebt de technieken gebruikt die in de programmeerlessen zijn aangeboden.
- Je hebt dingen toegevoegd waarvan je zelf hebt uitgezocht hoe ze werken
Inzet, planning en samenwerking
- Je toont inzet tijdens de lessen
- De planning is vooraf gemaakt, gevolgd en als nodig bijgesteld.
- De taakverdeling is duidelijk en alle teamleden dragen in gelijke mate bij.
- Het werk is verdeeld over de weken waarin aan de opdracht kon worden gewerkt, dit blijkt onder andere uit de commits in Github.
- De deadline voor inleveren vind je in de lesplanner.
- Je kunt vragen stellen tot de laatste les voor de deadline.
- Je zorgt dat alle bestanden in die nodig zijn om je spel te spelen in GitHub staan, dit zijn ten minste: index.html, style.css en script.js. Als je plaatjes gebruikt, dan staan die er ook bij.
- Uit de versie historie in GitHub blijkt wanneer je wat gedaan hebt.
- De laatste versie van je PO die op het moment van de deadline in GitHub staat, wordt gebruikt voor de beoordeling.
Hulpmiddelen
We gebruiken in deze opdracht de volgende tools:
Startcode
Je krijgt van de docent een kopie van onderstaande startcode.
Stappenplan
Werk de planning af van boven naar beneden. Vul de planning aan en stel bij terwijl je aan de opdracht werkt.
- maak index.html, style.css en script.js met canvas
- teken speler
- Zet je code in de functie tekenAlles()
- beweeg speler
- Zet je code in de functie beweegAlles()
- Kies de afmeting van speler
- Gebruik variabalen spelerX en spelerY als middelpunt van de speler
- teken je tegenspeler (vijanden of dingen die je moet pakken of doelen of …)
- beweeg je tegenspeler
- detecteer botsing
- zorg dat je af kunt gaan
- zorg dat je punten kunt halen
- een simpele manier om punten te geven is de tijd meten hoe lang je het volhoudt
- zet punten op het scherm
- maak uitlegscherm en game-overscherm
- zelf uitwerken…
- zelf uitwerken…
- zelf uitwerken…
- zelf uitwerken…
- zelf uitwerken…
- zelf uitwerken…
- Gebruik plaatjes voor de vijanden
- Animeer speler
- Laat badges vallen die extra’s aan speler geven
- Maak spel steeds moeilijker door toenemend aantal vijanden met tekenVijand
- Maak andere vijanden bij toenemen tekenVijand
- Laat vijanden bewegen in patronen
- Maak bediening met touch of bewegen van telefoon mogelijk (zorg dat toetsenbordbediening ook blijft werken)
- of bedenk zelf iets…