Rendercode Games has released the new Xbox LIVE Indie game Racedrome City:
The latest chapter in the Racedrome saga raises the bar with improved handling, physics, and visuals. Enjoy high-speed urban racing against strong AI, or challenge up to 8 players online. Also included is local multiplayer, global scoreboards, rewind function, and more!
Here is the trailer:
Racedrome City uses DigitalRune Physics to simulate the vehicles. More specifically, …
A while ago we have blogged about our car physics implementation (see Car Physics for 3D Games). Today we release an alternative implementation:
…
This is a guest post by Kairat Aitpayev.
Augmented Reality (AR) technology allows adding virtual object to the real world using special markers. By merging it with Microsoft Kinect I have created new approach which allows users to use their own body as a collision object in the 3D world and interact with augmented objects.
Here the presentation of the demo application which by itself is a part of bigger project related with online sport education:
(Full video of entire project: See https://vimeo.com/41136278)
The project was created in the MultiMedia Lab of Kazakh-British Technical University (Kazakhstan) in collaboration with University of Technology of Belfort-Montbeliard (France).
DigitalRune libraries are used to improve the interaction between the real and the virtual world.
Our last post about real-time motion capture using Kinect seems to be pretty popular. And for the small amount of time (only a few hours) that we put into this example, the results are satisfying – but we can do better! We have updated the project and included a brand new sample. The new sample uses skeleton mapping to animate 3D models using Kinect. The code is much simpler, and exchanging the 3D model is a lot easier. We have also updated the example application to use Kinect SDK v1.0 instead of Kinect SDK beta2. You can download the sample project (including the source code) at the end of this post.
Here are the results of the new sample application:
A while ago we discussed in the Forum how to use the Microsoft Kinect SDK to animate a character model in real-time and how to apply movement constraints (e.g. joint rotation limits). Yesterday our company got a new Kinect device and I figured I might spend the rest of the afternoon trying to write a small XNA sample.
Here is the result: (You can download the source code below the video.)
Recently I made some improvements to the character controller in DigitalRune Physics. I became aware of some issues while reading the article “Jump To It” (Game Developer Magazine, issue 11/2008, pp. 38). It turns out that the jumping mechanic can be improved.
The KinematicCharacterController can be used to control the movement of a player character. The character controller handles moving, sliding along obstacles, walking slopes, stepping over obstacles, … and jumping. (Reminder: If you have an Indie or Standard license of DigitalRune Physics, you can download the source code of the character controllers from the Downloads page. See “Additional Downloads”.)
Jumping works fine in most cases. That is, …
Manually creating good ragdolls in code can be tough. This blog post takes you on a hands-on ragdoll creation journey and provides several tips.
The DigitalRune Animation library supports ragdolls. DigitalRune Animation has a lot of helpful methods for character animation and ragdoll creation, but it does not yet have a method that visualizes ragdoll constraints. Choosing good joint limits and correct joint orientations can be really difficult without a visualization. – But do not fear, constraint visualization is here!
The following .zip archive contains a “RagdollHelper” class that draws constraints for a ragdoll. It also contains an updated “DudeRagdollCreator.cs”.
We have made several improvements to our 3D character controller, which we want to discuss in this post. (Reminder: A character controller is the game module that computes the movement of a player character, including walking, jumping, climbing, etc.)
Following video shows the new character controllers in action. (The code is included in the DigitalRune Physics Bundle).
We have recently added 3D vehicle physics to our DigitalRune Physics library. In this post we will explain how the car physics works, so that you can either create your own car physics, or you can understand and tune the car physics that comes with our libraries.
Let’s have a look at what we want to achieve. Following Vehicle Sample is an XNA example project that is included in the DigitalRune Physics Bundle:
The .NET Framework 4 contains the Task Parallel Library (TPL). It introduces the concept of tasks. Tasks represent asynchronous operations that can be executed concurrently. Developers no longer have to manage threads or thread pool work items directly. The library provides a higher-level API for writing multi-threaded application or games. The only negative thing we can say about the TPL is that it is not supported on the .NET Compact Framework and is therefore not available on the Xbox 360 (or the WP7).
When we added multithreading support for our libraries, we looked for an easy-to-use, cross-platform threading library. After evaluating a lot of solutions we found the ParallelTasks library on CodePlex. The library is a lightweight replacement for the TPL. It offers all relevant features such as …
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 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.
Here is another Windows Phone 7 physics example: It shows a few bodies and a 3d ragdoll. Tilt or shake the phone to move the bodies.
Windows Phone 7 is awesome! – This blog post shows DigitalRune Physics on a real Windows Phone 7 in action. The full sample source code can be downloaded at the end of the posting.
Following video shows the sample running on a Samsung Omnia 7 (a great WP7 device!):
Besides DigitalRune Physics we have been working on DigitalRune Graphics for several month now. I thought it would be nice to use a few graphics effects of DigitalRune Graphics to make our physics demos more interesting. – And here is the result: A short video testing screen space ambient occlusion, an atmospheric scattering skydome and god rays in a simple XNA physics demo. (Implementation details follow after the video.)
Fine, we have found a way to implement Continuous Collision Detection (CCD), but how do we integrate this into our game physics library?
This article explains how to use CCD in game physics; especially a technique called motion clamping that is used in DigitalRune Physics and possible pitfalls you could come across when you use game physics with CCD.
Our new physics library is nearly finished. Here is a compilation of a few tests:
In the last post we computed convex hulls for the XNA dude. Convex hulls are useful approximations for collision detection because many algorithms like GJK, EPA (Expanding Polytope Algorithm) or MPR (Minkowski Portal Refinement) can handle arbitrary convex objects. We also used simplified convex hulls. In this post we describe how we have implemented convex hull generation, convex hull simplification and skin width.
Actually, there are many convex hull algorithms. Here is a java applet showing different algorithms: http://www.cse.unsw.edu.au/~lambert/java/3d/hull.html
We started with incremental construction as described in this book:
DigitalRune Geometry supports automatic generation of bounding shapes and convex hulls. Using simple bounding shapes or convex hulls is more efficient than using arbitrary triangle meshes in game physics. In this post we will investigate different kinds of bounding shapes.
Let's look at a practical example. Here is the Dude from the XNA Skinned Model Example:
The model has 13132 vertices and the skeleton has 60 bones.
Here is the same model where a bounding sphere is computed for the vertices of each bone.
Yet another blog post about character controllers for 3D games, and this time we will talk about the actual implementation.
Here is how the character controller in our Character Controller Example works:
The character is represented as a an upright capsule that does not rotate:
There are at least two ways to implement a character controller for a 3D game: Kinematic and Dynamic Character Controllers. In this post we discuss the difference and which solution is better.
A short reminder: In this context a character controller is the piece of code that computes the movement of the player character in the game. It takes care that the user does not run through walls, can step up/down, jump etc. The character is often modeled as an upright capsule.
Related posts: 3D XNA Character Controller Example and Character Controller Requirements
Here is a list of physics engines. This blog entry will be updated from time to time. If you know other useful links, please let us know and we will include them in this list.
Here is a list of books related to rigid body dynamics and game physics.
by David M. Bourg
This book is an easy-to-read introduction to game physics. It explains the basics (kinematics, kinetics, forces, particles, rigid bodies, collision response) and several applications (projectiles, ships, hovercrafts, cars, etc.). The book is for beginners. You will need other sources for advanced topics, like rigid body contacts or joint-handling.
I have encountered several errors while reading the book, so make sure to read the errata on the book's website: http://www.oreilly.com/catalog/physicsgame/
This is a collection of links about game physics, especially rigid body dynamics, and related topics.
In 2005 I finished my master thesis about rigid body dynamics. It shows how to build a rigid body physics engine for interactive 3d applications. I am sure it is a good starting point for everyone who wants to learn about game physics.
A collection of the most useful blog articles can be found here:
Article Collection (on Documentation page)
DigitalRune is a trademark of Garstenauer Information Technology OG.
Garstenauer Information Technology OG Weingartenstrasse 35, 4452 Ternberg Austria (EUROPE) office@digitalrune.com