Projects »

Oarena Navigation

This is part of my PhD thesis project. I have modified the source of quake III, using the branch version provided by openarena, to create tools for research in wayfinding techniques and rehabilitation of cognitive conditions.

Unfortunately the source code is still under development and cannot be released until the research articles are published, but I will post the code as soon as the privacy issues have been cleared.

Some features added to the game are:

  • A new game modality, called "Scavenger hunt". in this modality, the user has to find a treasure randomly located somewhere in the world. The faster you locate the treasure, the better!
  • New navigational tools, overlaid in the head-up display (HUD). The tools programmed are:
    • Locator - A compass like pointing tool that changes it's bearing to indicate
      • The position of the closest flight of stairs in the building, if you are in the wrong floor, in which case, an icon will appear close to the locator, indicating if you have to go upstairs or downstairs
      • The position of the treasure in the floor (if the player is in the same floor as the treasure)
    • Minimap - A minimap of the environment, if can present a top and a side view of the building (useful when the building has more than one level).
    • Coordinate display - Textual information is displayed on the HUD. If the player is in the same floor, coordinates relative to the treasure are displayed. If the player is in a different floor, a message reading how many floors to walk up/down is displayed.
    • Routing tool - A compass like pointing tool, that changes its bearing in a way similar to a GPS. The pointing tip will change at every intersection (if required) indicating that the user has to turn at that intersection to get to the treasure following the shortest path to it. If the player deviates from the offered route, the best route is recalculated at the next intersection.
  • Although the Area Awareness System of quake III can be used to calculate the best route to follow, we added code to find the best route to follow based on the Dijkstra algorithm. In this case you have to create a connected graph of the environment. We decided to use this approach instead of AAS because we already had the node graph and the Dijkstra algorithm programmed in C.
  • Path recording code - We generated code that allows to record all the movements (displacements and rotations) made by the player for further analysis.
  • We generated a map of a building that resembles a rehabilitation hospital.

Experiments with this tool have already been carried on and are about to be published. Here are some documents that helped me to create my game:





edit SideBar

Page last modified on November 06, 2008, at 09:12 PM EST - Powered by PmWiki