O2. Game
Je gaat je eigen game programmeren!
Hulpmiddelen
We gebruiken in deze opdracht de volgende tools:
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. Om jezelf hierop voor te bereiden doe je eerst deel 1 van de opdracht.
Je schrijft je in via GitHub Classroom via de onderstaande link (login met je github account).
Letop: De teamnaam die je kiest bevat de namen van alle leerlingen in je team, bijvoorbeeld jolanda-klaas
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.
In dit eerste deel van het PO leren jullie samenwerken aan code en ontwerpen jullie jullie eigen game.
Programmeurs werken bijna nooit alleen. In echte softwareprojecten werken meerdere programmeurs tegelijk aan dezelfde code. Daarom gebruiken we een systeem zoals Git om veranderingen bij te houden en samen te werken.
Deel 1 bestaat uit twee onderdelen.
Git-oefening Eerst maken jullie een korte oefening waarin jullie leren samenwerken met Git. Jullie werken per twee leerlingen in dezelfde repository maar ieder op een eigen computer.
Deze oefening is belangrijk, omdat jullie Git ook gebruiken tijdens het maken van jullie game, en dat in team werken aan dezelde code soms problemen kan opleveren.
Na de Git-oefening beginnen jullie met het ontwerpen van jullie eigen game.
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.
Jullie bepalen samen:
- of het spel singleplayer of multiplayer (2 spelers) wordt
- wat het doel van het spel is
- wanneer je verliest of het spel eindigt
- hoe spelers punten kunnen halen
- hoe het spel moeilijker wordt
- hoe de bediening werkt
Aan het einde van deel 1 hebben jullie:
- de Git-oefening afgerond
- een duidelijk ontwerp voor jullie game gemaakt
- 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 van de docent startcode voor deze opdracht. Deze staat klaar in een repo op GitHub. Er is één repo per team.
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.
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
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
Proces
- Je toont inzet tijdens de lessen
- 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.
Extra bepalingen voor je cijfer
- Je krijgt één cijfer per team, maar de docent kan daarvan afwijken.
- Als de teamleden geen gelijkwaardige bijdrage hebben geleverd, dan kun je een individueel cijfer krijgen.
Tip: Zorg dat je een gelijkwaardige bijdrage levert binnen het team. - Als het ingeleverde werk van een hoger niveau is dan wat je begrijpt, dan kan de docent extra vragen stellen over je opdracht en op basis daarvan je cijfer bijstellen.
Tip: Zorg dat jij en je teamleden je eigen en elkaars werk begrijpen. - Fraude wordt gemeld aan de examencommissie, daarna bepaalt de examencommissie wat er met je cijfer gebeurt.
Tip: Vermeld altijd de bronnen die je gebruikt hebt en zorg dat duidelijk is welk stuk van je werk op welke bron is gebaseerd. Van Youtube video’s of AI-chats kun je de linken bijvoegen.
Gebruik van AI bij het maken van je game: Je mag AI gebruiken om je te helpen bij het maken van je praktische opdracht, maar er gelden belangrijke voorwaarden:
- Je moet alle code die je gebruikt kunnen uitleggen. Tijdens de beoordeling kan ik vragen stellen over jouw bestanden. Kun je het niet uitleggen, dan beschouw ik het als niet-eigen werk en krijg je een 1. Er is geen herkansing voor dit PO.
- Je moet kleine aanpassingen in de code snel zelf kunnen uitvoeren. AI mag je ondersteunen, maar jij moet begrijpen wat er gebeurt. Dit wordt getest doormiddel van het vragen om een kleine aanpassing door te voeren.
- Gebruik vooral de template die je al gekregen hebt. Laat AI deze template niet volledig aanpassen. Als je de structuur te veel verandert, kan de docent je later niet goed helpen.
- Neem slechts kleine stukjes code over. Vraag AI bijvoorbeeld om uitleg, een stukje CSS of een oplossing voor één specifiek probleem. Als je grote blokken code overneemt, is de kans groot dat je het niet begrijpt en dat merk ik direct tijdens de beoordeling.
Kort samengevat: AI is een hulpmiddel, geen vervanging van jouw eigen inzicht. Gebruik het slim, neem kleine stukken over en zorg dat je altijd weet wat je code doet. Succes!
- 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.
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 een team aan voor de assignment “Git Oefening” Let op: de teamnaam bevat beide namen. Volg de stappen op het werkblad.
Volg de stappen op het werkblad.
- Teken de speler
- Zorg dat de speler kan bewegen
- Teken vijanden / obstakels / doelen
- Laat vijanden / obstakels bewegen
- Detecteer botsingen
- Zorg dat je kunt verliezen
- Zorg dat je punten kunt halen
- Toon de score op het scherm
- Maak een startscherm en een game-over scherm
Voeg nieuwe spelmechanieken toe:
- bijvoorbeeld springen, schieten of verzamelen
- maak het spel moeilijker
- meer vijanden
- snellere vijanden
- verbeter de besturing
- voeg nieuwe regels toe
- gebruik afbeeldingen voor speler of vijanden
- animeer speler of vijanden
- voeg geluid toe
- maak meerdere levels
- voeg power-ups toe
- maak een highscore systeem
- maak verschillende soorten vijanden
- of bedenk zelf een uitbreiding
