Goblin XNA is a platform for research on 3D user interfaces, including mobile augmented reality and virtual reality, with an emphasis on games. It is written in C# and based on the Microsoft XNA platform. Goblin XNA inherits some of the goals of the earlier Goblin project, but with a shift in emphasis toward core 3D user interface functionality, leveraging the existing functionality of DirectX 3D game engines and development environments. The platform currently supports 6DOF (six degree of freedom) position and orientation tracking using marker-based camera tracking through ARTag with OpenCV or DirectShow, and InterSense hybrid trackers. Physics is supported through BulletX and Newton Game Dynamics. Networking is supported through Lidgren library. Goblin XNA also includes a 2D GUI system to allow the creation of classical 2D interaction components.
The Goblin XNA AR Racing Game is an augmented reality mod of the XNA Racing Game Starter Kit. It is the first game being created using Goblin XNA, and demonstrates the use of fiducial tracking, 2.5D and 3D widgets, and assorted 3D user interface techniques. The Goblin XNA AR Racing Game uses an optically tracked physical gameboard, controller, and tokens. Instead of racing around a preset virtual track, the driver must pass a sequence of waypoints, while avoiding obstacles. Waypoints and obstacles are attached to physical tokens that can be moved dynamically during gameplay to rearrange the course.
Goblin XNA Domino Knockdown was created to explore how well Goblin XNA games would work on a UMPC with a modest computational profile: a Sony VGN-UX390N with Intel Core Solo U1500 (1.33 GHz), Intel GMA 950, 1 GB DDR2, and a 1024×600 touchscreen display, running Windows Vista Business. The user begins by positioning virtual dominoes on a tracked physical game board. When ready, the user fires balls by tapping on the touchscreen. The object of the game is to knock all the dominoes off the board. Game physics are simulated using Goblin XNA’s interface to Newton Game Dynamics.
Goblin XNA was first implemented as Goblin v2, built on top of Truevision3D, an indie 3D development environment that supports C#. Goblin v2 was used by students for individual and team assignments in 3D User Interface Design (COMS W4172), taught by Prof. Steve Feiner in Spring 2007. 3D position and orientation tracking was accomplished using inexpensive web cameras and the Goblin v2 interface to ARTag,
Team final projects used augmented reality to create situated visualizations that overlay with additional information the site of Columbia’s proposed Manhattanville campus, both in miniature and at full scale. Guided by Prof. Petia Morozov from the Graduate School of Architecture, Planning and Preservation, and Sean White, students used web-based information sources to determine questions to address, and designed visual representations and techniques for interacting with their visualizations indoors and outdoors. Each of the screen shots shown here was captured live from a final project by one of the six teams.
Goblin XNA has been released on 1/30/2009. It can be downloaded from CodePlex.
This research is supported by a generous gift from Microsoft Research.
Michael Sorvillo, Levi Lister, and Sean White helped to develop the platform.