Game Development Community

dev|Pro Game Development Curriculum

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
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

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

#21
01/11/2013 (11:38 am)
@J0linar:
I'm all for merging the changes from the Community Edition into T3D MIT, so long as they follow our core vision. All that requires is for the contributors to the Community Edition to also submit their work to our GitHub repository, which falls under the Community Submitted Additions I talked about in my blog. If they can do that before March, then their additions will be part of 3.0.

I wouldn't count on the owner of the Community Edition subversion repository to do all this. It will depend on the individual contributors to the project, who own the actual changes.

- Dave
#22
01/11/2013 (1:43 pm)
@Dave Wyand... Great news about your plans with the Rift & Hydra (I think they will work well together)

@All interested in the Rift, the forum where people are discussing this ground breaking new VR product can be found here (along with all things VR):
www.mtbs3d.com/phpBB/viewforum.php?f=140

The creator of the Rift is a long time member there.

The future is looking exciting for T3D; well done to everyone who is working on keeping this fantastic engine updated :)

Hewster
#23
01/12/2013 (6:48 am)
O~~~MY GOD!!!..T3D 3.0? really?
#24
01/12/2013 (7:35 am)
I 'm looking forward to the cross-platform :)
VR Anaglyph effects.
#25
01/12/2013 (9:16 am)
I 'm looking forward to the cross-platform :)
VR Anaglyph effects.
#26
01/14/2013 (1:03 pm)
Motion tracking via Kinect like devices would be a nice addition. There are 2 on the market. From from Microsoft and one from Asus. Same chipset.
#27
01/15/2013 (9:11 pm)
Looking forward to the template refactor.

I'm going through the Empty template now in an attempt to create my own 'lean-and-mean' barebones template but the sheer number of files to sift through is overwhelming. The core directory in particular is a mess; there are just lots of useless tidbits that have accumulated over the years.
#28
01/15/2013 (10:02 pm)
Hey,

Will we be able to get the alpha value of a material at a given point of terrain with the editor improvements? Will foliage be improved or affected? Will you be able to create more than one 'Forest' object? Essentially, will there be any improvements for large-scale maps that has been missing for a very long time?

Thanks
#29
01/16/2013 (8:04 am)
@Frank, that will come along eventually as well. This is why we need people to step up and help out. There were a number of things that we discussed but, (the three of us) just did not have time to work into the next release.

@Michael, I am looking into a few of those issues on my own and again, when we get time to address them, we will. Or someone (like yourself maybe?) could jump in and get it started.

You all have to remember, we are community driven now. Torque 3D is no longer updated or worked on by Garage Games. It's me, Dave Wyand, and Michael Hall as well as a couple of folks that have taken up some other tasks. We need people to jump in and start helping out if we want more features, fixes and requests added to a release. Torque 3D is a huge beast! The more help, the more we all get done and benefit from.

Ron
#30
01/16/2013 (8:37 am)
"Torque 3D is no longer updated or worked on by Garage Games"

Just to clarify:

That's not actually the case. If people are working on paying contracts in Torque 3D, they will be submitting bug fixes and updates based on the terms of the contract. If they aren't on contract, I will put them on our open source engines until they are on contract. For example, our TD and our Sr. programmer are working on T3D right now. Another team is using Torque 3D as a display system. Many of their fixes have led to resource updates. Several other developers and QA are working on the T2D release.

I don't want to diminish the message that community support is the underpinning of the system here, but I also don't want people to think we've gone open source just to rid ourselves of T3D. What we've worked hard to do is to find a long term system that will support current and future developers in a sustainable way.

The more community support we have, the more popular the engine will be. The more popular the engine will be, the more leverage we have to contribute resources to the engine either through contract negotiations or through revenue we earn on the service work we are doing.
#31
01/16/2013 (6:51 pm)
Eric,

Sorry about that, you are absolutely correct. I just wanted to point out that the vast majority of improvements will come from the community as a whole. We are in the middle of shift for this community. Formerly, we as users waited for Garage Games to fix what we felt was wrong. We were awaiting the next version of the engine that Garage Games sent out. This is no longer true. The community now has a much greater responsibility for changes and fixes. That is the point I wanted to make. Sorry for making it seem as though you were dropping it.

Ron
#32
01/17/2013 (8:29 am)
@Ron - No problem. I understand the message you are trying to communicate.

Put simply, GarageGames isn't in the drivers seat. The committee's job is to support and represent the community...so ultimately, they, collectively, are the ones who control the destiny of T3D.
#33
01/20/2013 (10:41 pm)
Does Michael (or anyone, for that matter) have a work-in-progress repo of the template refactoring work so far? I know Michael discussed his plans here: http://www.garagegames.com/community/blogs/view/22041 but I'd like to take a look at what (if anything) has been done so far.

I've spent the last few days delving into the Empty template and it's really shocking how much bloat has crept into the /core/ folder over the years. A fresh project built using the Empty template currently uses ~34 MB, of which ~25 MB resides in the 'core' directory! All sorts of scripts have been dumped into /core/ that aren't necessary/game-specific, several megabytes worth of default textures/meshes that should be in /tools/ (why, exactly, does every project need to ship with all 6 default skies?!), etc.

It looks like the current plan for 3.0 is to provide two new templates and merge the /core/ and /game/ folders which is a fine idea but the 'core' folder needs to be thoroughly cleaned up first.
#34
01/21/2013 (9:05 am)
@Chris: at this time no. All of my changes have been done on a personal local repository. I'm hoping to get things in a more public space soon and have the new Templates available to merge into the development branch by the end of the month. That would give a good month and a half for the community to critique and offer desired changes in the form of pull requests before pushing them to the master branch for the next release. That's the plan anyway.

#35
01/21/2013 (9:35 am)
@Michael: Sounds good. Reworking the templates is a big undertaking and based off of what I've seen in just the Empty template I can safely say I don't envy you in this case.

#36
01/27/2013 (7:07 pm)
æ¯æ garagegames ååºçè´¡ç®ï¼
#37
02/15/2013 (1:01 pm)
Out of curiosity, will Torque3D be implementing the code structure changes that Torque2D MIT had?
#38
02/15/2013 (3:40 pm)
@Peter C: what specifically are you looking for? They are both two totally different environments.
#39
02/21/2013 (6:36 pm)
@Michael: Mainly just the changes in where the engine code was placed involving things like pulling things out of the (in this case) T3D folder in a similar fashion to the T2D reorganization of the code. I'm asking because I want to be able to plan ahead with a few things I'm considering implementing and I would like to know if Torque2D is a good indicator of how Torque3D will be changed so I can plan ahead.
#40
03/06/2013 (8:44 am)
It is March did you reach your goal? I know some novelty stuff like the Razor support was added, but to be honest that is fluff. I would like to know if new Platforms are expected ANDROID, Windows Phone, HTML 5. Something that will show developers that you can build once and deploy everywhere. This is hugely important and has driven me to work with Unity. When will this be addressed?