Torque 3D Open Source 3.5 Launch
by Dave Wyand · 11/13/2013 (4:48 pm) · 62 comments

Torque 3D Open Source 3.5 Launch

On December 19, 2012, we launched T3D v2.0 as the first new release under an open source MIT license. Then on May 9, 2013, we launched T3D v3.0, our second MIT release. Since going open source in September 2012, we’ve had over 1,400 people star and nearly 600 people fork our main repository.

Back in the Spring the Steering Committee proposed to the community a roadmap for T3D 4.0. Unfortunately, due to a number of reasons that have been outlined in the Committee’s meeting minutes that roadmap became unattainable. In the Fall the Steering Committee decided to package up what it could and release it as v3.5 to allow those that rely on the precompiled package to take advantage of the bug fixes over the last six months.
What’s New for 3.5
Torque 3D 3.5 is largely made up of bug fixes submitted by the community and Steering Committee, along with a couple of new additions. Here are some of the larger changes:Recast Integration
Daniel Buckmaster took his Recast/Detour resource and submitted it for inclusion into T3D 3.5. This allows you to generate navigation meshes and find paths across these meshes. You may read more about this work on the resources page (login to the GarageGames website required).
Blinn-Phong Shading
Ryan Mounts had posted a Blinn-Phong shading resource a couple of years ago and Ron Kapaun created the pull request. With v3.5 we’ve moved over to the Blinn-Phong technique which provides much improved specular highlights. You may see some examples of this in action on the resource’s page.
Oculus Rift and Viewport Corrections
In addition to updating Torque 3D to make use of the latest Oculus VR SDK that includes magnetometer-based drift correction, a standard method of obtaining the user’s IPD and chromatic aberration correction, Torque 3D’s rendering pipeline has been updated to better handle the side-by-side rendering required for the Rift. These fixes include all water rendering, reflective and refractive surfaces, as well as the glow and SSAO post effects.
These Oculus Rift fixes have the side benefit of also correcting a number of viewport issues with these systems that non-Rift games may have experienced. These objects and post effects now respect the boundaries of the current viewport and should not spill into the rest of the screen or cause other strange rendering artifacts.
In addition to these rendering changes, the scene culling routines have been improved to take into account the projection offset required for Oculus Rift side-by-side rendering. This means that small or distant objects (including terrain chunks) should no longer visibly pop into and out of existence at the screen periphery.
Improved Underwater Turbulence and Caustics
The turbulence and caustics post effects have been updated for both speed and to respect the boundaries of the current viewport. Caustics now also correctly turns off when leaving any body of water. With these changes the caustics shader has now been turned back on by default.
Gamepad and Joystick Dead Zone Correction
The gamepad thumbstick’s and joystick’s dead zone calculation was incorrect causing a jump in speed once you left the dead zone. This made the joystick range from 30% to 100% and had the player suddenly start moving. With this fix the joystick’s range outside of the dead zone now produces the correct 0% to 100% range.
Missing Decals
When using a relatively short visible distance in your level you could end up with decals disappearing at particular camera angles or not show up at all. The decal manager has been corrected to work under all circumstances.
Player Footstep Sounds and Dust
This one has been missing for a while and has been brought back. The default terrain materials have been set up once again to allow for footstep sound effects and kicked up dust.
Change List
Below is a list of all changes that have been made to the development branch of the Torque3D repository since the 3.0 release and are now part of Torque 3D 3.5.- Theora texture for cloned material fix (Issue 382)
- Elastic ease: incorrectly uses arcsin, should be sin (Issue 347)
- Clean up SFXSources in Player class (Issue 394)
- Allow T3D to compile against the latest version of FMod (Issue 364)
- Groundcover doesn't take terrain's rotation into account (Issue 330)
- Trigger a terrain signal when its transform is changed (Issue 407)
- Bullet Library v2.81 (Issue 434)
- Recast part 1: librecast (Issue 431)
- Recast part 2: PLC_Navigation (Issue 432)
- Recast part 3: wrapper classes (Issue 433)
- Expose ShapeBase blowUp method (Issue 452)
- Replacement of turbulence PostFX improves visual quality of underwater scenes (Issue 450)
- Let projectiles collide with objects without being armed (Issue 387)
- Increase terrain editing and painting brush max sizes (Issue 447)
- Particles (Issue 460)
- Created Header file for net.cpp (Issue 410)
- AIPlayer slows down at each path node (Issue 60)
- Var rename fix (Issue 476)
- There is no /shape/ subdirectory in art/particles any more (Issue 417)
- Allow audioData.cs.dso to execute (Issue 477)
- fixed camera code not checking for invalid/missing datablock (Issue 420)
- Added checks for valid pointers after locking (Issue 424)
- fixed pointer problems and guard in material files (Issue 423)
- compile fix for rift sdk ver 0.2.2 (Issue 422)
- DecalManager not in proper scene container (Issue 474)
- Gamepad and joystick dead zone calculation incorrect (Issue 468)
- Mounted image weapon light fix (Issue 494)
- Fix BitVector copy constructor (Issue 415)
- GameBase WhiteOut and DamageFlash defaults (Issue 395)
- ShapeBaseData::damage() wrong parameters (Issue 484)
- RenderMeshExample won't render transparent materials properly (Issue 470)
- Heap corruption caused by incorrect Torque Script naming (Issue 84)
- Particle Editor - New particles are not rendered correctly (Issue 365)
- Player dust support (Issue 491)
- Make GuiShapeNameHud frame and fill rendering useful (Issue 478)
- Oculus Rift Improvements (Issue 497)
- Don't require ClientMissionCleanup to exist (Issue 384)
- Oculus Rift Sensor Data Comparison Change (Issue 500)
- Frozen rigidshapes still generating collisionsets (Issue 393)
- Arm range fix (Issue 427)
- Viewport Fix for Glow PostFX (Issue 502)
- Viewport fix for PostFX and SSAO (Issue 503)
- Expand PostFX Viewport Options (Issue 504)
- PlaneReflector Support for Side-by-Side Rendering (Issue 505)
- Added default parameter to GuiMLTextCtrl::addText (Issue 466)
- Frustum Comparison Fix (Issue 506)
- GuiObjectView does not initialize mCameraRotation (Issue 507)
- Removing a duplicate CorrectMuzzleVector initPersistFields() entry (Issue 509)
- Vector parse order within Trigger::castRay is inconsistent (Issue 510)
- Redefinition of ::UUID (Issue 448)
- Managed Particle Location Fix (Issue 513)
- Blinn-Phong Specular Changes (Issue 515)
- Bug in TSShapeInstance::MaskNodeHandsOff (Issue 83)
- Update ReflectionManager on Scene Field Change (Issue 516)
- Turbulence respects viewport and projection offset (Issue 519)
- Default value for WaterFogData plane distance (Issue 520)
- Underwater Fixes (Issue 521)
- Update pxMultiActor.cpp (fixed) (Issue 518)
- Revert Player Buoyancy Change (Issue 522)
- TSMesh::castRay() and small collision meshes (Issue 485)
- Collada import leads to wrong data in DTS (with second UV or vertex paint) (Issue 230)
- RectF::intersectTriangle() -- wrong parameter for testing (Issue 512)
- Over Agressive Culling Frustum with Rift (Issue 525)
- ITickable supports object deletion (Issue 529)
- Ground cover banks with camera (Issue 527)
- NavPath may fail to find path with no error (Issue 530)
- ArrayObject numerical sorting is backwards (Issue 228)
- Negative VRAM for cards with greater than 2GB memory (Issue 226)
- Fix for simulated Oculus Rift (Issue 535)
- Update version reporting to 3.5 (Issue 536)
- Fix for Bullet frustum reference (Issue 537)
Where to Find Torque 3D 3.5
As always you may find Torque 3D over on GitHub. Here is a list of all repositories:- Main repository: Torque3D
- Documentation: Torque3D-Documentation
- Project Manager: Torque3D-ProjectManager
In addition to GitHub we also have our own ZIP package that combines the Torque3D repository with the updated TorqueScript documentation, the Project Manager, and compiled versions of each of the templates. This package is ideal for those that do not wish to compile Torque 3D on their own, and is available here:
In Closing
With another Torque 3D release now behind us I wanted to end with a long time community member’s game that was recently released into the wild. Steve Acaster’s Airship Dragoon was built with Torque 3D and is now available for sale from his web site www.yorkshirerifles.com/webpages/store.html.- Dave
About the author
Producer at GarageGames LLC
#2
11/13/2013 (5:35 pm)
Thank you very much guys!
#3
11/13/2013 (6:59 pm)
Great news! I just realised that that resource page is still the only real documentation on the navigation code, which is a bit poor on my part. I'll see what I can do about writing up a tutorial or something. There's not really a wiki section for tutorials like T2D has... should that be a thing, or should we congregate resources elsewhere?
#4
11/13/2013 (7:40 pm)
Great work to everyone for getting another release out!
#5
11/13/2013 (9:23 pm)
Very nice!
#6
11/13/2013 (10:00 pm)
Congrats on the release!
#7
11/14/2013 (12:05 am)
YES!!!
#8
11/14/2013 (2:01 am)
Awesome bug fixes and feature additions. I love that you've fixed the old viewport issue with boundaries!
#9
EDIT: After creating a couple of projects and spending a few minutes playing with it I've noticed one or two little things:
- I don't seem to get any player footsteps/puffs or step sounds etc. Does this need to be configured manually or should the basic terrain textures be working by default ?
- The grenade projectile now seems to "stick" to the terrain rather than bounce off it. I thought it might be a physics problem so made several projects with and without physics support. It made no difference.
Both issues were occurred using a Full Template project, inside the standard Empty Terrain mission.
11/14/2013 (2:40 am)
Some nice improvements here... awesome work guys!EDIT: After creating a couple of projects and spending a few minutes playing with it I've noticed one or two little things:
- I don't seem to get any player footsteps/puffs or step sounds etc. Does this need to be configured manually or should the basic terrain textures be working by default ?
- The grenade projectile now seems to "stick" to the terrain rather than bounce off it. I thought it might be a physics problem so made several projects with and without physics support. It made no difference.
Both issues were occurred using a Full Template project, inside the standard Empty Terrain mission.
#10
11/14/2013 (4:17 am)
Congrats on the release!
#11
11/14/2013 (5:18 am)
Yeah! Guys you rock like a Heavy Metal!
#12
11/14/2013 (5:43 am)
+1 Richard Hebblewhite :(
#13
The present stock player model doesn't contain proper keyframes, as discussed: www.garagegames.com/community/forums/viewthread/134669
Given that someone's already working on a replacement, and my values this end for the stock model were... less than stellar, to say the least, I left that portion out so that the modeler can fold their own values in when they submit it.
11/14/2013 (8:30 am)
Quote:
- I don't seem to get any player footsteps/puffs or step sounds etc. Does this need to be configured manually or should the basic terrain textures be working by default ?
The present stock player model doesn't contain proper keyframes, as discussed: www.garagegames.com/community/forums/viewthread/134669
Given that someone's already working on a replacement, and my values this end for the stock model were... less than stellar, to say the least, I left that portion out so that the modeler can fold their own values in when they submit it.
#14
Nice big changelog, and cheers for the shoutout for Airship Dragoon.
11/14/2013 (9:16 am)
Congratulations and many thanks to everyone involved, especially the members of Committee in this thankless task.Nice big changelog, and cheers for the shoutout for Airship Dragoon.
#15
A change was put in with pull request #387 that modified how projectile collision was handled. It looks like this change was clearing out the projectile's velocity prematurely, preventing a projectile from bouncing around. It is a shame that almost no one helped out with the Community QA Testing for v3.5 and found this earlier.
The fix appears to be straight forward. In Projectile::simulate() remove the zeroing of velocity under the if(hit){} check and move it to the same if(){} block where the explode() is called. I suspect the velocity should also be zeroed if the projectile is not ballistic.
- Dave
11/14/2013 (9:18 am)
Quote:The grenade projectile now seems to "stick" to the terrain rather than bounce off it. I thought it might be a physics problem so made several projects with and without physics support. It made no difference.
A change was put in with pull request #387 that modified how projectile collision was handled. It looks like this change was clearing out the projectile's velocity prematurely, preventing a projectile from bouncing around. It is a shame that almost no one helped out with the Community QA Testing for v3.5 and found this earlier.
The fix appears to be straight forward. In Projectile::simulate() remove the zeroing of velocity under the if(hit){} check and move it to the same if(){} block where the explode() is called. I suspect the velocity should also be zeroed if the projectile is not ballistic.
- Dave
#17
Issues sit around until someone creates a Pull Request with the changes. And unfortunately, very few community members take the initiative to do so. Waiting for the Steering Committee to do it is something we've been fighting against for a long time, and is a carry over from when GarageGames was completely in charge of what went into the engine.
Torque 3D will live or die based on how many engine developers from the community actively participate in its development. It is in your collective hands, not GarageGames.
- Dave
11/14/2013 (1:55 pm)
@Stefan: Why didn't you submit a Pull Request with the fix? Why wait for someone else to do it when I know you're a capable programmer?Issues sit around until someone creates a Pull Request with the changes. And unfortunately, very few community members take the initiative to do so. Waiting for the Steering Committee to do it is something we've been fighting against for a long time, and is a carry over from when GarageGames was completely in charge of what went into the engine.
Torque 3D will live or die based on how many engine developers from the community actively participate in its development. It is in your collective hands, not GarageGames.
- Dave
#18
for a great new release!
and it doesnt really matter how many ppl dislike that fact but that is the way of open source.
There are Commecial Projects and there are/will be open source projects
but they are not going to listen to the name of Torque3D
and that is just the way it is.
Torque3D MIT - will probably get updated from time to time but now since 3.5 is out - the bridges are already starting to brake.
Speaking out the unspeakable is not always wise but sometimes its a must.
One more time thank you
Dave, Michael, Ron, Chris and GG
and a big one to the Community Contributions
3.5 is a great Release!!!
11/14/2013 (2:09 pm)
Thanks @The Steering Commiteefor a great new release!
Quote:Torque 3D will live or die...Torque3D MIT - already gave birth
and it doesnt really matter how many ppl dislike that fact but that is the way of open source.
There are Commecial Projects and there are/will be open source projects
but they are not going to listen to the name of Torque3D
and that is just the way it is.
Torque3D MIT - will probably get updated from time to time but now since 3.5 is out - the bridges are already starting to brake.
Speaking out the unspeakable is not always wise but sometimes its a must.
One more time thank you
Dave, Michael, Ron, Chris and GG
and a big one to the Community Contributions
3.5 is a great Release!!!
#19
I guess I need to sit down and spend some time with GITHub, because coming from SVN I've got no idea what a Pull Request is or why I would want to submit one. :) I thought what I did was how it was done.
I'm guessing it's a way for someone like me to submit a fix and make it easy for someone (like in the steering commitee) with the right permissions to just put it in.
11/14/2013 (2:56 pm)
Quote:
@Stefan: Why didn't you submit a Pull Request with the fix? Why wait for someone else to do it when I know you're a capable programmer?
I guess I need to sit down and spend some time with GITHub, because coming from SVN I've got no idea what a Pull Request is or why I would want to submit one. :) I thought what I did was how it was done.
I'm guessing it's a way for someone like me to submit a fix and make it easy for someone (like in the steering commitee) with the right permissions to just put it in.
#20
Coming from svn myself (and still using it our end internally): consider it like a commit with a handshake step.
You commit to your personal github hosted branch, then hit the pull request button on the web-page, which does a dif with whatever branch you have selected for Base and Compare and pushes all of em in a batch.
At that point, it's queued up for merging their end once they authorize it.****
**** skipped more than a few steps, like checking out the development branch ect to keep the general concept straightforward.
I'd recommend sourcetree for that, by the way. Takes a lot of the voodoo out of it.
11/14/2013 (3:37 pm)
Quote:I guess I need to sit down and spend some time with GITHub, because coming from SVN I've got no idea what a Pull Request is or why I would want to submit one. :) I thought what I did was how it was done.
Coming from svn myself (and still using it our end internally): consider it like a commit with a handshake step.
You commit to your personal github hosted branch, then hit the pull request button on the web-page, which does a dif with whatever branch you have selected for Base and Compare and pushes all of em in a batch.
At that point, it's queued up for merging their end once they authorize it.****
**** skipped more than a few steps, like checking out the development branch ect to keep the general concept straightforward.
I'd recommend sourcetree for that, by the way. Takes a lot of the voodoo out of it.

Torque Owner Terry Barlow
Default Studio Name
tbarlow