Game Development Community

dev|Pro Game Development Curriculum

Torque and modifications

by Stefan Lundmark · 10/09/2006 (11:37 am) · 29 comments

I purchased Torque back in 2004. At that time, I had no clue it would change my life. This is not a fanboy blog praising all of Torque, but an honest opinion of someone that, 2 years ago, had no programming experience whatsoever. I have always had problems with math and left school with quite bad grades.

Still, it worked out just fine for me. I hear many experienced programmers saying Torque is a mess and hard to learn, and I can not help but wonder how much time they have spent with it until they dismissed it.

Now, I'm going to talk about some of the modifications I have made recently, and to some degree: why I made them.

www.fmod.org/fmodsplashex.jpgFMOD

I very recently implemented this into Torque and replaced OpenAL completely. As our game has a very focus on sounds, we felt it was needed. I'm currently playing around with LowPass filters. FMOD has so far been wonderful to code with, and reminds me about Torque alot.

I felt that the OpenAL implementation had a long way to go before it can be considered useful and I did not find its structure easy to understand so I did not bother to rewrite it.

www.innercircledev.net/garagegames/blog/screenshot01.jpgShapeBaseImage & a new MuzzleFlash class

This one was a tough nut to crack. We have alot of fast fireing machine guns in our game, and ShapeBaseImage does not seem to have been designed with that in mind. It is great for equipment though so we ended up creating a seperate class - we can call it weaponImage for the sake of this plan.

There are too many changes to name them all here, but the key ones are:

[*] Seperate 1st/3rd person images, much like HL2's system with one worldShape and a viewShape (different shape files, not to be confused with LOD).
[*] Multiple threads, so you can play more than one thread at once.
[*] The viewShape is static to the viewer, but moves side-to-side when looking around, and back/forward when looking up/down. There is also a seperate thread for move animations - again very much similiar to HL2's system.
[*] A callback into shapeBase which (in simple terms) creates a hitbox to the shapeBase object (and not to the image since it does not tick) if isCollidable is set to true in the image datablock. This way you can interact with the image.

I also designed a seperate client-only muzzleFlash class, that is built up by one single plane that changes texture depending on the direction of the viewer and the eyeVector. No need for complex shapes there. Big thanks to Melv May's documentation about rendering objects!

www.innercircledev.net/garagegames/blog/screenshot02.jpgA new simple flying vehicle class, based on ShapeBase.

This is the one that took most of my time away during June-August. I had a simple flying vehicle class using clippedPolyList, and simplePolyList from the TankPack (which was VERY useful in understanding how collisions are handled on player-like shapes) but I ended up not using it because the physics were too simple, even for our arcade-like needs.

Martin Schultz and I discussed a little bit about flying vehicle issues by email and this awoke my interest in the subject again. So I redesigned the class and ended up with what I have now: A pretty simple flyer, yet that behaves as you would expect a flyer to. It does not have a rigid body, though - but is even lighter on CPU than the player itself.

Conclusion

I've got a few more major modifications that I have made, but time is running out and I think the above already illustrates my final point: ANYONE can learn this stuff (Torque :P) and go far, given sufficent time and dedication!

Thanks!
Page«First 1 2 Next»
#21
10/10/2006 (11:37 am)
@Stefan,

A Cylon is a race of man-made enemies (evolved robots), established by the original Battlestar Galactica - revived by the coolest show on TV!:

www.scifi.com/battlestar/

I have the first and second seasons on my IPOD:) I recommend it to geeks and non-geeks alike.

Here's the ship that yours resembles closely (the cockpit is nearly identical from what I can see):
scifi3d.theforce.net/downloads/BS_Galactica/Models/470_lge_cylonraider.jpg
#22
10/10/2006 (1:04 pm)
@Steve

That is funny! It does resemble the Cylon if you only think of the middle section. I have never seen or heard of that before though, gotta check it out! Thanks alot.
#23
10/10/2006 (1:31 pm)
@Stefan

I would like to know more and maybe see more screenshots from your project is there
any artfolio available somewhere ?
#24
10/10/2006 (2:26 pm)
@Alienforce
There is very little information and screenshots currently for our project because of the simple fact that we have no dedicated webmaster. Our website was terribly outdated when we shut it down.

I will make sure to include ingame video footage the next time I post a plan. :)
#25
10/10/2006 (2:53 pm)
@Stefan
Looking forward to see the video :)
Please let me know if you would need any help mirroring or hosting the files.
#26
10/10/2006 (4:19 pm)
@Stefan,

Do check it out. The new season just started on Friday and it just keeps getting better.

Steve
#27
10/12/2006 (12:20 pm)
Thanks for the great post, Stefan! And be sure to write a review of the Torque Game Engine if you haven't already.

Quote:2 years ago, had no programming experience whatsoever. I have always had problems with math and left school with quite bad grades. Still, it worked out just fine for me. I hear many experienced programmers saying Torque is a mess and hard to learn, and I can not help but wonder how much time they have spent with it until they dismissed it. ANYONE can learn this stuff (Torque :P) and go far, given sufficent time and dedication!

We love to hear stuff like this :)
#28
10/12/2006 (10:51 pm)
On our Ascension project, we've been using FMOD Ex since TSE (TAT) MS2 and I have to say I like it alot better than the general OpenAL functionality.

We haven't totally reimplemented everything that was originally a part of the game, but most of the core functionality has been ported and rewrote, including script hooks, as needed.

The one thing we want to do, but haven't spent time looking into, is the Sound Occlusion tie-in to BSP which is feasible with how things are done in Torque, but for right now, the design works
#29
10/13/2006 (1:26 am)
Hi Jeremiah,

I actually tried out the occlusion engine and could not really understand what the big deal with it was. CPU usage skyrocketed. So for now I am staying with simple range checks and lowpass.
Page«First 1 2 Next»