We are Windows Phone 7 owners, have a 3D game physics library, and play Dungeons & Dragons… That leaves us no choice: We have to make a D20 dice app for the phone!
Here is an early work-in-progress video:
The phone’s accelerometer can be used to shake the dice. This short clip is from an early stage. With the current build, the dice do not leave the viewport anymore and can be dragged or pushed with the finger.
We plan to release the core source code for all DigitalRune Physics customers as free bonus sample after we have released the app.
In all XNA games you have to create your own Game class that derives from the Game base class. Here is a pattern in which we use the service provider pattern to create a clear structure for our game class.
In many XNA games and samples the Game class does a lot of stuff and is maybe the most complex class of the application. This makes the source code difficult to understand and hard to re-use. We suggest two things to improve this:
We have discussed the Service Provider pattern in the last blog post and in this post we will show how to implement a service provider, how the DigitalRune libraries support this pattern, and how to use it in an XNA game.
Implementing a basic service provider with a Dictionary is simple:
The service provider pattern is one of my favorite patterns: It creates clean, slick code when used right - but when used in the wrong places it creates libraries that are hard to use, difficult to understand and a nightmare to maintain. In this blog post we examine the service provider pattern, related concepts, like global variables, services, managers, service providers, contexts and how they can be used in games.
Initially we planned to release a service release including minor bugfixes this week. But we had to postpone the release because we have to wait for an update of a third party library which we use internally.
The next release will be a minor update including bugfixes and new features.
In computer games damping is used to slow down a moving object. For example, a sphere is rolling on a plane and should slow down due to air resistance. Or, we make a flick gesture on the Windows Phone 7 to scroll a screen. The screen scrolls and slowly comes to rest.
Damping is related to concepts like friction, air resistance, viscous drag, etc. In this post we look at a few damping methods from the perspective of a game developer (and not the perspective of physicist).
Reducing the speed sounds easy – but is it really?
A big hello to all readers,
here is a brief status update to let you know where our current development focus lies.
A minor update including small bugfixes and improved samples will arrive next week.
We are also working on a Windows Phone 7 dice app. The D20 dice app will hit the Windows Phone 7 market place in the next weeks. The source code will be released as a free premium download for all existing DigitalRune Physics users.
Still under development. Currently, the development has sparked two new byproducts: The DigitalRune Game UI library and the DigitalRune Animation library.
In almost all 3D games collisions between complex shaped objects must be detected. For collision detection the triangle meshes can be used directly but this is a lot slower than using boxes, spheres or convex shapes. Therefore, for each model a collision model should be created that consists only of simple primitives. This collection of shapes approximates the shape of the detailed 3D graphics model. This blog posts discusses how we can use the XNA content pipeline to load shapes from a collision model created in a 3D modeling tool. The example source code can be downloaded.
In the previous post I have introduced the concept of a Pose. A Pose is a new type defined in DigitalRune Geometry. It defines the position and orientation of an object in 3D space.
In this post I will describe how a Pose can be used to define a World or View transformation matrix…
The task of positioning an object in space is so important in a game that we have introduced a type called Pose in DigitalRune Geometry. A Pose describes a position (a Vector3F) and an orientation (a Matrix33F or a QuaternionF) in 3D space. It is very similar to a transformation matrix…
A collection of the most useful blog articles can be found here:
(on Documentation page)
DigitalRune is a trademark of Garstenauer Information Technology OG.
Garstenauer Information Technology OG
Weingartenstrasse 35, 4452 Ternberg