Zelf games maken met… Scratch

Na een afwezigheid van ruim een jaar vanwege omstandigheden (scriptie, full-time baan, verhuizing) is het hoog tijd om deze serie weer op te pakken. Er zijn tenslotte nog genoeg toegankelijke tools te bespreken waarmee liefhebbers hun eigen games kunnen maken. Na Game Maker, Klokhuis Game Studio en The Game Factory is het de beurt aan Scratch: een sympathiek tooltje gemaakt door het MIT Media Lab.

scratch

Professor Mitchel Resnick vindt dat iedereen iets zou moeten weten van programmeren. Omdat het nuttig is, maar vooral ook leuk. Daarom heeft hij samen met zijn team op de beroemde Amerikaanse technische universiteit MIT een programma bedacht waarmee kinderen spelenderwijs leren omgaan met computercode: Scratch. Om games mee te maken, maar ook animaties of filmpjes zijn mogelijk.

De interface is het opvallendste aan Scratch. Normaal is programmeren een bezigheid met veel tekst en regels code, hier is alles opgebouwd uit visuele bouwsteentjes. Die bouwstenen zijn verdeeld in categorieën als beweging, uiterlijk, geluid en besturing. Die hebben allemaal hun eigen kleur, zo zijn blokjes in de categorie “bewegen” donkerblauw en de blokjes voor “besturing” zijn geel. Zo houd je ze makkelijk uit elkaar.

LEGO-steentjes

Deze blokjes zijn in feite allemaal stukjes code die je aan elkaar kunt klikken alsof het LEGO-steentjes zijn. Op die manier hoef je de precieze details van een programmeertaal niet te kennen, maar je leert wel de basis. Voorbeeld: je begint Scratch met een plaatje van een wandelende kat. Stel dat je de kat naar rechts wilt laten bewegen op het moment dat je op de rechter pijltjestoets drukt. Uit je virtuele blokkendoos haal je dan het blokje “Wanneer […] wordt ingedrukt”. Op de plek van de puntjes kun je kiezen uit verschillende mogelijkheden, in dit geval ‘pijltje naar rechts’. Je plakt daaronder vervolgens een blauw blokje met daarop het resultaat: “beweeg […] stappen naar rechts”, waar je bijvoorbeeld ’twee’ invult.

Wat je zo op speelse wijze hebt geprogrammeerd is dus: “Wanneer de speler de rechter pijltjestoets indrukt, beweegt het poppetje op het scherm twee stappen naar rechts.” Voila, je eerste stappen als programmeur!

scratch 2

Broodje hamburger

Vanaf dat moment wordt het een stukje moeilijker (maar ook leuker!) Met behulp van een blokje uit de categorie “uiterlijk” geef je aan hoe je sprite er tijdens het naar rechts lopen uit ziet. Via deze optie kun je animeren, of je sprite een andere kleur geven. Geluidseffecten toevoegen? Die klik je met een paars blokje vast aan de andere. Als je wilt dat een sequentie zichzelf herhaalt, dan doe je dat met een overkoepelend blokje dat alle tussenliggende blokjes als een broodje hamburger omsluit. De vergelijking met LEGO is niet toevallig, want professor Resnick stond aan de wieg van het programmeerbare LEGO-blokje.

scratch, hamburger
Smakelijk!

Het animeren kun je in Scratch zelf doen, maar je kunt ook je eigen sprites, plaatjes of foto’s toevoegen. Hetzelfde geldt voor het geluid. Je kunt audiobestanden importeren, of zelf geluiden maken door ze op te nemen en meteen in je spel te gooien.

Wide walls

De makers hebben de gebruiker veel vrijheid gegeven, maar niet té veel. Zoals ze zelf in een interessant paper aangeven, zijn gebruikers meer gebaat bij low floors en wide walls dan door high ceilings. Dat wil zeggen dat een laag instapniveau (low floors) en veel toepassingsmogelijkheden (wide walls) belangrijker zijn dan complexiteit (high ceiling). Het oorspronkelijke paper staat overigens niet meer live, probeer deze eens als alternatief.

Aangezien Scratch een open source-programma is, zijn er diverse modificaties beschikbaar die nog wat meer toepassingen toevoegen voor ervaren gebruikers. Daarvan is Build your own Blocks (hernoemd/doorontwikkeld naar Snap!) er één van. Deze uitbreiding geeft je de mogelijkheid zelf bouwsteentjes te maken.

Dansende nijlpaarden

Je kunt meer doen met Scratch dan alleen games maken. Het is een veelzijdig platform dat geschikt is voor het maken van korte verhaaltjes, animaties, videoclipjes en andere creatieve verzinsels. Veel tutorials op internet zijn gericht op het maken van een interactieve verjaardagskaart of een korte animatie met dansende nijlpaarden. Games gemaakt met Scratch blijven in de meeste gevallen aan de simpele kant. Toch kan een doorzetter mooie dingen maken: in Amerika wist onderzoekster Yasmin Kafai kinderen in achterstandswijken tot grootse dingen te inspireren. Het voorbeeld dat zij in één van haar papers geeft is dat van een 13-jarige jongen die een Metal Slug-achtige shooter wist te creëren.

Het is jammer dat je je projecten niet als losse executables kunt opslaan. Je kunt je werk natuurlijk wel gewoon opslaan als Scratch-project en ook uploaden naar de website van Scratch. Maar wil je graag de mooiste games maken en zelf verspreiden, kies dan een ander platform. In Scratch is het proces van spelenderwijs leren programmeren belangrijker dan het resultaat.

Omdat het bij uitstek geschikt is voor medialessen op school, zijn er veel resources voor leraren om te gebruiken. Die vind je op de officiële site, maar ook op ScratchEd. Verder heeft de Technische Universiteit van Delft een Scratch-pagina, die ze ooit hebben gebruikt bij een meeloopdag voor kinderen.

Conclusie

Mogelijkheden:
Het leren programmeren is een veelzijdig proces en biedt veel ruimte voor experimenteren. Maar met de eindresultaten kun je verder niet zoveel. 2/5

Gebruikersgemak:
Aan de hand van tutorials leer je de basis, daarna begin je het al gauw zelf te snappen. 4/5

Delen met de wereld:
Opslaan als losse projecten of uploaden naar Scratch-server. Geen executables. 2/5

Sympathie:
Kinderen spelenderwijs leren programmeren is een nobel streven, daarom 5/5

Anno 2022 download je hier de offline versie. De online variant vind je hier.