Torque 2D 3.0 COMPLETE!
by Michael Perry · 05/03/2014 (5:13 am) · 62 comments
Torque 2D 3.0 Official Release
On February 5th, 2013, Torque 2D 2.0 was released to the world for the first time under an open source MIT license. Between then and now, over a year has passed with a lot of learning and adjusting to an open source development model. Slowly but surely, feature after feature was added to the engine, bugs were fixed, and documentation was written. Today we can proudly present to everyone Torque 2D 3.0.
As always, the source code is available via the Torque 2D Github repository. Precompiled binaries for Windows or OSX can be downloaded from the Release page.
Before diving into the details, the Steering Committee would like to thank once more everyone in the community who helped make this release possible. With the push from development to master, the contributors page on Github has finally been updated to reflect the great work Torque developers have put into the engine.
The following is a summary of the major changes and additions:
Android, Linux, and Web Support
The major focus of this release brings several additional platform publishing options for your game or application. T2D truly delivers on cross platform support, making it easy with one codebase to reach many different audiences on many different devices.
64-bit Applications
In addition to the standard 32-bit support we’ve always had, the engine can now compile as a native 64-bit application for platforms that support it.
Named Image Cells and Frames
Until now, image frames have always been referenced using a numerical index. Now, developers have the opportunity to give explicit ImageAsset cells specific names. Those names can then be used with all SceneObject derived classes that consume ImageAssets.
Skeletal Animation
We are pleased to announce that an initial implementation for skeletal animation is now available. The first format supported comes from the animation program Spine.

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. Torque 2D offers built in integration and now includes a demo toy to show off how it works.

Xbox 360 Controller
Gamepad support has always been part of the engine, but now the necessary code to use an Xbox 360 controller with T2D has been added.
JSON Format for TAML
Joining XML and binary, developers can how serialize their game objects and scenes in the JSON format, with the engine being able to read-in or write-out this format as easily as the others.
ConsoleMethodWithDocs
A major undertaking in the codebase, the vast majority of TorqueScript binding methods and global functions have moved into their own header files. This makes the engine code much easier to read and allowed us to further integrate Doxygen support for a comprehensive reference guide available in the wiki.
ScriptObject Behaviors
Behavior support was added to the ScriptObject class. If you enjoy writing behaviors, now there is an engine class outside of the Scene and SceneObjects which can use them.
Polar Coordinate Changes
One of the few changes made that would break any of your existing scripts - polar coordinates have been standardized throughout the engine to follow the typical polar axis convention where 0 degrees is horizontal and to the right.

New Sandbox Toys
A few more toys were added to the Sandbox, giving new users even more practical examples to learn from. These include AudioToy, AngleToy, LeapToy, and SpineToy.

