Game Development Community

dev|Pro Game Development Curriculum

Torque 3D Open Source 3.0 Launch

by Dave Wyand · 05/09/2013 (10:39 am) · 68 comments







Torque 3D Open Source 3.0 Launch


www.gnometech.com/torque/images/blog-2013-05-09/2013-05-09-Header.jpg

Image by Ron Kapaun


On December 19, 2012, we launched T3D v2.0 as the first new release under an open source MIT license. Then on January 10, 2013, the T3D Steering Committee presented their proposed roadmap for v3.0 to the community for comments. Since going open source in September 2012, we’ve had over 1,200 people star and 478 people fork our main repository.

www.gnometech.com/torque/images/blog-2013-05-09/2013-05-09-GitHubCounters.jpg


Now today, four months after releasing the roadmap, the Steering Committee presents Torque 3D 3.0.


What’s New for 3.0

Torque 3D 3.0 has seen a lot of activity. In addition to general improvements and bug fixing, the following is a summary of the major changes.


Project Manager 2.0
The Project Manager has been updated to make it easier to manage the modules that will be compiled into your game. You may read more about these changes in my blog as well as the Project Manager Wiki Page

https://github.com/GarageGames/Torque3D/wiki/images/ProjectManager/2-0-ChooseModulesExisting.jpg

The new Project Modules window


In addition to the Project Manager program receiving an update, Torque 3D’s Project Generator system was modified to allow modules to specify 3rd party files that may be copied into your game’s directory. An example would be copying all the required PhysX DLLs from the SDK when the physx module is part of your project.


Template Clean-up
The templates included with Torque 3D have received a spring cleaning. This work included:

  • Moving assets and script out of the core directory and into the appropriate game location
  • Separating the tool GUI profiles from those of the game
  • Removal of unused components
  • Clean up of console spam

Removal of PhysX Templates
With the Project Manager 2.0 update that makes it easy to choose which modules will be compiled into your game, the two PhysX templates have been removed. The only difference between these two PhysX templates and the two that remain was the use of the physx module for all physics rather than Torque 3D physics, as well as the PhysX DLLs.


ScriptTickObject
ScriptTickObject is a new class (Pull Request) that is based on the ScriptObject class that adds callbacks for tick and frame events:

  • onInterpolateTick(F32 delta) - called every frame, but only if the object is set to process ticks. delta is the time delta for this frame.
  • onProcessTick() - Called once a tick (typically every 32ms) if this object is set to process ticks.
  • onAdvanceTime(F32 timeDelta) - called every frame regardless if the object is set to process ticks, but only if the callOnAdvanceTime property is set to true. timeDelta is the time delta for this frame.
While you could schedule() events to get similar results, the ScriptTickObject automatically takes care of the rescheduling part. Plus you can add a ScriptTickObject instance to the MissionCleanup group to have it automatically unload when exiting a mission. All of the demos that were made over the course of T3D 3.0’s development use ScriptTickObject as a game state machine.


Vehicle Steering
Changes were made to to the way you steer T3D vehicles (Pull Request). When enabled, the steering will automatically return to center based on the vehicle’s velocity. Great when you are using the keyboard!


Joystick Fixes
With this update we see proper racing wheel support, a bug fix for a 2nd POV hat, and support for even more buttons for those flight sticks that can never have too many!


Input Device Changes
A big update to how input device events are handled (Pull Request) with the introduction of the InputEventManager class. This work was done to allow for easier integration of new input devices that we’ll cover a little later.

Torque 3D categorizes its input events into various types so the receiver of the event knows the context of the information. The existing event types are: keyboard key, button, point of view hat, and axis (ranges from -1 to 1 for joysticks, thumb sticks, and mouse moves).

With the new input controllers becoming available in the marketplace these event types are not enough. The following new event types have been added:

  • SI_POS: Absolute position value (Point3F)
  • SI_ROT: Absolute rotation value (QuatF)
  • SI_INT: Integer value (S32)
  • SI_FLOAT: Float value (F32)

ExtendedMove Class
The standard T3D Move class is used to send input events to a user’s current control object on both the client and server. These input events are relative, such as the amount the mouse has moved during the current tick.

