This weekend i made a schooling about game programming for 20 people of Bupp, Austria's state-run Game rating agency.
I found out that some computers were not able to boot from USB stick and some were not able to boot from DVD. And i completely messed up my remixing tool UCK after remastering the first version. Finally only one PC needed to boot using a prepared USB stick and i provided all participants with a live-DVD (Ubuntu 10.4 with pygame and some other tools installed) and a non-bootable USB stick with examples from ThePythonGamebook and other tutorials like the excellent A byte of Python from Swaroop HC.
It was the first major field test for ThePythonGameBook using an adult audience. After a 4-hour crash-course into python-programming (more than the half of the audience had no programming experience at all) the participants were able to create simple point-and-click adventures using the ingenious easygui module from Steve Ferg.
After the crash-course into Python programming i let the audience practically read ThePythonGameBook at their own pace and only helped out at demand.
The participants of the schooling formed 2-person teams and had the task to produce one playable game at the schoolings end. It was their choice to use only python (text), easygui, pygame or a combination of those.
Sadly i forgot to point out to only use creative-commons licensed graphics and sound, so participants of the schooling used good-looking pictures found at google from questionable origin. This inhibits me from using the created games on my homepage or in ThePythonGameBook. However i will re-program some of the game ideas using free graphics and sounds.
At the end of the schooling, all participants presented their own game and voted for the other games (the winning teams got small prices).
I was very curious how ThePythonGameBook would work as a learning book. Some flaws in the concept become apparent - like too late introduction of pygame sprites and too complicated sprite classes. I generally like the approach of using pygame surfaces first and introducing the more complex (classes, object-oriented programming) pygame sprites later. But now i think of adding a “the same example done with sprites” section to each surface-only example. Maybe even before introducing the sprite class at all.
My newest addition to ThePythonGameBook, an example game of penguins shooting homing rockets at each other was not mature enough to be used meaningful in the schooling. However one team had a very creative idea of combining a classic pong game with a pinball mechanic.. i will try to make this concept into a working example game.
Another insight i got from the schooling was that i need to write my pygame examples as generic functions (like for displaying text or playing sound) so that users with minimal python knowledge can use them from other programs without caring about pygame's complexity. This worked to same level, a team wrote a game using easygui and the Flytext function of ThePythonGameBook to display “Game Over” or status messages.
It was a very nice and productive weekend. Most laughs got a “South-park” inspired game were poor Kenny has to avoid (at first) one bouncing ball or he explode, with the number of balls increasing insanely.
Other teams concentrated on modding existing examples of ThePythonGameBook - it is incredible how much far better the “same” game looks after some work with graphics and sound effects.
Result: Thanks to the participants of the schooling, i'm full of cool fresh ideas for ThePythonGameBook and highly motivated to write more. Thanks, guys !