Tweet

New to Beyond Casual? – start from part 1!

Part 5: Navigation



As I wrote in the 2nd post:, navigation in a 3D virtual universe is challenging. It’s not that hard to implement a navigation scheme, but it is hard to design an enjoyable 3D level, that will not cause your players depth perception to be constantly challenged. Are we really living in a 3D universe?

We spend most of our life on our feet. We don’t experience the 3rd dimension in the same level birds or flying insect do. On top of that – we are usually intimidated by full freedom of movement. Imagine walking in a jungle where you can move anywhere freely. Can you feel secure while constantly spending mental effort on choosing your path? Now imagine there is a road you can follow. Maybe even a city with roads and sidewalks? Now let’s think again on the ‘on-the-rails’ types of experiences discussed at the 2nd post – and compare it to your last trip to IKEA. Yes – we sure all like rail shopping J

But I already had a post with those excuses before – and the whole narrative of my posts is definitely not claiming we all should remain in static camera / rails games. Moving around in 3D virtual is challenging indeed – but it’s also a very powerful experience. For gesture games – we will need to invent creative new ways to make us feel on the move while remaining in front of the TV set.

Fun vs. fitness

Walking and running by jumping in place with alternate legs is something you can experience in Kinect Sports, as a well as several other Kincet games. It is quite effective in the experience sense – you feel as you are walking. You even get tired. But if you are not into making fitness games, you should consider need to find some ways to empower the user. In fiction – part of the hero’s magic is easily achieving things that are considered hard or impossible. You character imagined incredible fitness should probably allow him to walk miles without giving it a second thought.

In this post I will discuss several schemes for walking. Not all those schemes are fully tested – but their certainly worth the discussion

Torso tilt - walking and strafing

When the user’s torso is tilted above a certain angle – motion in the appropriate direction begins. This is quite simple to implement reliably, and you can also apply it to sideways strafes.
The most problematic aspect of going with this scheme all the way is that tedious and uncomfortable. The user will need to move his legs in order maintain his balance, and when he will get lazy, he will begin to use his back muscles and put high pressure on his spine.
Down to level design – it is not recommended for cases where the user is expected to walk a lot.
If your game is sci-fi themed, you can use the jet-pack as a nice metaphor that explains this scheme naturally: once the user decides to power on the jets, his body tilt controls the motion.

Rotation

While literal movement in place is limited to the living-room space; rotation in place is not. But apart from my 2nd grade teacher, you will not enjoy the graphics if you reach a point where your back is to the screen. We need to challenge with two problems: be able to continue facing the screen after rotation and the camera angle changes.

Some simple solutions
  • Use the torso tilt for rotation purposes instead of strafing
  • Begin automatic camera rotation to when the user’s torso bearing passes a certain threshold.

Another possibility is ‘asymmetric rotation mapping’.
For the reference, let’s define the case of user facing the TV as 0 degrees. Now the user can turn to right or left. Right turn is the positive degrees change and left turn is negative.
Let’s imagine the camera rotation happens only when the user’s bearing changes away from 0 and ceases when it moves towards 0. The user can rotation to any direction and maintain his virtual bearing when he returns to face the screen.
You can also multiply the user rotation by some factor when moving ‘away’ from center bearing and creating a smaller scale on the return path – it will all do the trick as long as it is asymmetric. 


In place walking

Walking in place can be used to walk forward. If that is too tedious (Fun or fitness?) you can reserve the actual walking in place to signal on character running (So you don’t expect the user to walk all the time – but when he does he get a gratifying empowerment by seeing his avatar running)
Running is achieved by actually moving the legs up and down – in a walk in place fashion
To run forward, user need to raise legs alternately (left – right – left – etc.)
Optionally:
To retreat quickly, the user can step in same leg (left – left – left – etc.)
Walking in place with one leg forward and another backward rotates the avatar




Hand walking

When we walk naturally we also move our hands from side to side to maintain balance
This can be used to simulate walking instead of detecting the legs motion
This scheme and many other advanced contextual gesture parsing is demonstrated in Activate3D’s impressive ICM demo, downloadable inthe openNI Arena


