by date
Plan for Clark Fagot
Plan for Clark Fagot
| Name: | Clark Fagot | ![]() |
|---|---|---|
| Date Posted: | Apr 14, 2004 | |
| Rating: | 5.0 out of 5 | |
| Public: | YES | |
| Comments: | YES | |
| RSS Feed: | or Subscribe with . | |
| Profile Page: | View profile page for Clark Fagot |
Blog post
Collaboration, racing games, and component based game objects.
About a month ago we at BraveTree central became aware of a project Brett Fattori was working on: a Wipeout style racing game. Once we saw what he had we knew we wanted to work on it with him. After some initial conversations it was clear that this was a collaboration that was going to be very fruitful.
Here is a movie of the current state of the project which Brett put together last night. You'll notice a lot of placeholder art (ThinkTanks tank with no brain on top, ThinkTanks terrain).
This project is also our first project using our new component based game object system. Anyone who has worked with the Torque vehicle and player classes has noticed that they do what they do fairly well, but if you want to change how they behave you start having to really muck with their innards. The component system is an attempt to get around this monolithic approach to game development. Instead of developing general classes with locked in feature sets, with a component based approach you build a library of components that can be combined to form all types of game classes.
For example, the car object in the movie is composed of the following components: a ComTSRender, a ComDrivingMover (derived from Com3DMover), a ComSimpleCollider (that's right, not stuck with one collision solution, you can pick and choose depending on the game), a ComCamera, and a ComLookControl (for the turret, this obviously doesn't go in the final version of the game).
The component system is built so that you can simply drop components into the BTOBjects and they know how to interact with each other. This is mostly due to BTInterfaces. E.g., the ComLook object is responsible for maintaining the look transform. It's primary task is to send horizontal and vertical angles between client and server. It also grabs a TransformInterface (which in the turret case happens to lie inside the tank shape) and sets that transform. The ComLook component is also used by the player object to control the player look animation. Since the ComLook component doesn't need to know what type of transform it is controlling, it can be reused in different contexts.
Now for some more fun. Check out this movie. That's the car on the track again but this time going 300 mph (gravity amped way up so it can stay on the track when it goes over bumps).
Next up...create the RacerMover component which will be a more refined driving model for a racing game (the current simple driving model is the ThinkTanks model with supped up parameters, but it has some limitations that make it not optimal for a racing game).
Here is a movie of the current state of the project which Brett put together last night. You'll notice a lot of placeholder art (ThinkTanks tank with no brain on top, ThinkTanks terrain).
This project is also our first project using our new component based game object system. Anyone who has worked with the Torque vehicle and player classes has noticed that they do what they do fairly well, but if you want to change how they behave you start having to really muck with their innards. The component system is an attempt to get around this monolithic approach to game development. Instead of developing general classes with locked in feature sets, with a component based approach you build a library of components that can be combined to form all types of game classes.
For example, the car object in the movie is composed of the following components: a ComTSRender, a ComDrivingMover (derived from Com3DMover), a ComSimpleCollider (that's right, not stuck with one collision solution, you can pick and choose depending on the game), a ComCamera, and a ComLookControl (for the turret, this obviously doesn't go in the final version of the game).
The component system is built so that you can simply drop components into the BTOBjects and they know how to interact with each other. This is mostly due to BTInterfaces. E.g., the ComLook object is responsible for maintaining the look transform. It's primary task is to send horizontal and vertical angles between client and server. It also grabs a TransformInterface (which in the turret case happens to lie inside the tank shape) and sets that transform. The ComLook component is also used by the player object to control the player look animation. Since the ComLook component doesn't need to know what type of transform it is controlling, it can be reused in different contexts.
Now for some more fun. Check out this movie. That's the car on the track again but this time going 300 mph (gravity amped way up so it can stay on the track when it goes over bumps).
Next up...create the RacerMover component which will be a more refined driving model for a racing game (the current simple driving model is the ThinkTanks model with supped up parameters, but it has some limitations that make it not optimal for a racing game).
Recent Blog Posts
| List: | 06/14/05 - Plan for Clark Fagot 04/21/05 - Plan for Clark Fagot 02/06/05 - Plan for Clark Fagot 04/14/04 - Plan for Clark Fagot 10/22/03 - Plan for Clark Fagot 01/06/03 - Plan for Clark Fagot |
|---|
Submit your own resources!| Paul Dana (Apr 14, 2004 at 17:37 GMT) |
| John Vanderbeck (Apr 14, 2004 at 19:32 GMT) |
| Stephen Clark (Apr 14, 2004 at 20:30 GMT) |
-s
| Clark Fagot (Apr 14, 2004 at 22:43 GMT) |
| Pat Wilson (Apr 15, 2004 at 01:50 GMT) |
| Tyler Frans (Apr 15, 2004 at 03:20 GMT) |
| -Z- (Apr 15, 2004 at 04:03 GMT) |
| Phil Carlisle (Apr 15, 2004 at 07:17 GMT) |
I'm stoked for Brett and you guys, because I *KNOW* this project is going to rock!
Obviously with BT on the case, Bretts lucked out too, but I think Brett has a great eye for seeing things and gets them done, so its a great match :)
Cant wait to see what it looks like in the final version!
BTW: Wish I had the guts to move to the BTO system, maybe during the summer I'll take the plunge, because Ive worked with deep inheritance tree's for a long time on lots of projects and frankly, Ive found them wanting. This is at least worth giving a shot in a production environment, its also something Ive talked to other devs about and some do use it (cant remember who did it to the most extreme, might have been the Gas Powered Games guys, but I might be wrong).
GO GO GO GO!!!
| Racer (Apr 15, 2004 at 16:53 GMT) Resource Rating: 5 |
SWEET!
| Spunky (Apr 25, 2004 at 10:58 GMT) |
Keep up the good work!
-Spunk
You must be a member and be logged in to either append comments or rate this resource.



5.0 out of 5