Torque 3D 3.0 adds the ExtendedMove class that also allows the tracking of absolute position and rotation values, such as a user’s hand in space above some input device control surface. By default, up to three objects may be tracked by the ExtendedMove class (such as a head and two hands) but this may be easily expanded by changing a constant value in code. The trade off is the amount of network traffic used when communicating with a multiplayer server (although the bandwidth used is highly optimized).


Leap Motion Controller
The Leap Motion controller takes input from hands, fingers, and small tools that are moved just above its surface and provides their absolute position and rotation through the Leap SDK. With Torque 3D v3.0 there is a leapMotion module that may be compiled into your project to allow you to work with the Leap Motion controller. Please see my blog talking about the new code. The following types of events are supported:

  • Hands and fingers events
  • Hands and fingers with persistent ID events
  • Hand as a thumbstick events
  • Whole frame input events
Setting up and working with the Leap Motion controller is discussed on the new T3D Leap Motion wiki page. In the last little while the Leap SDK has been updated to include basic gesture support. This is not currently included in the Torque 3D Leap Motion controller integration and will be looked into for the next Torque 3D release (a good reason to follow the GitHub development branch).


Razer Hydra Controller
The Razer Hydra controller combines the standard buttons and thumbsticks of a gamepad with motion sensing technology by Sixense to determine the absolute position and rotation of each hand with respect to a base station. With Torque 3D v3.0 there is a razerHydra module that may be compiled into your project to allow you to work with the Razer Hydra controller. Please see my blog talking about the new code. The following types of events are supported:

  • Standard gamepad events
  • Controller absolute position and rotation events
  • Controller as a thumbstick events
  • Whole frame events
Setting up and working with the Razer Hydra controller is discussed on the new T3D Razer Hydra wiki page.


Oculus Rift Head Mounted Display
The Oculus Rift head mounted display includes both a stereo display that you wear and a sensor that detects you head’s absolute rotation. With Torque 3D v3.0 there is a oculusVR module that may be compiled into your project to allow you to work with the Oculus Rift. Please see my blog talking about the new code.

In order to support this unique device the Player and Camera classes have been modified to allow you to use them with the Rift. One change is to allow for the view to bank according to the Rift’s input (normally T3D ignores all banking). The other change is the addition of control schemes that may be set through the GameConnection class. By activating a particular control scheme you can tell the user’s control object to combine both the Oculus Rift’s head track with a gamepad’s input, for example. All of this is discussed on the new T3D Oculus Rift wiki page.


Multiple Viewport Rendering Fixes
With the stereo capabilities of the Oculus Rift came the requirement to do stereo rendering in Torque 3D. For this release only side-by-side rendering is supported, but it could be extended to other types of stereo displays. Torque 3D’s graphics pipeline was not originally set up with stereo rendering in mind and there were a number of assumptions that broke while trying to render with multiple viewports and an offset frustum. These issues have been fixed as they came up and this work will benefit any other projects that require multiple viewport rendering.


3rd Party Library Updates
Many of Torque 3D’s 3rd party libraries haven’t been updated in a very long time. With Torque 3D 3.0 all 3rd party libraries that had an update available were brought up to the latest release. An exception to this is the Collada library as there were a number of customizations that were made to it sometime up to T3D 1.2 (or earlier). The Collada library will be looked at in a future release.


Removal of DIF Support
DIFs have been a part of the Torque engines from the beginning and were used to build interior objects. However, with Torque 3D’s advanced lighting engine DIFs had trouble fitting in and have been marked as depreciated for some time (before T3D went open source). With this release of Torque 3D we finally say goodbye to our old friend and have recovered the resources it made use of.


New Terrain Tools and Rendering
The following additions have been made to the terrain tools and how the terrain is rendered:


ScatterSky Improvements
The following improvements have been made to the ScatterSky class:


New PostFX
Three new postFx have been added to Torque 3D 3.0. The first is an underwater caustics postFX that is activated when the camera is within a water object and provides those intense, wavy lines you see at the bottom of a pool. The second is a turbulence postFx that is also activated when the camera is within a water object that causes the view to distort. You can see both of these in action in the picture at the top of this blog.

