Pod Racer is a project for the course Advanced Graphics and Interaction (AGI14) at the Royal Institute of Technology (KTH) in Stockholm, Sweden. The project is developed by three students (Carl, Johan and Anton) and is an implementation of Pod Racing , as seen in Star Wars.


The game is developed in Unity3D and Blender. We program the different components of the game using C# in Unity's IDE MonoDevelop.


Interaction with the game is made possible via two Novint Falcons and an Oculus Rift. The Falcons function as throttles and are connected to one jet engine each. They also provide the player with haptic feedback when jumping, colliding, sliding in tight corners, during fast acceleration etc.



Demo Reel

Balancing haptic controls

Early on, our desire to create a great immersion resulted in creating something that was overwhelming. The g-forces put on the racer in-game would pull hard on the Novint controllers, which was a huge bewilderment to new players. While we wanted them to feel like they had to work with a machine, rather than just pressing it’s buttons, it was too much and had to be dialed down and redesigned.

On a technical note, the Novint controllers also require a very quick update frequency to work properly. Crashes tended not to register in them, for example, because the contact passed too quickly. Together with the fact that we had to lower the feedback from g-forces as they were pulling the players hand incredibly hard to the side in corners, we could only think to solve it by implementing a ‘rumble’ function.

Designing interface

The games first contact with an audience with zero experience of it made it very clear that virtual reality comes with some distinct issues for communicating the game’s mechanics with the player. In itself, the technology is not hard to use or implement, thanks to very good integration with the Unity game engine, but you have to design your interface for it. Feedback on movement is crucial, for example. Since steering in the game required you to balance two engines (and that things go wrong quickly when you do not), problems arise around the players not seeing it’s hands.

Volumetric fire rendering

Graphically, this is where we really stepped beyond what comes bundled with Unity. Fortunately, we found a publicly available implementation of a simple shader that does volumetric fire rendering:

This provided a huge leg forward for making something a little bit more complex and fun; deformable volumetric fire rendering.

Unfortunately, the math involved in this as explained in prior published solutions proved somewhat beyond us inside the time we could put into it with all our interaction concerns. And with zero prior exposure to shader programming, it became even more difficult. We managed to fashion deformation, but the result is rough and has plenty of graphical artifacts.

Sound Effects

As to build further upon the immersiveness of PodRacer, we decided early on to design a soundscape. As all of us only have studied a basic course in sound as an information medium, problems soon emerged. The biggest challenge was to create a seamless loop when it comes to the hover sound from the engines and the roaring sound from the rocket thrusters.

Fortunately, Unity made it quite simple for us to integrate sound in our game by using audio sources. The challenge then became about trying to play the correct clips at the correct time, for as long as we desire, and at the correct volume (depending on height from the ground, acceleration and reverberation zones).

Goals

Creating a fun game

First and foremost: While a bit outside the course description (it is not about game design), we had the primary ambition of creating something that was fun to play.

Creating immersion

We wanted the experience of driving in our game to be engrossing. Not necessarily realistic (that seemed ridiculous considering the theme), but something that really involved you in the idea of racing an unhinged, fire-spewing, fossil fuel-burning machine.

Creating advanced graphical effects

While we as a team were mostly into interaction as opposed to graphics, trying our hands at creating the effects iconic with podracers (as seen in Star Wars) seemed like a well balanced challenge. Decent difficulty and enhancing the experience of the game.

Motivation

We want to learn about modern graphics and interaction technologies and how you implement them according to best practice.

We also want to create a fun and immersive gaming experience for the players. We want to understand what useful haptic feedback can provide in a game environment.

This game will for sure make the world a better place. Who wouldn't want to play this game?

Interactive Racing Game with Haptic Feedback (2007)

Sang-Youn Kim, Kyu-Young Kim


Real-time Procedural Volumetric Fire (2007)

Alfred R. Fuller, Hari Krishnan, Karim Mahrous, Bernd Hamann, Kenneth I. Joy


Designing with Haptic Feedback (2000)

Karon E. MacLean


  • Setting up a new environment for developing always takes more time than you think
  • Getting to know a third party plugin/API can be tricky at times
  • It is important to divide the work load evenly within the team
  • Collecting real user feedback is crucial for the development of a product
  • Presenting your work continuously during the course of a day takes a lot of planning and a clear division of the work load
  • Explaining your work to the unenlightened requires that you possess detailed knowledge about your work and that you are able to explain it in both a simplified and an advanced way
Carl