Head Over Heels

Head Over Heels

Prototype for a third-person environmental puzzle adventure game

university diploma project

• 2009 - 2010

• C++/OGRE3D/Bullet/FMODEx/Hikari/MOC/Lua/luabind, 3dsmax, Flash, Photoshop

Additional credits

► Paul Hanisch (music)

Ludwig Hanisch (music)

Jana Reinhardt (additional 3d model)


Presentation slides


Intro + Menu


Hals über Kopf

From July 2009 to July 2010 I worked on my diploma project. I wrote my thesis from October to January - within it, I explained how to design computer games (especially gameplay, interface, story, sound, leveldesign and physics), but also created a design document (with gameplay and story elements) for the game which then would be the practical part of my diploma.

The rest of the time, until the beginning of June 2010, was solely reserved for programming, scripting, creating the art assets (characters, level geometry, plants, enemies, etc.), animating and texturing, and writing some kind of documentation of this whole process. In June, I also had to prepare the final presentation.

The supervising tutors for this diploma were Professor Bernd Hanisch and Designer Daniel Ackermann.

While creating the game, which I called “Dynamikon” in the beginning, I learned that I had to make a scene editor for it. So I programmed “Overhead”, my own little 3D level editor. It mainly does what other editors do: let you build scenes out of pre-modelled 3D meshes. You can move, scale and rotate every mesh, but also give them mass, friction, a collision shape, etc. “Overhead” was built with a physics engine’s needs in mind.

But I specifically programmed my own editor because of the special gameplay elements of my game. You can create dummy objects, called “points” in the editor, which serve as spawning points, waypoints and holders of lights, sounds and particle effects. Moreover, I implemented so called “Black Holes”, which manipulate the individual gravity of objects and the player. The leveldesigner can build areas with spherical or even cylindrical gravity. The “holes” also may have trigger functionalities, so scripts can be called as soon as the player enters or leaves them.

In the end, I named the game “Hals über Kopf”, which literally means “Neck over Head”. A better translation would be “Head over Heels” or “In a Mad Rush”. It became more of a platformer than I originally intended.

The background story of the game revolves around a planet which exploded centuries ago. The main reason for this catastrophe are strange plants which change the law of physics wherever they grow. Thus the world now consists of floating rocks and other stuff. But most people survived. They still live on the large chunks of earth and stone and most of them got used to the new situation. For example, in the course of the Industrial Age, some even equipped flying rocks with steam engines and propellers, so the boulders can be used as flying islands.

The player takes the role of a nobleman who lost all his wealth. In order to make a living he had to sign on a flying ship and do some smaller jobs, like cleaning the toilets. But of course, there are greater adventures ahead.

The gameplay consists of three main power-ups:

  • With the fruit of the Timestop Plant, you can stop the time and use frozen objects as platforms.
  • As soon as you eat from the Dimension Change Plant, you can switch between two parallel worlds.
  • When you throw the seed of the Gravitation Portal Plant, a portal gets created. If you enter it, your personal gravitation direction will change.

For the prototype I realised one level which included all three power-ups, so it was for presentation purposes only.

The game was created with OGRE, OIS, Bullet, FMOD Ex, Hikari, MOC, Lua, luabind. Programs used: Visual C++ 2008 Express, 3ds Max 2010, Photoshop, Flash, FlashDevelop, Audacity. I sincerely want to thank all people who created these libraries and applications.

I am also very grateful that my brothers Ludwig and Johannes-Paul composed and arranged the music and made some of the sound effects.

For some time I regularly updated a development blog. It’s written in German, but also contains a lot of pictures - just click on “Screenshots” or “Skizzen”.

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7 Screenshot 8 Screenshot 9 Screenshot 10 Screenshot 11 Screenshot 12 Screenshot 13 Screenshot 14 Screenshot 15 Screenshot 16 Screenshot 17 Screenshot 18 Screenshot 19 Screenshot 20 Screenshot 21 Screenshot 22