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.
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:
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.
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.
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:
New input devices such as Razer Hydra and Leap Motion
Move class types (standard, hifi, new input device extended version)
The setup of the optional module list will be the form of a data file, such as XML, so you may extend it for your own needs.
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
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.
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.