Hacker News new | ask | show | jobs
by aoloe 2329 days ago
in my experience, pygame zero works well with 10 - 14 year kids.

i run a coderdojo and we have developed a system of cards that helps the kids creating a pong game with pygame zero.

in two hours of our weekly meeting, they manage to

- install the mu editor,

- create the game window

- download an image from the internet,

- put it in their game

- move the image around with the arrow keys

mostly by themselves.

loading the image is indeed one of the big issues they often face. but i'm convinced that it will often be an issue anyway: kids need some mentoring there.

(really, you cannot rely on the fact that they will be typing the file name correctly or that they will put the image in a specific directory, with the right extension).

this having been said, writing a full pong is much harder as in scratch. they do need some real mentoring for the further steps.

concerning your suggestion with yeso: for our setup, providing an image through the command line is probably not an improvement.

most of our kids are using windows or mac and we avoid forcing them to use the terminal during their first steps of "creating a game with real programming".

managing files is hard...

1 comments

Thank you for sharing your experience!

What are the cards you mention?

Are you saying that writing a full Pong in Pygame Zero is much harder than in Scratch? I'm not sure what you mean by "harder as in scratch".

I was pretty impressed with the Pong game in 5'30" in https://www.youtube.com/watch?v=KoWqdEACyLI when I first watched it, but I suspect it might be pretty intimidating for a total newcomer.

And, yeah, I wasn't suggesting that you should pass filenames on the command line to simplify debugging. It's just that that program is an image viewer, not a game, so taking the filename on the command line is what it does. If you hardcode the filename and rely on CPython's prompt finalization, you can reduce the program to four lines, which is less even than PyGame:

    #!/usr/bin/python
    from yeso import *
    w = Window('hello, world', (406, 220))
    w.frame().copy(read_png('admu_shell.png'))
    while True: w.wait()
That does have a loop in it, though.
- our cards are here: https://github.com/CoderDojoZH/resources/tree/master/cards-p...

- harder as in scratch? it's about this scratch and this game: https://scratch.mit.edu/studios/644508/

- a pong in 5'30"... of course, but his real tutorial is 3 hours : - ) ... and that pong game does much more than what our kids can achieve...

- our kids debugging skills are often very limited (both in skills and patience)... correctly matching the filename and the actor is a good example for learning the debugging but it's often already too much: they just want to see it work!)