Torque 3D Open Source 3.0 Launch

Image by Ron Kapaun

What’s New for 3.0

The new Project Modules window

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

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.

SI_POS: Absolute position value (Point3F)

SI_ROT: Absolute rotation value (QuatF)

SI_INT: Integer value (S32)

SI_FLOAT: Float value (F32)

Hands and fingers events

Hands and fingers with persistent ID events

Hand as a thumbstick events

Whole frame input events

Standard gamepad events

Controller absolute position and rotation events

Controller as a thumbstick events

Whole frame events

Change List

Where to Find Torque 3D 3.0

Torque 3D Demos

What’s Next for Torque 3D

In Closing

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.Now today, four months after releasing the roadmap, the Steering Committee presentsTorque 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.Thehas 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 In addition to theprogram receiving an update, Torque 3D’ssystem 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 themodule is part of your project.The templates included with Torque 3D have received a spring cleaning. This work included:With theupdate 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 themodule for all physics rather than Torque 3D physics, as well as the PhysX DLLs.is a new class ( Pull Request ) that is based on theclass that adds callbacks for tick and frame events:While you couldevents to get similar results, theautomatically takes care of the rescheduling part. Plus you can add ainstance to thegroup 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 useas a game state machine.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!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!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:The standard T3Dclass 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 theclass 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 theclass (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).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 amodule 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: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 GitHubbranch).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 amodule 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:Setting up and working with the Razer Hydra controller is discussed on the new T3D Razer Hydra wiki page 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 amodule 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 theandclasses 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 ofthat may be set through theclass. 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 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.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.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.The following additions have been made to the terrain tools and how the terrain is rendered:The following improvements have been made to theclass: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. This postFX provides a blur to the whole scene based on how fast the camera is moving.The newclass provides a link between a theora video file and a named texture surface. This name texture may then be referenced by anyinstance 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 Below is a list of all changes that have been made to thebranch of the Torque3D repository since the 2.0 release and are now part of 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 thebranch have been moved into thebranch. Thebranch 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, 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: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 theandclasses. 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:Use the Leap Motion controller to drive a marble over suspended platforms. How fast can you reach the end without falling off? link 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 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 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 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.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.- DaveCymatic 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 ourdemo as a great example. Check it out: