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:  …
|
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
For 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.
|