Wizard Defense: A Cooperative Augmented Reality Game

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.

How to Play Wizard Defense: A Co-op Augmented Reality Game

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:

Global Game Jam 2012, or: Keep rollin’ in Super Snake Wheel

At the end of every January, people all around the world gather to make awesome games in an absurdly short time. Developing a game in 48 hours is nothing short of insane, and I don’t think it comes to anyones surprise that this appeals a lot to me. And here I proudly present our result this year:

Super Snake Wheel

“We can’t stop here! This is bat country!”
Well, Mr. Snake might have been a bit drunk when he and his companion Mr. Gecko ignored all the warnings and set out to their adventure. Being one of the few snakes who can form a tire out of himself, he’s now rolling down the hill while Mr. Gecko defends him from birds, barely keeping his balance! Take control of this duo of odd heroes in this quirky adventure for one casual and one hardcore player!

Play the updated version online at Kongregate!

Check out the original GGJ build!

And of course credit where credit is due, and these amazing guys deserve a lot:

  • Game Design: Matthias Niebergall
  • Art: Kirill Krysov
  • Programming: Dominik Hübner and myself
  • Music taken from the wonderful Kevin MacLeod
  • A big thanks to all the people organizing the jam, globally and locally here in Berlin. You’ve done a great job!

By the way, we even satisfied a diversifier (an achievement for the developers) this year: “Collaborative Casual/Hardcore (Two players: one casual, one hardcore): Collaborative play for two, but one player has more to do than the other (or the difficulty level is different between them).” I am sure you will agree after you’ve tried both the casual Mr. Snake and the slightly more hardcore Mr. Gecko: The former just has to jump and duck, while the later has to balance on the snake, jump at the right times and use the mouse to shoot at birds!

Lessons learned

Even though this is not my first jam, it seems that every single one has some valuable lessons to teach. These are mine this time:

  • Even though it’s an a very small timeframe, make a rough project plan with milestones so you won’t lose focus.
  • Every milestone should be playable (player interaction and a goal), especially the first one – which should ideally be ready when you go to sleep the first time. It does wonders to your motivation!
  • Programmers, make a task list. It keeps you focused.
  • You cannot say if something is fun until you can test it. Halfway through the project I felt like giving up because nothing seemed to be coming together, and 12 hours later we had this amazingly fun prototype! So even if it seems like the game won’t be any good, at least implement the first playable prototype.
  • If your code is based on a pixel oriented framework like Flashpunk, don’t mix in vector based stuff like MovieClips. It just leads to a whole load of implementation overhead.
  • If you want to pull an all-nighter, at least sleep the first night. Otherwise you might fall asleep the second night which will surely lead to you missing the deadline.

This year the GGJ was certainly not easy and at times tedious and exhausting, but the result totally makes up for that. I daresay that it is one of my best prototypes so far! I am very happy that I have participated, and I’d like to thank everybody who made the weekend as amazing as it was!