The third postFX is a camera-based motion blur. This is disabled by default but may be turned on through the MotionBlurFX PostEffect. This postFX provides a blur to the whole scene based on how fast the camera is moving.


Theora Texture Animation
The new TheoraTextureObject class provides a link between a theora video file and a named texture surface. This name texture may then be referenced by any Material instance to provide an animated material. This class was used by the Aurora Borealis Demo to place a video on the sky dome and you may find out more about it from the Pull Request.


Change List

Below is a list of all changes that have been made to the development branch of the Torque3D repository since the 2.0 release and are now part of Torque 3D 3.0.

  • Removal of SDL dependency for linux dedicated server (Issue 177)
  • Bug fix for loading compiled dsos (Issue 179)
  • Updated logic in MissionArea::getServerObject (Issue 140)
  • Vehicle steering return-to-centre (Issue 49)
  • Bug: Missing support for several Racing Wheels (Issue 190)
  • Joystick POV 2 down is not functional (Issue 214)
  • Expanded signals and journaled signals to support up to 13 parameters (Issue 216)
  • New ScriptTickObject (Issue 217)
  • New console type for Point3I (Issue 218)
  • Input event changes (Issue 219)
  • New RigidShape method to force client (Issue 220)
  • ExtendedMove class and support (Issue 221)
  • Moved platform input event files under new input directory (Issue 222)
  • Leap Motion input device support (Issue 223)
  • Updates to Project Generator necessary for library I am working with. [Adds debug library support to project generator.] (Issue 188)
  • Remove hard coded paths pass 1 (Issue 227)
  • Fix for Issue #82 for crash on warning print in explosion.cpp (Issue 184)
  • Change ShapeBase to only test if available meshes (Issue 236)
  • Compile Bullet library under Windows (Issue 237)
  • Razer Hydra integration (Issue 234)
  • Updates libogg to v1.3.0 (Issue 239)
  • Patches the libvorbis update with missed files (Issue 240)
  • Update libvorbis (Issue 238)
  • Removed hard coded directory paths (Issue 248)
  • Updating libpng to v1.5.14 and zlib to v1.2.7 (Issue 250)
  • Update squish (Issue 243)
  • Update TinyXML to v2.6.2 (Issue 255)
  • Tools GuiProfile Separation (Issue 259)
  • Remove unused and (partially) unworking UnifiedShell (Issue 260)
  • Bug fixes for alternative zip layout and define to toggle it on (Issue 178)
  • Relocate game specific GUIs out of the "core" (Issue 264)
  • Removing the controlsHelpDlg to reduce maintenance overhead (Issue 266)
  • Adding a basic rule-based terrain painting implementation (Issue 272)
  • Minor Issues From ParticleData Times Change (Issue 225)
  • Particles are not shapes (Issue 275)
  • Importing terrain heightmaps flips Y-axis (Issue 268)
  • Material Editor Crash- Opening the material editor with a mesh selected doesn't open a custom material. (THREED-3195) (Issue 163)
  • Set the Ryder as the default starting weapon instead of the Lurker (Issue 284)
  • Gui Editor - Object Treeview refresh issue (THREED-3179) (Issue 193)
  • Remove unused OOBSign from PlayGui (Issue 286)
  • Move teleporter related particle data out of managed data (Issue 290)
  • Remove the old TGE era "Buggy" vehicle (Issue 292)
  • Move light related example art and data out of core (Issue 294)
  • Move example sky assets out of core (Issue 295)
  • Move water assets out of core (Issue 296)
  • Move example road and path assets out of core (Issue 297)
  • Remove the Armor script class (Issue 305)
  • Thumbnails in the Material Selector do not display (Issue 282)
  • Cleanup of weapon fx and assets (Issue 312)
  • Add missing terrain related materials (Issue 314)
  • Add buttons to the MainMenu to access the Editors (Issue 315)
  • Fix texture and object console paths (Issue 316)
  • zero() method added to all point classes (Issue 317)
  • GFX now handles non-default adapters (Issue 318)
  • Clean up the cheetah's onLoad() TSShapeConstructor script (Issue 319)
  • Fix platforms that don't support PVI_NumAdapters (Issue 320)
  • ExtendedMove changes (Issue 321)
  • Correct customProfiles.cs execution (Issue 322)
  • Use correct dragCoefficient value in TeleportFlash (Issue 323)
  • Game cam and eye banking, control schemes (Issue 325)
  • Torque 3d crush when you import a heightmap (Issue 288)
  • Oculus VR (Rift) support (Issue 326)
  • Add a new Terrain brush action: Smooth Slope (Issue 327)
  • Remove unused weapon scripts in Full Template (Issue 328)
  • Remove unused and duplicate sounds (Issue 329)
  • Side by side rendering (Issue 324)
  • Style guidelines for pull requests (Issue 22)
  • GroundCover fading when zoomed in (Issue 144)
  • Engine API fixes ([url=https://github.com/GarageGames/Torque3D/pull/241)Issue 241[/url])
  • GuiObjectView TorqueScript setRotation method (Issue 334)
  • River tool defaults to an invalid Cubemap (Issue 331)
  • Terrain Macro Texture (Issue 287)
  • some small patches (Issue 332)
  • Remove Interior Object format (DIF) (Issue 310)
  • Project Generator File Copy (Issue 352)
  • Scatter Sky Community Fixes (Issue 353)
  • TheoraTextureObject ([url=https://github.com/GarageGames/Torque3D/pull/355)Issue 355[/url])
  • Compiling with VS2012 (Issue 348)
  • Community Resource (scattersky fog fix) (Issue 362)
  • Fill in missing case for getEngineProductString switch block (Issue 363)
  • Version number change (Issue 354)
  • style.css changes for Project Manager modules (Issue 366)
  • Removed both PhysX templates (Issue 372)
  • Add a default RadioControl Profile and image asset back to the Templates (Issue 373)
  • New PostFx (Underwater, Turbulence, and Camera Based Motion Blur) (Issue 374)
  • Update squish library to compile under Linux (Issue 375)
  • Changes to have Linux dedicated compiling again (Issue 376)
  • Underwater caustics default to off (Issue 378)

Where to Find Torque 3D 3.0

As always you may find Torque 3D over on GitHub. Here is a list of all repositories:

With the release of Torque 3D 3.0 all changes in the development branch have been moved into the master branch. The development branch will now be used for changes related to the next release of Torque 3D.

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.0 zip package



Torque 3D Demos

Throughout the development of T3D 3.0 four downloadable demos have been put together by the Steering Committee. Each one was meant to show off Torque 3D’s interface with one of the newly supported input devices, but as all script is available with the demo, they also serve to demonstrate how to use different features of Torque 3D, such as the ScriptTickObject and TheoraTextureObject classes. Below is a list of each of these T3D demos with links to both download the package and to find out more about how they work:


Marble Motion
Use the Leap Motion controller to drive a marble over suspended platforms. How fast can you reach the end without falling off? link


Hydra Ryder
Use the Razer Hydra controller to hold dual pistols while at a firing range. Fire at multiple targets and try to knock off all of the tin cans. link


Rift Valley
Use the Oculus Rift and either the mouse and keyboard or a Xbox 360 gamepad to explore a tranquil valley. Be sure to check out the cave. link


Aurora Borealis
Use the Oculus Rift to see the aurora borealis of March 17, 2013 as recorded from opposite sides of the Earth. In addition to the northern lights, see how many constellations you can make out. link


What’s Next for Torque 3D

With the second open source release of Torque 3D complete we are now looking towards the next release. The Torque 3D Steering Committee has some ideas on what the road map could look like for v4.0 and will soon present this to the community. But all of this can only happen with you, the community.

The Steering Committee exists to help provide direction and lend a hand, but it cannot do everything on its own. With the next roadmap we will be asking for everyone’s help to continue to drive Torque 3D forward and make it the best open source 3D engine out there.


In Closing

I wanted to close out this blog with a video that was made not by a community member, but by someone that is genuinely enjoying the results of Torque 3D 3.0. This is some of the best publicity we could hope for and I look forward to seeing videos of people playing your own games made with Torque 3D.




- Dave


UPDATE: Cymatic Bruce just released another video going over 3rd person views and the Oculus Rift. While going through a number of UDK options, he also includes our Rift Valley demo as a great example. Check it out:



Page «Previous 1 2 3 4 Last »
#1
05/09/2013 (11:29 am)
Now that's an update!

With those new additions, T3D really seems to be THE swiss knife of 3d game engines!

Congrats to the team and the community!
#2
05/09/2013 (11:38 am)

BLIMEY!


Awesome stuff all round. My congratulations and appreciation to all involved. There's some great resource additions here on top of everything else.

Huzzar!
#3
05/09/2013 (11:40 am)
Awesome stuff!
#4
05/09/2013 (12:03 pm)

WOW


That's quite a list of updates! Nice work everybody!
#5
05/09/2013 (12:11 pm)
Awesome! Was really looking forward to the update. Thanks everyone for continuing to work on torque3D :D
#6
05/09/2013 (12:19 pm)
Thanks, everyone!

Today I received an email that I thought I would share with everyone (with permission from the author):

Quote:Hey Dave, I just wanted to let you know how much I appreciate what GarageGames and you are doing. Torque3D is really a blessing to alot of us out here. I have worked in the video game industry as a programmer for 12-13 yrs developing games. My son and I wanted to work on a game together, and we are using Torque3d. And I am having a blast! In my opinion, Torque3d seems to be very well crafted and very practical. You can see from choices that have been made that it was actually used to make games. Of course it is a more programmer centric solution. I love having the source code. It is the reason I do not use Unity3d or UnReal. I understand the importance of having that extra level of control. But in addition to having the source code you guys provide a very decent editor. It really frustrates me when i see such ignorant comments made by some people on the GarageGame blogs about how much better Unity3d is. For me it is comparing Apples to Oranges. I just wanted you guys to know that I appreciate all the hard work.

- Dave
#7
05/09/2013 (12:34 pm)
I never thought that I should get upgrades for my game maker tool worth 100 Kilos of us dollars for free. Garage Games has really amazed me the last year. First the MIT decision, then all the free updates in version 2.0, then the GMK add on went MIT and now we get a awesome upgrade for Torque 3D MIT again!!!! :o)

Thanks Garage Games. Thanks to the whole community for this great piece of tool :o)

And hey today is my birthday so what could be better than getting Torque 3D MIT 3.0 :o)

All the best from Dwarf King to all of you :o)
#8
05/09/2013 (12:39 pm)
@Dwarf King happy birthday!
@All Happy Torque3D 3.0 day!

