Game Development Community

dev|Pro Game Development Curriculum

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


www.gnometech.com/torque/images/blog-2013-11-13/2013-11-13-Header.jpg

Recast/Detour path finding through an invisible station mesh


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.


www.gnometech.com/torque/images/blog-2013-11-13/2013-11-13-Forks.jpg



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:

With the release of Torque 3D 3.5 all changes in the development branch have been moved into the master branch.

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:


Complete Torque 3D 3.5 zip package



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

#21
11/14/2013 (3:56 pm)
This looks great and I can't wait to check out the improvements to the rift side as well :)

Great work to everyone I can't wait to test it all out
#22
11/14/2013 (4:00 pm)
Just FYI, the boombot in the RTS tutorial leaves footprints.
#23
11/14/2013 (4:05 pm)
@Azaezel: That makes sense. Thanks, I appreciate it!
#24
11/14/2013 (10:22 pm)
My Congratulations!Very glad for you !
P.S. I am wrot about a Handbook for Q-testers (post Eric Preisz's "GarageGames Game Development Handbook"). Plaese , make it for effeciency you a work. Need accurate and step-by-step manual for testing a build of T3D-MIT.

And the little remark : T3D-MIT it's now official a name TorqueEngine3D,aren't ?

Steve Acaster: congrat too,but the privat stores quickly die.
Torque's developers require self and common the store for sale, with a links to (for example) Steam. Or make Torque Copmmunity at Steam.
#25
11/14/2013 (10:28 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.

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.
@Stefan Lundmark
Thats why we have a PullRequest tutorial!
#26
11/14/2013 (10:49 pm)
Quote:Just FYI, the boombot in the RTS tutorial leaves footprints.
And the run animation speed scales with ground speed, too. It's awesome!
#27
11/15/2013 (12:38 am)
Still no love for us Mac developers though, huh?
#28
11/15/2013 (3:19 am)
@Lukas: Woohoo, thanks! That tutorial is great.
#29
11/15/2013 (5:05 am)
@Shaolin Dave - I think Mac developers have to show up and work on the engine (from the community), in order to show love for Mac developers.
#30
11/15/2013 (7:04 am)
@Shaolin Dave: I agree with Mich and feel that you have it backwards. Mac developers have no love for Torque 3D

There is no marketing team researching what demographic to hit to improve sales. There is no paid team of programmers with a list of goals to meet so Torque 3D can complete with Game Engine X. There is only the community providing what they feel should be part of the engine. If no Mac developers come forward and implement support in Torque 3D for OSX, then there can be no support for OSX in Torque 3D.

- Dave
#31
11/15/2013 (8:00 pm)
Amazing release, and an amazing understanding of what is needed for Torque to grow.
#32
11/16/2013 (6:25 pm)
Hello Dave, Steering Committee and contributors,

I want to congratulate on the release 3.5 of Torque 3D MIT.

Regarding a greater number of people to test the engine before its the final release, I would like to make a suggestion: Steering Committee could provide a beta version already compiled for people who do not know how to compile the software or do not want to compile the program to be tested for any reason. This way might encourage a larger number of testers. Therefore, detect a bigger amount of potential bugs before the closing release.

Greetings,
#33
11/17/2013 (5:53 pm)
Nice see T3D 3.5...
#34
11/17/2013 (10:38 pm)
Congrats on the new release.

A minor point on the navigation mesh, the name the nav path uses in the editor is path, which is already used by the path object.

The old one is red and the new nav path is blue, so you can tell them apart.

Maybe change this line slightly?
%this.registerMissionObject("NavPath", "Path");
#35
11/18/2013 (9:08 am)
To all who contributed work to make this the excellent release that it is: Thank You!

I would like to point out one issue I found while merging the changes into an existing codebase. This did not generate an error when testing the git build. I only noticed it while going through the changes line-by-line.

In Camera::writePacketData(...) (T3D\camera.cpp line 996) was changed from
if(bstream->writeFlag(mDataBlock->cameraCanBank))
to
if(mDataBlock && bstream->writeFlag(mDataBlock->cameraCanBank))
This is very dangerous since there is no corresponding if statement in Camera::readPacketData(...) to prevent the bit from being read if it wasn't written. I believe this line should be:
if(bstream->writeFlag(mDataBlock && mDataBlock->cameraCanBank))

It hardly seems worth a pull request to correct an issue that would only occur if someone tried to create a camera without a datablock, but if anyone is working on the camera class, you might want to clean that up before submitting your changes.
#36
11/18/2013 (4:03 pm)
HMM time to crack down and get everything merged over...
#37
11/19/2013 (7:06 am)
Nice work! The water for the Rift looks awesome!
#38
11/19/2013 (10:28 pm)
Thank you, everyone who contributed their time/work to this.
#39
11/20/2013 (10:42 pm)
@Michael Perry and Dave Wyand

Oh, Mac developers have love for Torque3D. That's why we threw down $1000+ for the preorder based on the promise that there'd be Mac versions alongside PC. I certainly didn't spend that much just for a t-shirt.
#40
11/21/2013 (4:30 am)
You wrote "still no love". T3D has been open source for a year now. It's been up to the community to create ports. I even handed an WIP version of T3D that was running on OS X to some community members to clean up, in hopes of a port. I don't know if they are still working on it or they have stopped, either way it's a community project. So again, Mac developers need to help step up the effort to make it happen.