You are here:  

Blog

Author: DigitalRune Team Created: Monday, May 24, 2010 RssIcon
The blog of the DigitalRune team.
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 Friday, August 13, 2010

Reflector_VB_ComboBoxIn our company we do not program in VB.NET. Not that we have anything against it, we have just specialized in C# when we program .NET applications.

We are are aware that our WinForms libraries (DigitalRune Docking Windows and the DigitalRune Text Editor Control) are used by many VB programmers. And they regularly ask for VB example code.

Here are a few ways to automatically convert C# code to VB (or the other way around):

 

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. 

 

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