Recentlty got my hands on Torque3d. As a guy that always liked to evaluated and look through the details of technology, i wanted to know what where the major differences between Garage games new engine and Unity3d which generates a lot of buzz theses days.
A Guided tour of Torque 3d
After installing the software, the first thing I fired up was the documentation. One of the major disadvantages the Torque engines had, was documentation. The documentation on the tools are pretty solid. Everything is explained from World editing, Terrain editing, Material and such in fine enough details. Scripting is also well detailed, but you get access to TDN (Torque Developper Network) and can have lots of old documentation that proves to be still usable (At least the TGE and TGEA are pretty close to Torque3D).
The Torque toolbox is the basic launch pad of the application. From there you can fire up the World Editor, Gui Editor and other shortcut you would configure down as Editor Quick Links. What I find easier to understand than Unity is that each level is really well presented in project Levels. In Unity you can put your map somewhere down into lost directories and if you change their locations you have to re-register them for builds. As such Torque3D wins by having a solid directory structure. By contrast in Unity3d you have to be carefull. If you want to load dynamic data you have to put the dynamic data into a folder called “Resources”. There can be a multitude of /Resources folders scattered around, good luck searching for an asset and thats why they introduced the Search function in Unity 2.6.
Here is a listing of all projects inside the /Projects folder. When you ask for a new project a series of dialogs will help you create it with certain templates that can serve as basis for your game. For the moment, only Full exist and serves as a basic 3d shooter project.
In this view we can choose the project build (in case you change the source code in C++ and recompile), the project levels and the various buttons that can launch the editors quickly. The Cleanup button is very handy. When you want to extend the engine, you will drop your code into a specific folder : C:\Torque\Torque 3D 2009 SDK 1.0\My Projects\<project name>\source. After adding new files, you will click on clean-up so that the visual studio files are automatically set up with a structure akin to yours. These files that you add extends the engine and are part of the DLL that will ship (for windows) with your game.
Extending the code source
Support for shader tools
As written in TDN, since TGEA, ATI and Nvidia shader tools are supported. Unity3d has yet to permit us to edit and debug shaders in their own shading language. This is a major plus, because those tools are industry proven and used.
The world editor feel strange after playing with Unity for the last 6 months. When you understand the concepts behind Datablocks in T3D, you realize that T3D is much more open to custom resource management. Resources can be saved/loaded with a clean API. In Unity3d, there is no way to add a new unique resource type. You have to invoke Mono to write/read everything. T3D have a clean API that is geared for games and when you write code you know it will just work on all platform, just look at the engine, and do the same !
Object Edition is similar to Unity3d. Transform, Position and other data is there in the inspector, I wish that T3D would have given better Vector edition, right now everything is on the same line. On that point, I miss the dragging on Integer/float values in Unity3d.
Objects and textures are updated instantly inside the editor. In Unity3d, you have to fire up the game in some ways to see models play animations. In Torque3d, you can visualize texture and animation changes instantly. Change the 3d models scale and other properties in real time inside max, hit save and torque will update it (similar to Unity). Unlike Unity, torque can let you script animation sequence importation and model constructions. As such, you can share multiple biped animations for example for all human models, Unity support for this is rather blurry. There is mention in the docs that you can do something like that, but I never was able to sort it out. You should anyways watch the video here to check the differences
As of now, I am still in my first week of checking out T3d. I am very happy with the speed of the engine, its facilities. There is support for basic things in a game such as precipitation, clouds, sun, night/day cycle and such that you have to implement from scratch in Unity3d. Both are making good headways in letting us do great games. I will probably add a tutorial or two, once I get the things sorted. Professional developers should carefully check it out against Unity3d.