The guys over at DigitalRune have released their game UI package that include .NET packages, which will aid developers in handling device input and creating GUIs in XNA. The libraries are supported on Windows, Xbox 360 and Windows Phone 7 and can be manipulated using mouse, keyboard, gimped or touch input.

The UI will allow one to create a simple in-game menu for a project on the 360 or WP7, but can also be used by the more experienced to craft complex user interfaces that are found in Massive Multiplayer Online Role Playing Games (MMORPGs). The video above acts an example to show how the GUI can be projected on not only 2D UI, but 3D surfaces too. Battle on past the break for feature rundown and download links A quick rundown of highlighted features:


  • Supports Windows, Xbox 360 and Windows Phone 7.
  • Includes source code of the input class and GUI controls.

Input Handling (DigitalRune.Game.Input.dll)

  • Detection of button presses, releases and double-clicks.
  • Assigning logical players to physical game controllers.
  • Automatic repetition of button events for held buttons.
  • Input mapping.
  • And more convenience functions.

GUI (DigitalRune.Game.UI.dll)

  • Many controls: text block/label, text box, image, slider, scroll bar, progress bar, context menu, window, scroll viewer, group box, tab control, button, check box, radio button, drop down button, tool tips
  • Debug console that can be extended with custom command.
  • Simple to add new controls.
  • Exchangeable GUI renderers.
  • Complete theme (control images and properties) can be defined per XML.
  • Loading predefined layouts from XML files.
  • Flexible layout system.
  • Customizable key-mapping (keyboard layouts for the keyboard and the Xbox 360 Chatpad).

Other Features (DigitalRune.Game.dll)

  • A game object system supporting extendable and connectable properties, extendable events, templating, life-time management, and more.
  • State machines supporting nested states, parallel states, history states, and more.
  • Clocks and timers to control game loop timing.

Below are a few GUI samples:

Overall impression is this looks pretty darn neat. This alpha release is freely available, however final versions will require a license fee. You can download the package at the DigitalRune downloads section, while documentation is readily available.

Source: DigitalRune