A very impressive list of updates! Downloading asap and giving it a go!
The new devices is really gonna make T3D pop out in the list of open source engines and the new shaders is really gonna make for some beautiful T3D videos and screenshots!
Could keep going on and on about the new features but truth is, there is too many awesome new features to keep it all in one post!
Great work guys! T3D is shining as never before!
#9
05/09/2013 (1:26 pm)
Sweet Awsome I am going to D/L it NOW The Guys Great Job
#10
05/09/2013 (1:33 pm)
I'm glad!
We've waited 'till release! And at last T3D 3.0 released!
I'm wonder how many perfect things were included!
You guys make me great fun! You Rock!
#12
05/09/2013 (2:40 pm)
thanks, downloading now!
#13
05/09/2013 (3:13 pm)
Hurrah! Thanks for your hard work in getting this out, guys. I'm also impressed at the level of support T3D has received even after the MIT.
#14
05/09/2013 (3:38 pm)
Great work guys.
#15
05/09/2013 (3:43 pm)
Congratulation!
#16
05/09/2013 (3:45 pm)
OMG I have to hurry and catch up now.
#17
05/09/2013 (3:54 pm)
Hmm. I see you removed DIF support but is there a tool to convert existing DIF to collada? Like the export interior as collada option?
#18
05/09/2013 (4:18 pm)
This is a really brilliant release, I am very keen to get in to making a game to support Rift.

Looking forward to seeing the Torque 3D Steering Committee's roadmap and what we can all do.
#19
05/09/2013 (7:13 pm)
Awesome!

Downloading now :)
#20
05/09/2013 (10:33 pm)
Will this update work with the FPS tutorial as well?
Page «Previous 1 2 3 4 Last »