You are here:  

Blog

By DigitalRune Team on Friday, September 10, 2010

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.

What's up dude?

Let's look at a practical example. Here is the Dude from the XNA Skinned Model Example:

XNA-Dude

The model has 13132 vertices and the skeleton has 60 bones.

Bounding Spheres

Here is the same model where a bounding sphere is computed for the vertices of each bone.

By DigitalRune Team on Wednesday, September 08, 2010

female-jogger-morro-bay-coleman-avenueSomewhere I read that characters in Quake-style first-person-shooter games have a speed of 10 m/s. To account for this unnatural speed the gravity is often set to a higher than normal value, like 16 m/s² (instead of 9,81 m/s²).

We haven't verified this statement, so let's put this in perspective (with collected notes from our internal knowledge base):

Walking

  • Normal passer-by on the street: 1,48 m/s (5,34 km/h)
By DigitalRune Team on Monday, September 06, 2010

JumpJumping Is Important!

Seriously. If I cannot jump in an action game, chances are high that I will not play it.

Do you remember that there once was a game type called "Jump'n'Run" – where according to the genre name jumping was 50% of the gameplay and the joy? Jumping on its own is fun and it is a natural way to show emotion. In World of Warcraft, for example, jumping is the simplest expression of feelings. – Typing emotes is way to complicated for me ;-)

Implementing Jumping

When implementing jumping an interesting question arises: How much control does the user have while jumping?

By DigitalRune Team on Saturday, August 28, 2010

Ok, this one is simple - but simple things matter. Take a block of wood, drill three holes and add 3 colored pencils. If you do it right, you might get something like this:

Cordy

By DigitalRune Team on Thursday, August 26, 2010

Yet another blog post about character controllers for 3D games, and this time we will talk about the actual implementation.

Kinematic Character Controller Using Discrete Collision Detection

Here is how the character controller in our Character Controller Example works:

Capsule Shape

The character is represented as a an upright capsule that does not rotate:

Character_Capsule

By DigitalRune Team on Friday, August 20, 2010

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

Kinematic Character Controller

By DigitalRune Team on Tuesday, August 17, 2010

In one of the last posts we introduced our Character Controller Example. In the next posts, we will discuss character controllers for 3D games in more detail, including: general requirements, kinematic vs. dynamic character controllers, implementation, character controllers in virtual reality.

This post starts the series with a discussion of requirements of 3D game character controller.

Functional Requirements

Teleport

The first requirement is teleport because the character controller must be set to its initial position. A teleport sets the character to a new position. It doesn't matter where it was previously and if there are obstacles between the old and new position.

Recover from penetrations

By DigitalRune Team on Wednesday, July 21, 2010

CharacterControllerSampleFor the new DigitalRune Geometry library we have created a simple 3D character controller example (including source code).

A character controller, as understood in this context, is a game engine module that computes the movement of an avatar in a game. The input for the character controller is the desired movement (e.g. “move forward with 5 m/s speed”, or “jump”) and the output is the new corrected avatar position in the 3D game world. The character controller has to apply gravity, avoid penetration of walls and other solid objects, handle stepping up/down slopes and stairs, and more.

 

By DigitalRune Team on Wednesday, July 21, 2010

 

Box-Collision This blog post contains our collection of references for Collision Detection: website links, a list of collision detection libraries, list of books. This post will be updated from time to time.

If you know other useful links, please let us know and we will include them in this blog post.

Collision Detection Websites

This is a collection of various links about collision detection and related topics. 

 

By DigitalRune Team on Monday, July 05, 2010

SeesawHere 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.

By DigitalRune Team on Saturday, July 03, 2010

Like my brother Helmut, I finished my master thesis in 2005. The thesis goes through all the steps necessary for animating characters in games. I thought it might be of use to someone who is just starting with this topic – so I might just write a blog post and put it back online for download.

By DigitalRune Team on Tuesday, June 08, 2010

GeneralWhen I learn a new API I like to look at the API using different views: example code, API documentation, and class diagrams. When we started to learn XNA, we created class diagrams for the XNA framework. This helped a lot in getting an overview and seeing relationships between types.

I haven’t seen XNA class diagrams publicly on the internet. So it might help if I post our class diagrams here.

By DigitalRune Team on Wednesday, May 26, 2010

Here is a list of books related to rigid body dynamics and game physics.


Physics for Game Developers

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/

        …
By DigitalRune Team on Wednesday, May 26, 2010

Sitting-Ragdoll-smallThis is a collection of links about game physics, especially rigid body dynamics, and related topics. 

By DigitalRune Team on Wednesday, May 26, 2010
Body-small

This is a collection of various links about character animation and related topics.

Libraries and Products

By DigitalRune Team on Monday, May 24, 2010

PileIn 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.

 

Categories
Tags
Archive
 
Home | Products | Services | Downloads | Buy | Support | About