Game Development Community

Is Torque X a native .Net library written in C#?

by Paul Modzelewski · in General Discussion · 08/31/2006 (8:01 am) · 7 replies

Hi all,

On the Torque X page, it states that GarageGames is porting key parts of their library to XNA, does that mean you are creating a native .Net library in C#, which will be compatible with the existing Torque editing tools?

I'm assuming this is this is the case, but I'm worried it might be a Managed wrapper around the existing binaries.

I've already moved all my game development to .Net. If GarageGames had a .Net gaming library I would have bought it a year ago. Right now there isn't a single (commercially-viable, well-supported, used in the field) game engine written in C#/.Net. Awareness and use of C# in the gaming industry has been slowly building for the last few years, but the release of XNA Express shows that M$ is putting their weight behind it for real, and as usual, they've left some holes that smaller companies can make a fortune filling (which is a good thing, IMHO).

If Torque X is what I hope it is (or fairly even close), I'll send you a check today if I can get into the official Beta program!

Thanks.

#1
08/31/2006 (8:36 am)
Put you email in the Beta Subscription box on the Torque X page
#2
08/31/2006 (11:17 am)
1) TorqueX will be entirely managed code (it has to be to work on the 360).

2) Our goal is to create a completely tool compatible engine. That means you will be able to export from the TGB tool and load up the scene on TorqueX (on your 360 or your pc). On the 3D side we have more planning to do but we certainly are looking at having common tools between XNA and TGE there too. Once you have a TGB scene or 3D mission created, the scripting side will be different. On launch XNA will use C# for scripting only (actually, I believe any .NET language can be used, but only C# will work with the XNA api). The C# API will resemble the TorqueScript api, but will by no means be identical. Moving from TGE to TorqueX will be a port, but most of the time you will create your game for one platform or the other and won't be trying to port back and forth.

3) In terms of engine design, I'd say it's one part port of TGE, one part refactor of TGE, and one part new stuff (future TGE?). E.g., the action map design came over pretty much in tact whereas the lower level input system was written from scratch. TorqueX is completely component based which will be a new feature for Torque (see my old .plans for comments on the long overdue component system). The TorqueX object model is a fairly major refactor of TGE objects, but you will definitely recognize it (some of the names have changed -- e.g., instead of SimObject we have TorqueObject). In general, TorqueX objects will be much lighter than TGE objects but will have the flexibility to add all the features you want.
#3
08/31/2006 (12:03 pm)
Thanks Clark, you made my day. This is exactly what I've been hoping for. Sounds like you're taking full advantage of this semi-clean slate as well.

I have tons of questions, but I'll spare you the brunt of my onslaught.

I've subscribed to the Beta mailing list, but is there anywhere I can get more detailed technical info on Torque X? I'd really like to learn more about the component system in general and how it interacts with user code.
#4
08/31/2006 (12:35 pm)
Paul, we definitely don't want to say too much now since things are still in a state of flux and we don't want to promise anything we won't deliver on (we don't even want to promise anything that we won't deliver till after launch). But I can say a couple words about how the component system works.

Right now in TGE if you want to create a vehicle you create a vehicle object. If you want to create a turret you create a turret class (using a resource off the site). If you want to create a vehicle with a turret you...well, you create a new object type by copy pasting code from both objects. If you want to replace the rendering layer in TGE, you end up re-writing the rendering code in a dozen or so objects.

With the component system, if you want to create a vehicle you add a rendering component, a collision component, a sceneObject component, a mover component, and a vehicle driving component. If you want to create a stand-alone turret you add a rendering component, a collision component, a scene object component, and a turret control component. If you want to create a tank you just add the turret control component to the vehicle. If you want to change the rendering system in TorqueX, you re-write your rendering component code and maybe change a few special purpose objects here and there and you are done.

That is admittedly a simplified view of things. In particular, figuring out how all the components interact will not always be as simple as throwing them into the same component container, but we will be working to make it as simple and automatic as possible as often as possible.
#5
08/31/2006 (7:38 pm)
How are you planning on doign the closed beta? Do current owners of TGE get priority?

And will Torque X take advantage of TSE technologies when you implement the TGE side of the port?
#6
08/31/2006 (8:15 pm)
If the Engine is in any sort of useable state, Clark, I'd love to talk about me using it sooner rather than later. I'm a .Net Alpha geek, and the development of my game has reached the point where I need to start replacing the GDI+ GUI I used to develop the underlying simulator with something ready for primetime.

Short story long, if I had a finished .Net 3D engine right now I couldn't be done for at least six months, so I'd have no problem hitching my wagon to an engine in beta or pre-beta that's still in flux.

Can I email you more info on me and my project at your Brave Tree address, or is my request outside the realm of possibility for a guy who just popped up on the forums today? Regardless, thanks for the detailed answers to my questions and for being generous with your time.
#7
08/31/2006 (11:41 pm)
Ismail, we haven't decided on a beta plan yet. We are trying to leverage all our tech but not sure how much TSE will be in the release at this point.

Paul, go ahead and send me your info. I will probably just hand it off to the person organizing the beta plans, but we are certainly always trying to evaluate what resources we have, be they for testing or whatnot.