Tagged: Open Source

15 Minutes in the Shoes of a Game Programmer

For a workshop at the YOU, a youth culture fair, I was asked to make a concept for a short game programming workshop.

The requirements were:

  • The workshop should give an impression of the work of a game programmer.
  • It should take about 15 minutes and allow groups of varying size.
  • I should assume that the participants have no experience in programming at all.
  • Instructions should be kept to a minimum; the focus should be on hands-on experience.
  • The workshop should produce a quantifiable result.
  • It should be an enjoyable experience.

No easy task. Luckily, inspiration struck, and a few days later I finished the game StarCoder.

StarCoder

Move the player to the star by using
Left/Right and Space to jump.

An easy game if it weren’t for the spikes -
or if you could jump far enough, for that matter.
Luckily you can edit the source code.

There are 15 distinct solutions to win the game.
How many will you find?

Download for Windows

Source Code (License: CC BY SA)
Creative Commons License

The Workshop

The workshop went extremely well. Everybody found at least 4 solutions, with some finding up to 10. The game also seems to be surprisingly fun, even (or especially?) for non-programmers! Results were often accompanied by laughter and some of the participants even asked for the program so they could try it again at home. And I remember a teacher who sat down to try it himself after I finished the workshop with his group of pupils.

If you use it yourself (which I’m totally fine with – I’d love if you drop me a message that you are using it!), this was my approach:

  • Tell your attendees that the goal of the game is to get to the star. Ask them to click in the left part and try it themselves: Arrows keys to run, Space to jump.
  • After half a minute admit that it seems rather impossible – but luckily there’s the source code on the right side which they may edit. Ask them to notify you once they have the first solution.
  • Once they have the first solution, congratulate them for their achievement. Then ask them to click on “Reset” in the lower right corner and tell them that there are 14 more solutions.
  • After a few minutes (or a few solutions, depending on their speed), tell them that there’s also the “Creation” tab in the upper corner.

The ideal number of attendees seems to be 1 to 3 per computer. You might want them to write down their solutions if you want to assign a score to each group later.

So… how about you? Did you find the every single one of the 15 solutions? Try it yourself first – and then check it with this handy walk-through. (No cheating though!)

And if you’re interested how hard solutions are and which are found the most and least easily, you can check out these statistics (contains spoilers!).

Credits

  • Concept, Programming and “Art”: Tobias Wehrum
  • Sounds: Moritz Ufer

Thanks to my playtesters: Moritz, Tobias, Kelvin, Sebastian, Simon, Christiaan, Lukas, Florian, Marina, Jana, Jens, Paul, Ronja and Nadine. You guys have been a huge help!

Made in cooperation with:

It sucks to be cursed. It sucks even more when you’re standing paralyzed in your own wizard tower while your arch-enemy sends hordes of hungry ghosts to gobble up your mana. Luckily your telekinetic powers are still working fine, and now you are defending yourself by redirecting energy beams from your hands with mirrors and whatever else is at hand.

Wizard Defense

You’re paralyzed. Enemies are closing in.

Redirect the energy beams with mirrors to hit the ghosts and
change their colors at the right time to exploit each ghost’s weakness!

A cooperative augmented reality game for two friends and a webcam.

Play it in the web player!
(Download and print the markers!)

Download it for Windows/Mac/Linux!

The source code is available further down in this post.

You can quit the game by pressing Escape while the menu console is showing.

Solo Play?

If you play alone, you might have some problems – it’s made for two players. If you still want to play alone, here are some cheats you can press after the first ghosts spawned so you can at least experience the gameplay: F10 triples the power of your energy beam, and F11 makes you invincible.

Open Source

This was one of my three big projects this semester, this one for the Augmented Reality course. It’s built in Unity 4, with NyARToolkit to recognize the markers. The japanese documentation makes NyARToolkit a little bit hard to read, but good examples and method names go a long way and we had a lot of fun using it.

You can download the source code and Unity 4 project here. The source code is released under the terms of the GPL v3. The assets (meshes, textures etc) are not released under any particular license. Unless mentioned otherwise on their respective source websites stated in the credits, you are not allowed to use them. If you’d like to use them anyway, feel free to contact me. (Disclaimer: The project was for a university course. Due to time constraints and that not being a requirement, the code is not well documented nor does the documentation fit the C# standards.)

Credits

Screenshots

Finally, have a few screenshots:

Take Hammerfight. Add Pong. Mix and stir. Sprinkle with a little realism and Tron.

Recipe serves 2.

Hammertennis

You are playing Tennis. Well, you’re trying to play Tennis.
You’ve lost your tennis rackets, so you take hammers instead.
Also you’ve forgotten most of the rules.

Hammertennis: A fast-paced ball game for 2 players.
Supports Keyboard – or Gamepads! (You only need one stick. Choose any.)

Download the Windows executable

You get 2 points for scoring a goal, and 1 point if the opponent hits his own goal.

Normally only the hammers can hit the ball – but if the ball is red, the blue player can hit it once, and vice versa.

This is the first game I ever started with Python, featuring Pygame and pybox2d. Lovely language! It is also the first game that I ever made that uses any serious form of physics.

Both are thanks to Florian Berger, who is teaching the university course that got me started on making a Python game featuring any form of physics in the first place. Thanks a lot, it was great fun and (obviously, see above) had great results!

You can also download the source code (New BSD License) if you like! It needs Python 2.7, pygame 1.9.1 and pybox2d 2.1.

Credits:

Finally, Dragonflute is finished! In this game, made for the Experimental Gameplay Project “ZERO BUTTONS” theme, you control this cute little fellow:
(<– Click the dragon to download the Windows release)

As the theme of this month’s EGP and the name suggest, you don’t do this my mashing franatically on your keyboard, but but by making sounds, recorded by your microphone. I hope you have one. :)

The dragon will either follow the PITCH of the sounds you make (which I prefer), be it by singing, whistling or by playing an instrument, or the VOLUME (which is fun too, though the game should then rather be called Screaming At Dragons).

I’m ambivalent how this one came out. Gameplay-wise it is not top-notch, and the pitch is often off (especially when not using an instrument), on the other side I think that it shows the key-concept rather well.

I guess I’m (heavily) over 7 days, I didn’t always work day-to-day and didn’t count the time – but since the topic “pitch recognition” wasn’t too easy and required some fiddling with calibration and configuration, not to speak about the keyless interface, the overtime is understandable I guess.

The pitch recognition itself is working fairly well – good enough for a prototype, though I would’ve hoped that it worked better with humming. Oh, well.

For this game I used C++ with my beloved SFML and FMOD as sound framework.

For those interested, here is the source code in form of an Eclipse CDT Project: Source Code (New BSD License).