Last words:

As mentioned in the opening to this post – navigation is a big challenge. Some user might prefer one scheme over others. In example, the user might feel natural and intuitive in the torso tilt scheme, but will not enjoy using it for long periods.
Sometimes – you can consider cascading several techniques, and allowing more than one way to work:

  • Tilt to walk, walk in place – to run
  • Both sideways tilt and asymmetric torso rotation
  • Walking and reaching the edges of the play area to begin automatic walking.
  • Requiring a tilt or in place motion to initiate/cease automatic  walking, instead of asking the user to maintain it

10 comments:

  1. great blog, man.

    2 notes:
    1. what about menu navigation? we, as motion game designers, always forget about the menu. but its not that obvious too...
    http://uxi.org.il/pages/13265

    2. these guys have came up with the best solution i've seen so far for the 3D navigation issue you talk about in this post.
    http://www.youtube.com/watch?v=eg8Bh5iI2WY&list=PL5C161BCD8D3A135F&index=13&feature=plpp_video

    enjoy.

    ReplyDelete
    Replies
    1. Hi Shachar - thanks for your comments!
      You are kind of bursting into an open door - as our main work focus for the past 2 years was to research and protorype numerous NUI paradigms
      Latest work - involves Zooming User Interfaces and was presented in CES
      http://www.youtube.com/watch?v=NKjkQLxwTek
      Other approaches invoved touch emulation
      http://www.youtube.com/watch?v=RzldQmW-YQs
      or other simplified paradigms
      http://play.kendincos.us/122223/Wvzrvrvrvtxhlrvlpfj-openni-compliant-real-time-hand-tracking-by-primesense.html

      (There are many many others - if there is an interest - i can upload videos. those are simply the ones I found online)

      Delete
    2. About that video:
      Well - if you can just walk naturally to move it’s a whole different ball game.
      Such devices cost 100K$ and more - and are deployed by US Navy to train marines troops.
      The interesting thing is that we don’t really require that level of technology to feel immersed. Our minds require far less: people that play FPS with keyboard and mouse reach a point where they are connected to their virtual self to a very high level. The audiences of the 1st motion pictures flew out of the cinema in horror after seeing a low quality, B&W, low frame rate clip of a train.
      The art of the game designers is no different than that of the storytellers: how to take the medium and manage to compress and deliver the intended emotions (Never planned to do so, but I probably need to write a whole post discussing those aspects)

      Delete
  2. hi Micha,
    posts are really interesting !! :)

    i had an idea of using hand gesture as tactic infantry signals.
    please take a look at the reference here:
    http://team.airsocom.com/page/1733414:Page:11137

    you can point to the exact direction that you would like to go.
    you can stop quite easily
    you can control an entire troop...

    the torso navigation technique sounds really intuitive and sensitive for adjustment in the movement direction.

    ReplyDelete
    Replies
    1. The airsocom link is fascinating! It definitely should come with the verbal commands thing
      Imagine your troops are now snitching quietly into enemy territory – you use gestures. But when you are detected – and firing begins, even talking is not enough – the commander must shout!

      Shit! – This sounds too much like the real thing. I changed my mind – let’s forget it...
      ;)

      Delete
  3. Thanks for the nice and informative blog series!

    I wonder if anybody tried to use moving one step forward or backward in real, to toggle walk or run in the game.

    What are your thoughts about this approach?

    ReplyDelete
  4. "But apart from my 2nd grade teacher, you will not enjoy the graphics if you reach a point where your back is to the screen"

    hehe :)
    thanks for the posts! really great

    ReplyDelete
  5. Hi. I can't find AngryBotsNI anywhere. The OpenNI Arena link doesn't work. Could you please provide an alternate download link?

    ReplyDelete
    Replies
    1. Hi Marshall, I'll try to upload the source to Github. Please feel free to contact me if you need it urgently.

      Delete
  6. This comment has been removed by the author.

    ReplyDelete