Blog

By DigitalRune Team on Wednesday, November 30, 2011
It is time to make the game menu built in the previous two blog posts (Part 1, Part 2) more dynamic. Currently all screens are static. When another game screen is opened the change is instant – there is no transition phase between screens.

This is what we want to achieve:



The DigitalRune Animation library provides an animation system for animating objects. In Part 1 and Part 2 the animation system has already been set up and is ready to be used.

Animations...
By DigitalRune Team on Tuesday, November 29, 2011

This is the second part of the step-by-step tutorial for building a simple game menu in XNA. Previously we have set up the project, the game loop, and added the UI theme. Now it’s time to implement the game logic…

By DigitalRune Team on Monday, November 28, 2011

The latest release of the DigitalRune Engine contains a new sample called GameStatesSample which covers a some of the basics:

  • How to set up the game loop.
  • How to define a theme for rendering the user-interface.
  • How to create a game menu which can be controlled via gamepad, mouse, and keyboard.
  • How to manage different game screens using a state machine.
  • How to transition between screens using animations.

The result is a stripped down XNA application – no fancy graphics, no gameplay, just a few screens and menus. Take a look:

...

By DigitalRune Team on Thursday, May 19, 2011

In the last articles (Part 1 and Part 2), we have introduced our input service and commonly used functions of the input service. In this post we will delve into more advanced functions. We will discuss how we

  • use logical players to let the user play with any connected controller,
  • control the order of input handling and preemption when several components handle device input,
  • allow the player to re-configure the input.

By DigitalRune Team on Thursday, May 12, 2011

In the last post, we introduced the (still empty) input service interface. Now it is time to add a few functions. This blog post describes

  • how to detect button clicks and double-clicks,
  • how to add key repetition for held down keys,
  • how to enable mouse centering for relative mouse input.

By DigitalRune Team on Tuesday, May 10, 2011

XNA makes input handling very easy. It provides one static class for each input device: Keyboard, Mouse, and GamePad. In each frame, you can query the device states and examine the current key and button states. But sooner or later you discover that there are a few tasks that are not supported:

  • detecting button clicks,
  • detecting double-clicks,
  • keeping track of which of the 4 controllers the user is using,
  • making the controls configurable,
  • and more.

This becomes especially apparent when you create a game with a complex user interface (windows, text boxes, etc.).

And to be clear: It is ok that these tasks are not supported because the XNA Framework is not a game engine!

While creating our XNA GUI library (see DigitalRune Game UI), we have identified several commonly needed tasks and packed them into an input service. This and the next blog posts describe our input service design.

Article Collection

A collection of the most useful blog articles can be found here:

Article Collection
(on Documentation page
)