On December 19, 2012, we launched T3D v2.0 as the first new release under open source. Then on January 10, 2013, the T3D Steering Committee presented their proposed roadmap for v3.0 to the community for comments. Now that we’ve reached the four month mark since going open source, it is time for another update!
The Torque3D-FPSTutorial repository was added last week to help us keep it up to date with the changes in the main Torque3D repository.
In addition to these repositories, we also have a couple of prepackaged files for you to download if you would prefer to not compile the code yourself:
Torque 3D 2.0 with updated TorqueScript documentation, the Project Manager, and compiled versions of the templates.
Torque3D Project Manager v1.1 on its own for use in your T3D forks. This is the same version that was originally in the GitHub downloads section that they have now depreciated.
The Torque3D repository has seen a huge increase in interest in 2013 with over 375 forks and nearly 1100 stars. As expected, the Torque3D repository’s development branch has seen most of the action. The following changes have been made since the v2.0 release:
Removal of SDL dependency for linux dedicated server (Issue 177)
Fix for Issue #82 for crash on warning print in explosion.cpp (Issue 184)
Highlights From This Update
Let’s take a closer look at some of the changes that are a part of this update blog.
The Vehicle steering return-to-centrePull Request is a very handy change to the way you steer T3D’s vehicles. When enabled, the steering will automatically return to center based on the vehicle’s velocity. Great when you are using the keyboard!
The New ScriptTickObjectPull Request adds a new class that is based on the ScriptObject class. ScriptTickObject 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.
We haven’t seen any joystick love in Torque 3D for quite some time. 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 Devices and the Leap Motion Controller
A big update to how input device events are handled was merged in. You can see the details in Issue 219. This work was done to allow for easier integration of new input devices such as the Leap Motion controller and the Razer Hydra.
And speaking of the Leap Motion controller this update has added support for this brand new device. I wrote a blog last week going over all of the details, including a video of the Leap Motion controller working with Torque 3D. Expect more changes to Torque 3D’s Leap Motion controller support in the coming weeks.
As part of the Leap Motion controller work, we also put together a demo game called Marble Motion that anyone may download and try out. You can drive a marble through a sample level using either the Leap Motion controller, a Xbox 360 compatible gamepad, or the keyboard arrow keys. The Marble Motion demo also shows one possible use for the new ScriptTickObject class as a level’s state machine. You may find the Marble Motion demo in my blog.
Port Torque 3D to Linux
As some of you might already know, we are running an IndieGoGo campaign to port Torque 3D to Linux. The money raised by this campaign is to pay a developer to have Torque 3D run as a client under Linux, World Editor and all. Most game engines only allow you to export your game to Linux. We want to make Linux a first-class citizen when it comes to game development by also giving you all of the tools.
According to our Torque 3D Feature Request Page adding full support for Linux was the number one request by far. By going with an IndieGoGo campaign we hoped to provide this full support as soon as possible, as well as possibly pay a member from the community to do the work. We’ve seen this idea quickly spread throughout the Internet and have seen a very positive response to our attempt to jump-start an open source development ecosystem.
Unfortunately, there are only four days left in the campaign and we have not yet reached our goal. If any of you, or anyone you know, have been on the fence about this, now is the time to act! Having Torque 3D running under Linux will also help with porting T3D to other OpenGL platforms, such as OSX. In addition, it will help to grow our community, which leads to more bug fixes and features.
I wanted to share with you all some interesting news that came to my attention this week. BeamNG is a new company that is developing a new, real-time physics engine that has gained some popularity. Their videos showing off their physics simulation have millions of views on YouTube, as you can see here.
They are looking to make their physics engine into a middleware product and have been showcasing their work using CryEngine 3. So, what does this have to do with Torque 3D? In a blog on January 27, 2013, it was announced that for the past few months they have switched from CryEngine 3 over to Torque 3D! Here is their amazing video showcasing their physics engine running under Torque 3D:
On the BeamNG forums they have set up a post here to discuss their move to Torque 3D. So why did they switch game engines?
Quote:The main reason is full source code access, because we wanted to be able to see and change the deep innards of the engine. Torque3D provided us with a professional grade game engine with full source code accessible.