Paperchase
A complete novice's first entry...
Awards
Scores
Ratings (show detail)
Overall: 2.9
Fun: 2.8
Production: 3.3
Innovation: 2.7
Files
File | Uploader | Date |
---|---|---|
paperchase_screenie.png
A screenshot of the final game. |
ntoll | 2018/04/22 08:06 |
paper_chase.zip
— final
Paperchase entry... better to get from GitHub. ;-) |
ntoll | 2018/04/20 20:04 |
Diary Entries
And we're off...
Hmm... "Two Worlds" wasn't top of my list of great themes, but we are where we are.
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.
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
Over lunch I chatted with my kids about the theme of "two worlds" and, while we didn't come up with specifics for the game, they came up with some really interesting ideas which I think I'd like to use:
- 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
After more chats with my kids, we've come up with a game concept and a plot...
"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.
"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'm quite pleased:
- 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
I had to spend today doing other things... in any case, I've managed to clean up some of the game assets so it looks "neater".
That is all.
Up and at 'em tomorrow. :-)
That is all.
Up and at 'em tomorrow. :-)
Finally found some time to work...
After a two day hiatus due to other pressing tasks I've managed to spend a couple of hours on the player character's moves and associated animations. My god, if I knew how much time I would be spending drawing stick men in the GIMP I'd have gone for a different approach. In any case, it's all looking rather satisfactory and I need to add some power-ups (for the player to collect) and some "real world" objects for the player to avoid in the "paper world".
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....
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
I've spent a couple of hours this evening adding the objects from the "real world" that our "paper world" based friend should try to avoid. It looks a bit naff at the moment because I only have three types of object (a pound coin, paper clip and coffee cup) and they appear at random, rather than in some way that aids game play / progression. I've also added the collision detection needed to check if stick figure has hit any real world objects (although this fires, it doesn't actually do anything yet because I've not drawn the death animation).
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...
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...
All Change...
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)
Spent some hours this evening rewriting the code to make it a two player side scrolling racing game, added a whole bunch of game objects for the players to avoid (at risk of slowing them down) and updated the colours of the original stick-figure animations.
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:
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.