Torque 3D 3.0 Roadmap, Development and You
by Dave Wyand · 01/10/2013 (1:46 pm) · 47 comments

Torque 3D 3.0 Roadmap, Development and You
Back on September 20, 2012, we launched the MIT licensed version of Torque 3D on GitHub. This was based on the T3D 1.2 commercial version with some changes to accommodate the MIT license. Then on December 19, 2012, we launched the first new release under open source, version 2.0. With those two milestones now behind us, the Torque 3D Steering Committee has been looking to the future.One of the Steering Committee’s duties is creating and revising Torque 3D’s roadmap. We have a meeting at least once a week to discuss Torque 3D in general, and the near term roadmap has been a formal and informal topic for the last six weeks. This past Monday January 7 was our first meeting of 2013 where we spent four hours going through each submitted Pull Request and deciding what topics should be included in our first roadmap. In this blog, we present to you, the community, our thoughts and ideas on the first roadmap of 2013 for your interest and to comment on.
Community Submitted Additions
The Torque 3D Steering Committee is made up of Ron Kapaun, Michael Hall and myself. Out of the three of us, I am the only one that is working on Steering Committee items full-time, although both Ron and Michael put in much more than the required time. Occasionally we’ll have a guest employee from GarageGames help us with T3D (and T2D) when they are between service contracts. That is the extent of the official team working on Torque 3D today. As with all open source projects we rely on you, the community, to step up and help make Torque 3D the best open source game engine.
A prime example of a community submitted change that we would like to include in T3D 3.0 is the TorqueScript optimizations by James Urquhart. These optimizations include hundreds of changes and touch nearly all C++ code that deals with TorqueScript. Because of these sweeping changes I’ve asked for all of your help in testing them before merging the changes into our development branch.
Not all submissions from the community need to be as large. In fact, it is easier to integrate and test smaller, more focused changes. If you have any work that you feel could benefit the community as a whole please put together a Pull Request on GitHub so that we may review it. This could even include changes from a resource you have previously submitted to the GarageGames site. If you’re ever unsure about what and how to submit changes, feel free to contact any one of us.
The Steering Committee’s vision as outlined in our Charter is to make the best core version of Torque 3D that others may build upon. To this end we may not be able to accept all submissions into our development branch, but we will consider and review all submissions.
Bug Fixing
Fixing bugs in the code base is something that will always be on-going. And as discussed above, the Steering Committee relies on the community to both submit and fix found bugs. Submitting a fix for a bug you found is great. Submitting a fix for a bug another community member found is even better. As with all open source projects, the Torque 3D community is now our team of programmers that can go through lists of issues, test and then submit fixes as Pull Requests.
General Editor Improvements
There are a few resources on the GarageGames site that help to improve Torque 3D’s editors that the Steering Committee would like to integrate for T3D 3.0. These include the improved terrain smoothing tool, Konrad’s rule-based layer painting for terrains, and ScatterSky colorization.
If there are any editor improvements from the GarageGames site, or any that you’re making use of in your own project that you would like to share, please generate a Pull Request or talk with one of us. Together we can continue to improve Torque 3D’s editor experience.
Remove Interior (DIF) Support
Support for the DIF file format, and “interior” objects in general has been announced as depreciated for some time. They are not fully supported by the engine and the tools to produce them have not been updated for some time. With T3D 3.0 all interior object support will be removed from the engine and all associated bit masks will be recovered.
Support for 3rd Party Input Devices
Supporting input devices beyond the mouse and keyboard, such as joysticks and gamepads, is hard coded in Torque 3D and is extremely difficult to extend. Recently, there have been some new input devices for the PC that have been released, or will be released soon, and have the potential for wide distribution. There is also the potential to work with these device vendors and have Torque 3D share in the publicity of their launch.
To this end we will be looking to revamp some of the Windows input event code to make it easier to add new input device support for T3D 3.0. The specific devices that will be covered in this release include:
Razer Hydra
If you're not familiar with it, the Razer Hydra has two controllers (one for each hand) that can determine their absolute position and rotation in space. It uses a magnetic field generated by a base station to obtain these results. It also has enough buttons, triggers and thumbsticks to be used in any gaming situation. This device and its SDK are available today.
Leap Motion
This small device can detect your hands and fingers over it and report on their absolute positions and rotations. It is a new way of interacting with applications and has a lot of potential. The Leap Motion is not yet available (they are taking preorders on their web site) but they have been sending out hardware and the SDK to developers. I’ve had an early developer version of their hardware sitting on my desk for the last couple of months and it is pretty cool to use and program against.
To support these new (and future) devices a new InputEventManager will be put in place and Torque 3D’s input messages will be expanded to support absolute position and rotation data. A new ExtendedMove class will also be made available (and optional) to pass this information from the client to the server, much like other input devices.
Template Reorganization
The current project template structure has been around for a long time in Torque 3D. An overhaul in how the TorqueScript files and game assets are organized has been discussed for some time and occasional tweaks have been made over the years. For T3D 3.0 we are looking to merge the template core and game files to make it easier to understand their flow and relationship.
We are also looking to simplify the project templates that are available to only two: First Person Shooter, and Basic. The PhysX versions of the templates will be removed in favor of the new module selection system that will be implemented in the Project Manager (see below).
Removal of Hard Coded File Pathways
There are a number of hard coded file pathways and assumptions within Torque 3D’s C++ code. These source code paths assume a particular directory structure for a project and will hinder the template reorganization we would like to have happen for T3D 3.0. All hard coded file paths will be converted to TorqueScript preferences or handled by other means where possible.
Project Manager Update
The next release of the Project Manager will include a new module selection system as part of the project generation stage. This will allow us to pick and choose which source code modules to include at any time and automatically update a project’s configuration files. The initial set of optional modules will include:
- Bullet
- PhysX
- Fmod
- New input devices such as Razer Hydra and Leap Motion
- Move class types (standard, hifi, new input device extended version)
- Web deployment
- Minidump
Shader Library Expansion
Some new postFx shaders will be included in T3D 3.0. The ones we know about right now are:
- Underwater caustics and turbulence
- Camera based motion blur
PostFX Editor
The first steps to revamping the current postFx setup window and making it a first class citizen (available as an actual editor) will be made for T3D 3.0. This will include moving away from the hard coded GUI and making it easier to add new postFX to the editor at any time.
Documentation Update
This is an on-going effort that can really use the help of the community. If you are interested in helping to expand Torque 3D’s online and offline documentation please get in touch with one of the Steering Committee members.
Torque 3D 3.0 Timeline
The Steering Committee is aiming to have three or four releases a year, where a release is defined as merging all development branch changes into the master branch. To that end we are looking to a March 2013 release for T3D 3.0.Working backwards from the last week of March, we need to account for a couple of weeks of Quality Assurance testing and any work that comes out of that testing. That leaves approximately 1.5 to 2 months from now to get everything into the Torque 3D development branch that we wish to include in the 3.0 release. That really is not a lot of time and we could really use your and the community’s help to make this another great release.
Linux Client IndieGoGo Campaign
As part of the T3D 4.0 release we have planned for the summer of 2013 it would be great to include Linux client support. As many of you are aware, we currently have an IndieGoGo campaign running to pay a developer to upgrade Torque 3D to support a full Linux client.What you may not be aware of is we have recently updated the campaign rewards. Anyone that contributes $25 or more to the campaign will receive their own copy of the award winning game Frozen Synapse. This game was made with the Torque Game Engine and the developer, mode7, is using Torque 3D for their next game. You can read their blog here about why you should support Torque 3D’s Linux campaign.
Two additional rewards have been added. With a contribution of $100 you will receive a 1 hour training session with David Montgomery-Blake or another GarageGames employee to help you solve your game development issues. And for a $250 contribution you will have a 1 hour session with our very own CEO, Eric Preisz.
Please share the Linux client campaign with your friends and fellow game developers and encourage them to participate. Having full Linux client support will help with all platforms that use OpenGL for their graphics pipeline.
- Dave
About the author
Producer at GarageGames LLC
#42
@Anthony - It's been hard to change people's mindsets on this, but it's not did YOU reach your goal, it's did WE reach our goal.
MaxGaming, for example, it giving it a go with their Kickstarter campaign to port Torque 2D to Android. I backed it and I hope you did too.
T3D is in as much of the community's hands as it is GarageGames. We are continuing to invest in T3D, but not nearly on the level that it would take to support many, many different platforms. Certainly not the cost that it would take to develop a port to HTML5(which is akin to starting from scratch on a moving target). If the world wants an open source engine that supports all plaform, we will continue to invest and be at the table, but we won't be able to do it alone. If the world doesn't want it, then it won't happen.
I can tell you that internally we are developing a Linux port (at a bit of a snails pace since we didn't fulfill the IndieGoGo campaign) and we will be posting that to GitHub soon so that others can help.
I can also tell you that in certain cases we are even competitor tools. For us, it's the right tool for the right job. The world has certainly changed here at GarageGames.
Listen, I hope this isn't sounding argumentative. Torque 3D and Unity are sort of in a different class. For example, if you don't need source (which in most cases of an indie game you don't)
03/06/2013 (9:29 am)
"It is March did you reach your goal?"@Anthony - It's been hard to change people's mindsets on this, but it's not did YOU reach your goal, it's did WE reach our goal.
MaxGaming, for example, it giving it a go with their Kickstarter campaign to port Torque 2D to Android. I backed it and I hope you did too.
T3D is in as much of the community's hands as it is GarageGames. We are continuing to invest in T3D, but not nearly on the level that it would take to support many, many different platforms. Certainly not the cost that it would take to develop a port to HTML5(which is akin to starting from scratch on a moving target). If the world wants an open source engine that supports all plaform, we will continue to invest and be at the table, but we won't be able to do it alone. If the world doesn't want it, then it won't happen.
I can tell you that internally we are developing a Linux port (at a bit of a snails pace since we didn't fulfill the IndieGoGo campaign) and we will be posting that to GitHub soon so that others can help.
I can also tell you that in certain cases we are even competitor tools. For us, it's the right tool for the right job. The world has certainly changed here at GarageGames.
Listen, I hope this isn't sounding argumentative. Torque 3D and Unity are sort of in a different class. For example, if you don't need source (which in most cases of an indie game you don't)
#43
I wrote because I wasn't sure where the T3d development was moving. I am super excited to hear about Max Gaming's
ANDROID KICKSTARTER
And will certainly contribute. In fact this is the first I have heard of the Android kickstarter. But, to be candid no other Torque related kickstarter has gained much momentum. Which is why I was wondering about the current direction.
Linux is great and alll, and will be a favorite to all C.S. students out there, but that is the end of the audience. You won't gain the same amount of eyes as you would by including an Android layer. Android gives you a starting point with phones, tables, chrome book, kindle & ouya. Similarly supporting iOS (iPhone iPad) for T3d seems like a logical step.
The main reason I encourage those platforms is because they have an existing distribution system for developers. We all know how hard it is to get an audience for a product, as an indie our best bet is to distribute on all possible platforms; iTunes, Google Play, Amazon apps and so on.
Unity addresses these issues, don't get me wrong I love Torque, but I want to see it stay relevant as a indie tool.
03/06/2013 (11:39 am)
Nods, I wrote because I wasn't sure where the T3d development was moving. I am super excited to hear about Max Gaming's
ANDROID KICKSTARTER
And will certainly contribute. In fact this is the first I have heard of the Android kickstarter. But, to be candid no other Torque related kickstarter has gained much momentum. Which is why I was wondering about the current direction.
Linux is great and alll, and will be a favorite to all C.S. students out there, but that is the end of the audience. You won't gain the same amount of eyes as you would by including an Android layer. Android gives you a starting point with phones, tables, chrome book, kindle & ouya. Similarly supporting iOS (iPhone iPad) for T3d seems like a logical step.
The main reason I encourage those platforms is because they have an existing distribution system for developers. We all know how hard it is to get an audience for a product, as an indie our best bet is to distribute on all possible platforms; iTunes, Google Play, Amazon apps and so on.
Unity addresses these issues, don't get me wrong I love Torque, but I want to see it stay relevant as a indie tool.
#44
These are the things I think T3d would need:
- navigation mesh (using the opensource library recast)
- ai behaviour trees (using the opensource library libbehaviour)
- flowgraph editor/visual script editor for game logic, material editor, ai editor, etc. (like kismet in UDK)
- higher res textures for the sampels to make the engine look better, ore atractive :)
- IK foot planting for all sort of characters (UDK, CryEngine and Unity has this)
- sparce voxel octree real time global ilumination :D (Unreal Engine 4 and CryEngine 3 has it and found an opensource OpenGL test project for inspiration)
I know this is a lot of work and I'm a 7+ years games programmer and could give some help with ideas, reviews and bits of code in my spare time if wanted, as I've run from UDK to CryEngine 3 Free to Unity and finally to T3d as it seems really promising :D
Best Regards.
03/21/2013 (6:19 pm)
Hello everybody,These are the things I think T3d would need:
- navigation mesh (using the opensource library recast)
- ai behaviour trees (using the opensource library libbehaviour)
- flowgraph editor/visual script editor for game logic, material editor, ai editor, etc. (like kismet in UDK)
- higher res textures for the sampels to make the engine look better, ore atractive :)
- IK foot planting for all sort of characters (UDK, CryEngine and Unity has this)
- sparce voxel octree real time global ilumination :D (Unreal Engine 4 and CryEngine 3 has it and found an opensource OpenGL test project for inspiration)
I know this is a lot of work and I'm a 7+ years games programmer and could give some help with ideas, reviews and bits of code in my spare time if wanted, as I've run from UDK to CryEngine 3 Free to Unity and finally to T3d as it seems really promising :D
Best Regards.
#45
I'm also working on a couple of new shaders for Torque3D, that may be used within a future official release (I'll release them publicly regardless). One of the shaders I'm working on right now is a new water/ocean shader. I'll create a thread soon on some of the progress.
03/27/2013 (5:39 pm)
I'd also like to request that the Substance Designer/Material system be integrated within Torque3D :)I'm also working on a couple of new shaders for Torque3D, that may be used within a future official release (I'll release them publicly regardless). One of the shaders I'm working on right now is a new water/ocean shader. I'll create a thread soon on some of the progress.
#46
03/27/2013 (6:00 pm)
That would be a nice add-on feature like the PhysX hooks. That way anyone without a license would not be impeded.
#47
05/18/2013 (11:11 pm)
This is cool, but please update your setup tutorials to the latest version, because the current one don't match up in procedure. 
Employee Dave Wyand
We were aiming for the end of March for the next release so we're not quite there yet. However, in our Steering Committee meeting yesterday it sounds like we'll be going for a beginning of April release instead. I'll put more details in the meeting minutes on the forums.
As for all of those platforms you have mentioned, the Steering Committee itself is not working on any of those as you see outlined in the plan above. As an open source project we rely on our community to be our development team, in addition to the three of us. So far, no one has stepped forward to help out on those platforms.
I think our biggest wins right now are with the two platforms we already have some support for in the code base: Linux and OSX. The Linux IndieGoGo campaign was an attempt at getting in Linux support as quickly as possible, but the campaign didn't reach its goal. And I know some community members began working on OSX support but they have been quiet for quite a while.
We will have to see what the next development cycle brings. The Steering Committee will release the proposed v4.0 plan for the community to comment on sometime around the v3.0 launch. Feel free to stop by and provide your own thoughts when that blog goes out.
As for moving to Unity, if that works best for your games then I think that's great! It is much more important to release a game than what technology you use. We'll still be here if you decide to use Torque 3D for one of your applications. :)
- Dave