Below is a list of all changes that have been made to the development branch of the Torque2D repository since the 2.0 release and have now been pushed to the master branch and tagged as Torque 2D 3.0.
TAML supports reading and writing in JSON format
Batch renderer now works exclusively with triangles instead of quads
Fixed SceneObject.applyForce and applyLinearImpulse
Added signum convenience function (PR #56)
New Gui Object: GuiGridCtrl (PR #9)
Added missing TorqueScript methods to ParticleAsset/Emitter/Player, renamed a few static fields for consistency (breaking change) (PR #68)
Fixed ImageAsset typo - image width and height were swapped (PR #70)
All picking modes for CompositeSprite are now functional (PR #69)
TextureManager fix - replaced call to use expandPath (PR #83)
ParticleAsset creation fix - now writes out correctly to TAML (PR #84)
ParticlePlayer play and stop functions now correctly pause and unpause emitters (PR #85)
Added functions to get the explict width and height of cells to ImageAsset (PR #88)
Fixed AABB size in ImageFont (PR #97)
Fixed TAML bug with ImageFont (PR #99)
Fixed TAML bug with ShapeVector (PR #104)
Added Mac OSX 10.6 support (PR #101)
Added linear interpolation and smooth step functions, SceneWindow now uses these (PR #95)
OpenAL streaming audio fix (PR #106)
OpenAL pause and unpause audio fix (PR #115)
OpenAL shutdown fix (PR #114)
PointForceController getPosition definition fix (PR #110)
SimXMLDocument crash fix (PR #113)
Replaced most ConsoleMethod (and functions) with ConsoleMethodWithDocs for easier Doxygen reading, moved most console methods into their own ScriptBinding.h files. (PR #116)
Behavior support for ScriptObject (PR #121)
Angle/polar coordinate issue fixes (breaking change), AngleToy added to Sandbox (PR #123)
Input bug fix for OSX (PR #125)
Fix assert conditional in consoleNamespace.cc (PR #126)
Android platform support added
Xbox 360 controller support (PR #136)
Leap Motion controller support, LeapToy added to Sandbox (PR #137)
Added missing Mutex to StringTable::lookupn (PR #127)
Asset support for named cells and frames (PR #139)
Bugfix for SceneObject::getContacts (PR #142)
Fixed deleting a clone of an object breaking the original object (PR #143)
Fixed bug that prevented scene controllers from being read by TAML (PR #145)
Initial implementation of Spine support, SpineToy added to Sandbox (PR #146)
Doxygen file cleanup (PR #148)
Fixed some Xcode compiler warnings (PR #150)
64-bit platform support (PR #154)
Fixed GUI object namespace issue (PR #152)
Fixed crash when executing FileDialogs (PR #153)
Linux platform support (PR #138)
AudioToy added to the Sandbox
Exposed method CompositeSprite::getSpriteLogicalPosition in TorqueScript (PR #155)
Emscripten platform support (PR #157)
Fixed TAML binary writer crash (PR #158)
Fixed compile errors and warnings resulting from the Xcode 5.1 update (PR #159)
Windows platform fixes (PR #168)
SkeletonObject now respects scene layer depth settings (PR #171)
Named cell and frame improvements (PR #172)
Fixed iOS7 bug with audio not playing (PR #175)
Arm64 support (PR #176)
Removed PVRTexTool files (PR #177)
Android platform fixes (PR #174)
Visual Studio 2013 solution files added (PR #182)
Behavior Connection bug fixes (PR #183)
Now, it's time to go back to the drawing board. We are going to make some changes to the steering committee and how releases are pushed from development to the master branch, in addition to discussing 2014 plans for T2D. After you stop cheering for this release, go ahead and start discussing where the engine should go next. What do you think should happen with T2D? This 3.0 release has proven that a small community can make something great, now imagine what else we can do if we really rally together.
The official thread for T2D future discussion can be found here.
An engine is only as good as the games made with it. We’ve mentioned how thankful we are to the people that contribute to the engine itself and the community around it. We’re also deeply grateful to each and every developer that shares their finished or in-development game progress with us. Before ending this blog, there are a couple recent games or projects using T2D that we’d like to highlight.
Fire Platoon from Dark Infinity Software:
https://www.youtube.com/watch?v=rDPdVBs6wew
Website: darkinfinitysoftware.com/fireplatoon/index.html
Project Cry Wolf from Simon Love:
https://www.youtube.com/watch?v=F_X367kBiUI
Blog: www.garagegames.com/community/blogs/view/22716
You can be sure in 2014 we will be looking at ways to further showcase and promote Torque 2D games.
So I personally want to say thank you to Mike and Derek for keeping this project going, along with all the contributors. Everyone else should join me in saying so. Thanks guys!
On February 5th, 2013, Torque 2D 2.0 was released to the world for the first time under an open source MIT license. Between then and now, over a year has passed with a lot of learning and adjusting to an open source development model. Slowly but surely, feature after feature was added to the engine, bugs were fixed, and documentation was written. Today we can proudly present to everyone Torque 2D 3.0.
As always, the source code is available via the Torque 2D Github repository. Precompiled binaries for Windows or OSX can be downloaded from the Release page.
Before diving into the details, the Steering Committee would like to thank once more everyone in the community who helped make this release possible. With the push from development to master, the contributors page on Github has finally been updated to reflect the great work Torque developers have put into the engine.
What’s New in 3.0
The following is a summary of the major changes and additions:
Android, Linux, and Web Support
The major focus of this release brings several additional platform publishing options for your game or application. T2D truly delivers on cross platform support, making it easy with one codebase to reach many different audiences on many different devices.
64-bit Applications
In addition to the standard 32-bit support we’ve always had, the engine can now compile as a native 64-bit application for platforms that support it.
Named Image Cells and Frames
Until now, image frames have always been referenced using a numerical index. Now, developers have the opportunity to give explicit ImageAsset cells specific names. Those names can then be used with all SceneObject derived classes that consume ImageAssets.
<ImageAsset
AssetName="soldierWalk"
ImageFile="@assetFile=soldierWalk.png">
<ImageAsset.Cells>
<Cell RegionName="walk1" Offset="2 2" Width="103" Height="66"/>
<Cell RegionName="walk2" Offset="179 100" Width="37" Height="35"/>
<Cell RegionName="walk3" Offset="2 70" Width="65" Height="31"/>
<Cell RegionName="walk4" Offset="161 137" Width="36" Height="41"/>
</ImageAsset.Cells>
</ImageAsset>
<AnimationAsset
AssetName="soldierWalkAnim"
Image="@asset=ToyAssets:soldierWalk
NamedAnimationFrames="walk1 walk2 walk3 walk4"
AnimationTime="1" />Skeletal Animation
We are pleased to announce that an initial implementation for skeletal animation is now available. The first format supported comes from the animation program Spine.

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. Torque 2D offers built in integration and now includes a demo toy to show off how it works.

Xbox 360 Controller
Gamepad support has always been part of the engine, but now the necessary code to use an Xbox 360 controller with T2D has been added.
JSON Format for TAML
Joining XML and binary, developers can how serialize their game objects and scenes in the JSON format, with the engine being able to read-in or write-out this format as easily as the others.
{
"Sprite": {
"SceneLayer": "31",
"Size": "100 75",
"BodyType": "Static",
"BlendColor": "SlateGray",
"Image": "@asset=ToyAssets:highlightBackground",
"Frame": "0"
}
}ConsoleMethodWithDocs
A major undertaking in the codebase, the vast majority of TorqueScript binding methods and global functions have moved into their own header files. This makes the engine code much easier to read and allowed us to further integrate Doxygen support for a comprehensive reference guide available in the wiki.
ScriptObject Behaviors
Behavior support was added to the ScriptObject class. If you enjoy writing behaviors, now there is an engine class outside of the Scene and SceneObjects which can use them.
Polar Coordinate Changes
One of the few changes made that would break any of your existing scripts - polar coordinates have been standardized throughout the engine to follow the typical polar axis convention where 0 degrees is horizontal and to the right.
New Sandbox Toys
A few more toys were added to the Sandbox, giving new users even more practical examples to learn from. These include AudioToy, AngleToy, LeapToy, and SpineToy.

Change List
Below is a list of all changes that have been made to the development branch of the Torque2D repository since the 2.0 release and have now been pushed to the master branch and tagged as Torque 2D 3.0.
TAML supports reading and writing in JSON format
Batch renderer now works exclusively with triangles instead of quads
Fixed SceneObject.applyForce and applyLinearImpulse
Added signum convenience function (PR #56)
New Gui Object: GuiGridCtrl (PR #9)
Added missing TorqueScript methods to ParticleAsset/Emitter/Player, renamed a few static fields for consistency (breaking change) (PR #68)
Fixed ImageAsset typo - image width and height were swapped (PR #70)
All picking modes for CompositeSprite are now functional (PR #69)
TextureManager fix - replaced call to use expandPath (PR #83)
ParticleAsset creation fix - now writes out correctly to TAML (PR #84)
ParticlePlayer play and stop functions now correctly pause and unpause emitters (PR #85)
Added functions to get the explict width and height of cells to ImageAsset (PR #88)
Fixed AABB size in ImageFont (PR #97)
Fixed TAML bug with ImageFont (PR #99)
Fixed TAML bug with ShapeVector (PR #104)
Added Mac OSX 10.6 support (PR #101)
Added linear interpolation and smooth step functions, SceneWindow now uses these (PR #95)
OpenAL streaming audio fix (PR #106)
OpenAL pause and unpause audio fix (PR #115)
OpenAL shutdown fix (PR #114)
PointForceController getPosition definition fix (PR #110)
SimXMLDocument crash fix (PR #113)
Replaced most ConsoleMethod (and functions) with ConsoleMethodWithDocs for easier Doxygen reading, moved most console methods into their own ScriptBinding.h files. (PR #116)
Behavior support for ScriptObject (PR #121)
Angle/polar coordinate issue fixes (breaking change), AngleToy added to Sandbox (PR #123)
Input bug fix for OSX (PR #125)
Fix assert conditional in consoleNamespace.cc (PR #126)
Android platform support added
Xbox 360 controller support (PR #136)
Leap Motion controller support, LeapToy added to Sandbox (PR #137)
Added missing Mutex to StringTable::lookupn (PR #127)
Asset support for named cells and frames (PR #139)
Bugfix for SceneObject::getContacts (PR #142)
Fixed deleting a clone of an object breaking the original object (PR #143)
Fixed bug that prevented scene controllers from being read by TAML (PR #145)
Initial implementation of Spine support, SpineToy added to Sandbox (PR #146)
Doxygen file cleanup (PR #148)
Fixed some Xcode compiler warnings (PR #150)
64-bit platform support (PR #154)
Fixed GUI object namespace issue (PR #152)
Fixed crash when executing FileDialogs (PR #153)
Linux platform support (PR #138)
AudioToy added to the Sandbox
Exposed method CompositeSprite::getSpriteLogicalPosition in TorqueScript (PR #155)
Emscripten platform support (PR #157)
Fixed TAML binary writer crash (PR #158)
Fixed compile errors and warnings resulting from the Xcode 5.1 update (PR #159)
Windows platform fixes (PR #168)
SkeletonObject now respects scene layer depth settings (PR #171)
Named cell and frame improvements (PR #172)
Fixed iOS7 bug with audio not playing (PR #175)
Arm64 support (PR #176)
Removed PVRTexTool files (PR #177)
Android platform fixes (PR #174)
Visual Studio 2013 solution files added (PR #182)
Behavior Connection bug fixes (PR #183)
What’s Next for T2D
Now, it's time to go back to the drawing board. We are going to make some changes to the steering committee and how releases are pushed from development to the master branch, in addition to discussing 2014 plans for T2D. After you stop cheering for this release, go ahead and start discussing where the engine should go next. What do you think should happen with T2D? This 3.0 release has proven that a small community can make something great, now imagine what else we can do if we really rally together.
The official thread for T2D future discussion can be found here.
Closing with a Showcase
An engine is only as good as the games made with it. We’ve mentioned how thankful we are to the people that contribute to the engine itself and the community around it. We’re also deeply grateful to each and every developer that shares their finished or in-development game progress with us. Before ending this blog, there are a couple recent games or projects using T2D that we’d like to highlight.
Fire Platoon from Dark Infinity Software:
https://www.youtube.com/watch?v=rDPdVBs6wew
Website: darkinfinitysoftware.com/fireplatoon/index.html
Project Cry Wolf from Simon Love:
https://www.youtube.com/watch?v=F_X367kBiUI
Blog: www.garagegames.com/community/blogs/view/22716
You can be sure in 2014 we will be looking at ways to further showcase and promote Torque 2D games.
Mich Notes
This blog was written by Mike Lilligreen and Derek Bronson. In fact, the majority of the past four months of T2D development has been driven by Mike. Because of official GG work and personal life, I've had very little time to dedicate to Torque 2D. The good news is that the recent steering committee additions have proven successful. On top of that, the majority of the contributions have come from outside the committee, which is awesome! The open source effort is staying alive and can become so much more.So I personally want to say thank you to Mike and Derek for keeping this project going, along with all the contributors. Everyone else should join me in saying so. Thanks guys!
About the author
Programmer.
#42
Image updated a little farther down this thread
P.S. I also just noticed I had edited the original scrollbar.png for a close matching scrollbar image. However, there was a small pixel issue near the rounded edge so when I get a sec to blend a little transparency on that I'll upload it too. Cheers!
06/04/2014 (7:26 am)
@Simon! So sorry, I just stumbled over this again this morning. I pulled a few pixels around and re-uploaded that button. I believe you'll find it much more to your liking :)Image updated a little farther down this thread
P.S. I also just noticed I had edited the original scrollbar.png for a close matching scrollbar image. However, there was a small pixel issue near the rounded edge so when I get a sec to blend a little transparency on that I'll upload it too. Cheers!
#43
06/09/2014 (1:09 am)
......hello,is anyone there???where is everybody?too cold...
#44
06/09/2014 (5:37 am)
There are discussions happening about the future of Torque 2D happening in this thread
#45
On a side note : I tried to download the T2D 3.0 version from the product page, but it looks like there is still a link there to the T2D-2.0.
06/11/2014 (4:43 am)
Congratulations on this release, and the thread with the future discussions. On a side note : I tried to download the T2D 3.0 version from the product page, but it looks like there is still a link there to the T2D-2.0.
#46
06/11/2014 (4:49 am)
Ah! Thanks for the congrats and for the web bug report David. The product page needs to be updated in general, so I'll set aside some time today to take care of it. For now, you can grab the engine directly from GitHub. Have a look at the T2D MIT wiki, under the downloads section.
#47
For Torque 2D:


For Torque 3D:
06/13/2014 (6:40 pm)
I revisited the button and the T2D scrollbar (vertical only, sorry, although it would be simple to update the horizontal), since I'll be using the button in my latest T3D project. What I ended up with was a much more fluid design with much clearer borders. Again, enjoy! (I've taken down the images from my previous postings.)For Torque 2D:


For Torque 3D:
#48
06/13/2014 (7:25 pm)
Torque doesn't have Level Editor ,why???please tell me reason......please.....
#49
06/13/2014 (7:42 pm)
@yashamaru : The level editor that existed in Torque Game Builder never got ported to Torque 2D MIT. T2D MIT also means that the engine is now in the hands of the community; even if there were efforts made towards an Editor suite, nobody has created a level editor for it as of yet, although some of us came close (as you can see in my video linked in the original post)
#50
06/13/2014 (8:17 pm)
thanks for you explanation,but have you heard of cocos2d-x,a 2d game engine too,it has two editors:cocobuilder, cocostudio
#51
Whilst Torque2D, even though it uses the GarageGames forums, is being developed by its community, with the help of a Steering committee to maintain the codebase. If no one stands up to make new features, the engine does not evolve.
06/13/2014 (8:28 pm)
@yashamaru : Yup, Cocos2d-x is pretty sweet! The main difference can be explained with this quote, straight from their website :Quote:
Chukong Technologies, the creator and maintainer of this widely adopted open source game engine, has committed to updating the platform’s core features and adding new functionality.
Whilst Torque2D, even though it uses the GarageGames forums, is being developed by its community, with the help of a Steering committee to maintain the codebase. If no one stands up to make new features, the engine does not evolve.
#52
06/13/2014 (8:49 pm)
@Simon Love:In China,Many Game Companies use Unity3d and cocos2d-x...........but the games they make---most are very suck....pretty suck....you can't tell how suck they are.....
#53
It's not just in China, either; Since everyone can make games now, many people release worthless, unfinished products just to make a quick buck.
In any case, stay tuned to these forums, editors should be popping up in the coming months!
06/13/2014 (8:54 pm)
@yashamaru : Totally agree, even if you have the most powerful and user-friendly game engine out there, it doesn't mean that your game will automatically be great.It's not just in China, either; Since everyone can make games now, many people release worthless, unfinished products just to make a quick buck.
In any case, stay tuned to these forums, editors should be popping up in the coming months!
#54
06/13/2014 (9:24 pm)
@Simon Love:in china ,only a few of people play video games.....most people don't want to pay money for a game software is one reason,expensive is another reason..by the way,<<The last of us>> is very awesome
#55
I suggest you write a blog post just to advertise them instead of being lost in the 3rd page of comments on this one!
06/18/2014 (7:32 pm)
@Jesse Allen : Tried your new buttons; Wicked cool!I suggest you write a blog post just to advertise them instead of being lost in the 3rd page of comments on this one!
#56
07/04/2014 (12:25 pm)
@Simon: You're absolutely right. I'm still improving and updating this set of GUI images as I'm working with my current project. When it's all done, I'll post the whole thing up!
#57
08/02/2014 (9:49 am)
Question are there tutorials on how to use torque 2d 3.0? To be able to make your own game or is that something for the future? I downloaded 3.0 but not sure how to go about making a game with it unlike the last torque update from gg.
#59
Now type in the following line to clone your forked repository into directory dev/T2DMIT on your E: drive
git clone git@github.com:your_username/Torque2D.git /e/dev/T2DMIT
You will see that GitBash will display the cloning's progress as it downloads the files. Once complete, head over to your chosen directory where you should see the files!
I changed e to c cuz i don't have an e drive
it states please make sure you have correct access rights.
so i'm stuck on this.
08/03/2014 (1:35 pm)
i got to Now type in the following line to clone your forked repository into directory dev/T2DMIT on your E: drive
git clone git@github.com:your_username/Torque2D.git /e/dev/T2DMIT
You will see that GitBash will display the cloning's progress as it downloads the files. Once complete, head over to your chosen directory where you should see the files!
I changed e to c cuz i don't have an e drive
it states please make sure you have correct access rights.
so i'm stuck on this.
#60
I used this:
08/03/2014 (6:55 pm)
Is your Github username "your_username?"I used this:
git clone https://github.com/RichardRanft/Torque2D f:/programming/Torque2DAnd that seemed to work fine.

Associate Simon Love
The tileability of the sides is a bit weird but I really look how it looks otherwise.