Lactodorum Britannia is dead
Presented by Unicorn Markets
The "pro*runnner" award
Presented by IvanTHoffmann
Presented by knockupwood
Ratings (show detail)
A screenshot of the final game.
Paperchase entry... better to get from GitHub. ;-)
And we're off...
Today will be spent thinking up ideas for the game in terms of what it's about, how it's played and its aims and objectives (from the players perspective).
I already have some ideas about how I want to write the game and what its "technical" and "educational" aims are:
* I'm using Dan Pope's amazing PyGame Zero and writing the code using the Mu editor.
* I aim to create a game that is simple enough that it could be used as a "template" or launch pad for teachers and beginner programmers who want to write their own games.
* The game is likely to be a single file.
* The game assets will be generated in as simple a manner as possible (i.e. something kids could easily copy).
* Post-PyWeek I'm going to write this all up into an educational resource.
But first, I need to settle on an idea for the game itself. Happiily, I'm the parent of three kids (16, 13, 10) and I'll be picking their brains over lunch about the theme of "two worlds" and some sort of name for the game. Once I have this, I'll point to a GitHub repository so people can follow how I'm getting on.
Finally, I'm really looking forward to the community aspects of this exercise: watching other games emerge, interacting with the other teams, and the ability to give awards. I think this week is going to be a LOT of fun.
A Game Concept from my Kids
- There is only one world in the game, and you play the same game world but as two (very) different character's. As a result, there are, in fact, two worlds -- one for each of the points of view of the two characters.
- My kids suggested the game is set in school (NPCs being boring teachers, the school bully etc...)
- My kids suggested the two characters play the same (zero sum) game against the other sort of character. I think they mean a sort of "jocks vs nerds" type situation (but I'm not sure they even know what they mean).
- They like side scrollers "just like Mario, can't you just rip that off Dad?" ;-)
- Suggested game title from my youngest, "Ready Players 2"
Not sure how much of the above will get into the game, but I now have a game "trope" to work with (side scroller) so I know what sort of game mechanics I'll be writing -- I can flesh out the story and motivations as the week goes on.
Aha... Paperchase is born
"Paperchase" features a stick figure drawn on a piece of paper who comes to life and attempts to run away and escape. Unfortunately objects from the real world block the stick figure's bid for freedom in the paper world (hence the two worlds). Basically, it's a side scrolling chase/avoidance game. Your score is basically how far you get before you hit something. The further you get the more real objects start to block your escape in the paper world and the faster they appear / move.
The source code is on GitHub and I spent this afternoon starting from the PyGame Zero "move the alien" tutorial to creating an animated running stick figure. How did I animate the figure? Glad you asked, I took a pen and paper, photographed the images and tidied them up in GIMP. ;-)
Remember everything I'm trying to do should be possible for a bunch of kids / teacher in a classroom situation. In any case, here's a GIF of the output so far.
It's a Wrap for Day #1
- I know what the game is called.
- I know what the game involves (and how it relates to the "two worlds" theme).
- It's been tried on (my) kids.
- Mu + PyGame Zero work really well (which makes me very happy).
- I've found and squashed a couple of bugs in Mu (yay!).
- I've the start of a game which (despite my shonky drawing) sort of works.
Tomorrow I need to:
- Make the stick figure controllable (jump, duck, fly-up, fly-down).
- Add "real world" objects to avoid.
- Collision detection.
In the meantime... here's what I have (this is about 5 hours work, most of which was spent in the GIMP). ;-)
An "off" day but asset updates
That is all.
Up and at 'em tomorrow. :-)
Finally found some time to work...
Finally, PyGame Zero and Mu continue to make me smile due to how easy things are to do in code.
Here's an animation of the player character... it's all looking very XKCD (https://www.xkcd.com/353/) --- which I may play on....
Basic game mechanics in place
Things I've noticed:
* Writing code is easy. Manipulating / creating / finding game assets is hard (in a time consuming sort of a way).
* PyGame Zero rocks. I especially like how you catch a glimpse of the underlying PyGame framework and it's not a problem to dig down into that layer if need be.
* Just having a side scrolling "thing" isn't enough... I need to tell a story and demonstrate a sense of progress with an end goal. That's tomorrow's task.
* The game itself is still only 121 lines of code (and I want to keep it under 200, thus making it manageable for teachers and learners to grok).
My kids have agreed to help me record sound effects... a "hi-ya" for the karate kick etc... which should be hilarious to do. On a positive note, they're very interested to see how the game is progressing which bodes well for student interest if I shape this up into an educational resource. They're full of suggestions (like the karate kick) and are starting to see how relatively easy it would be to change things around.
Onwards and upwards tomorrow...
So I've created my game and it's REALLY BORING and just a little bit naff. :-)
However, I have a plan.
It'll still be a stick-figure game called "Paper Chase", but I'm completely re-jigging the "story". It'll be two player: Red vs Blue (the two worlds of different coloured biros).
WATCH THIS SPACE!!!
Red vs Blue (Battle of the two "biro" Worlds)
PyGame Zero and Mu have been really great in this respect and I've managed to quickly turn things around in terms of code. The "design" work for the graphical game assets was a right royal pain and I'm getting to really dislike the GIMP (but my only other option in terms of art packages that I know, is MS Paint). ;-)
The end result is a completely different game, but it sort of looks very similar. In any case, there's an aim to win (get X distance in front of the other player) and the game gets progressively harder (more objects appear and they speed up). I need to tweak some of the settings and game-play but I think I'm almost there...!
Tomorrow I need to:
* Add an intro (instructions) and outro (when a player wins).
* Add some textual information to the screen (distance between players, power-up information).
* Add sounds / music.
* Package the thing so I have something to upload for people to look at.
* Add a bunch of polish / tweaks as a result of "play" testing.
* Saturday is completely out for me, so I need to be "finished" finished by the end of tomorrow.
I also have a whole bunch of feedback for Dan about PyGame Zero.
In any case, here's what it looks like right now:
Finished (and tested on my 13yo son)
I decided to spend all of today (Friday) on finishing, polishing and testing my game since I wont have any time tomorrow.
As a result I've managed to get quite a lot done... intro and outro screens, music, tweaks to the game mechanics, power-ups for anti-gravity, various bug fixes and the all important two-worlds-related "back story":
The intergalactic war between the red and blue factions of the biro universe has reached its climax. Each world has sent a stick-figure champion to race in the "Paper chase" for ultimate victory and to decide which colour biro pen teachers should use when marking work. (Get 200 steps ahead to win, collect up to 3 Python power-ups to import antigravity and avoid all other obstacles.)
To be honest, it all feels a bit "hacky", but I'll refactor and clean up the code once PyWeek is over before I turn it into a learning resource.
When my son got home from school I tried a bit of game testing with him (see video linked below). I'll package, test on Windows, OSX and Linux and upload later this evening.
Game testing with a teenager.