beanz Magazine

PyWeek Game Jam Report

Coffee Channel on Flickr

Seven days to design, code, and debug a program with PyGame. What could go wrong?

So in August, as I was looking into game development engines that would be good for teaching programming, I remembered the existence of PyGame: Python’s oldest and most mature library for writing games.

After looking into PyGame for the first time in years, I discovered that not only was it still well-maintained and active but that a game making competition, a game jam, was coming up soon: the 24th PyWeek.

I thought to myself, “Hey, this is perfect! This’ll make me learn PyGame and actually finish a game for the first time in seven years. ”

A very long time ago I actually wanted to be an indie game developer. I became a researcher and teacher instead, but there’s always been a part of me that missed working on games. Maybe, just maybe, this would get me back into the swing of things. And, you see, back-in-the-day, I cut my teeth on a library called Simple DirectMedia Layer (SDL), which is what PyGame is based on!
One thing to know is that PyGame isn’t like Unity or Godot or GameMaker – there’s no integrated development environment, tools for animation, or built in physics. That definitely makes some things a lot more complicated!

On the other hand, if you’re like me and are someone who likes knowing how everything ticks then I think something like SDL or PyGame is actually a really satisfying experience that means you learn a lot about game engines.

October 14th arrived and the PyWeek theme is announced: “They’re Behind Everything!”. I had until evening on October 21st to write a game based on that concept and turn it in. I decided to sleep on it and start designing on Sunday morning.

Sunday rolled around, so I did what I always do: start writing.

I planned out a design for a small game that’s really stripped down to very basic mechanics. A weird little story about endlessly reborn universes, created by beings searching for immortality. Little did I realize that even the few pages of design document I wrote would still be too ambitious for the time available. A week seems like a long time, but when you have school or a job the time slips away pretty fast.

I took my own medicine and did the thing I always advise students working on projects to do: start each day by writing out what you hope to get done by the end of the day. Doing that probably helped me get as much done as I could in my free time in the mornings and evenings!

I had also decided to try making my own art & music. I started right away with the music, using BeepBox to make small tracks. BeepBox is an awesome little site that lets you make chiptunes-like songs.

Here’s an example of a small background music piece I wrote: http://bit.ly/2y70lLa. Simple for sure, but good enough as incidental music.

And here’s a boss fight song that was meant to be messy and dissonant.
http://bit.ly/2ySkZ0U

I hadn’t actually tried writing songs since I was a kid, but BeepBox made it really easy to start experimenting and figure out what sounded right.

On the coding front, I worked on making a small game engine that would resemble really old role playing games from the NES era: lots of menus with small turn-based battles.

I started by figuring out how to make all the pieces work, like menu systems, dialogue boxes, and combat.

Unfortunately, I didn’t get very far! By Friday night I was still getting game engine basics in place and I’d run out of time to do my own art!

So instead, I took Friday night and Saturday before the deadline to put something together. I ended up cutting out a lot more than I put in: maze-like areas, complicated storytelling based on the order bosses were fought, a variety of moves in combat.

I did end up making something with a beginning, middle, and end: https://pyweek.org/e/SoSorry/.

My first temptation was to feel disappointed with my progress, but I realized something: this wasn’t like the Olympics, it was like NaNoWriMo! The entire point is to get yourself working on something that you might not have done otherwise, to force you to stop sitting on game ideas like I was and actually try making them.

Did I make the game I wanted? Not really! Did I learn a ton and start building the foundation of a game I really want to finish? Definitely!

By the time you’re reading this, there’s another PyWeek just around the corner! If you have any interest in Python or games writing, I absolutely recommend entering the competition and seeing what you can make!

Learn More

BeepBox

www.beepbox.co

PyGame

www.pygame.org

An online book that teaches programming with PyGame

http://programarcadegames.com/index.php

The main PyWeek site

http://pyweek.org

Also In The February 2018 Issue

In an era before telephones, a clever code was created to send messages by telegraph.

A simple coding activity that creates a virtual tic-tac-toe board with pieces.

Seven days to design, code, and debug a program with PyGame. What could go wrong?

Play with your friends or connect to Minecraft servers all around the world.

Turning scientific data into music can lead to new insights and new solutions.

Tools to help you design and print your own jewelry. Who says geeks can’t be fashionable?

Say hello to your new favorite robot: spherical, programmable, and durable. It can even swim!

The perfect language to help you transition into a new way of coding.

Create a new and improved variation of the classic 1960s board game with micro:bit.

Learn about the origin of Unix time, the calendar system used by digital devices.

Could a human brain be simulated by a computer? Would it think and feel like we do?

Links from the bottom of all the February 2018 articles, collected in one place for you to print, share, or bookmark.

Interesting stories about computer science, software programming, and technology for February 2018.