Häromdagen stötte jag på ett riktigt trevligt projekt som jag känner att jag måste tipsa om: Pygame Zero. Det är ett litet ramverk som bygger på Pygame, ett spelbibliotek som används för att skapa spel i Python, och som främst är tänkt att användas för undervisning. Som upphovsmannen Daniel Pope själv beskriver det: Pygame Zero gör det möjligt för lärare att lära ut programmeringskoncept utan att först behöva förklara saker som spelloopar och händelseköer. De här sakerna, och mycket annat, är dolda för den som använder ramverket.

Jag har lekt lite grann med Pygame Zero och kan konstatera att det på många sätt liknar Gosu, det ramverk för spelprogrammering i Ruby som jag har tjatat om i många tidigare inlägg här på bloggen. Men Pygame Zero tar det här med att abstrahera bort ”krångliga” saker ytterligare några steg längre. Till exempel: För att öppna ett grafikfönster så behöver du inte skriva en enda klass. Faktum är att du inte behöver skriva någon kod alls. Du kan bara skapa en tom fil, döpa den till t ex ”game.py” och köra den med ett speciellt program som ingår i ramverket. Ett fönster med en rityta på 800 gånger 600 pixlar framträder på skärmen.

Skärmbild_2015-08-05_18-33-43

Är det här bra eller dåligt, att så pass mycket sker i bakgrunden utan att användaren kommer i kontakt med koden? Det är en fråga som man kan vrida och vända på länge. Den som på allvar vill lära sig att programmera i Python måste förstås, förr eller senare, även greppa saker som import av moduler och iteration över listor. Men det kanske inte är det allra första man behöver lära sig. Jag är inte pedagog, men jag tror att det är viktigt att programmeringen snabbt ger roliga resultat för att inte motivationen hos eleven ska tryta. Och en rymdvarelse som svävar i ett grafikfönster är definitivt roligare än en while-loop. Har du en åsikt i frågan, eller andra synpunkter, hör gärna av dig i kommentarsfältet nedan.

För att kunna använda Pygame Zero måste du först installera Python 3 och Pygame. Installationsanvisningar hittar du här. Jag har utan större problem installerat ramverket på tre olika datorer: En med Xubuntu 15.04, en med Windows 8.1 och en Raspberry Pi med Raspbian. I skrivande stund har gänget bakom Pygame Zero precis släppt en ny version, som förutom buggfixar och nya funktioner innehåller ett knippe exempelspel i form av implementationer av klassiska spel som Snake, Pong och Lunar Lander.

Själv tänker jag försöka skriva om en liten Space Invaders-klon som jag en gång kodade i Ruby till Python och använda Pygame Zero. Min förhoppning är att detta projekt så småningom ska mynna ut i en liten tutorial. Den som lever får se.

/Mats