I'd like to show off some projects of mine that are currently on the back burner, to avoid them from gathering too much dust. :)

Here is a video of a game prototype I was working on in UDK. My idea is to express the feeling of being in zero gravity in a way that hasn't been done in games before (i.e. no jetpack.) You move by pushing yourself along surfaces and kicking off them towards other surfaces. Once airborne, you can't alter your velocity without grabbing on or bumping in to something (or possibly throwing stuff out of your pockets.) I hope someday to make a real game from this concept.

I reflect on this prototype, why it went to the back burner, and what I learned after the jump.

Why it's back-burnered: I got bogged down in a lot of difficult 3D math. Also, I'm finding it a pain to just figure out how to do what I want in UnrealScript due to lack of documentation. The last time I worked on this, I had just finished implementing a custom six degrees of freedom (6dof) camera that uses quaternions to represent rotation instead of the default euler angles. After jamming on this for several weekends, I sort of lost steam on the project.

I have inklings of a vision for a larger exploration/puzzle game in zero gravity, but I'm not quite sure how I want to proceed. Also, I think this idea of mine might be too ambitious in scope.

Actually building this prototype helped me immensely to understand the issues that would arise in designing this sort of game. I hit an issue with 6dof cameras that I have not seen solved yet by anyone who has attempted this. Notice that if you rotate the camera in small circles in any game with a 6dof camera (say, in Descent, or Shattered Horizon when you're not walking on a surface) you'll see it start to roll. The larger the circle, the more exaggerated the motion is. This means that if, for instance, you yaw left by 90 degrees (i.e. look along your left shoulder), then pitch up by 90 degrees (look straight up from there) and then yaw right by 90 degrees (move your head to the right) you will be looking forward again, but the world will have rolled by 90 degrees! This feels really unnatural in a 1st-person game where the mouse is supposed to control head movement. (Below is a diagram of roll, pitch, and yaw axes if you are unfamiliar with the terms.)

The only alternative I can think of, that I was working on coding before I back-burnered this project, is a system where you can control the position of your body seperately from your head. In that case, you would be able to orient your body with six degrees of freedom, and could in fact do the rotation described above, and it would be OK since you are in zero gravity and deliberately re-orienting yourself. But to keep it so that the situation described above doesn't happen when you are just casually looking around, the roll on your head would be locked, so if you did the rotation described above, your view would not roll (this is how regular FPS cameras work.) If anyone is interested, I can make some videos that illustrate the issue I am describing here.

Music: TiLT - Nova Lab Background Theme