Game Development Community

dev|Pro Game Development Curriculum

The Future of Torque 3D is Open Source!

by Dave Wyand · 09/10/2012 (9:03 am) · 95 comments







The Future of Torque 3D is Open Source!

The big news coming out of GarageGames today is that Torque 3D will be going open source under the MIT license. This is huge, and something that we’ve discussed internally for a while. Eric has just posted a blog talking about why Torque 3D is heading in this direction and a little of the history behind the decision. If you haven’t yet read Eric’s blog please head over there and read it first.

The other piece of news that I’m excited to share is that I will be leading the charge on future Torque 3D development with the help of, well, you, of course!

Personal Introduction

While the veterans out there know who I am, many of our newer community members may not. I’ve been a part of the GarageGames community since January 2002, and most of that time I’ve been an Associate. My first commercial game dev product was Torque ShowTool Pro in 2004, which was one of the first 3rd party products sold through the GarageGames online store. Those were exciting times when the whole Indie game development scene was trying to define itself and building momentum.

After the launch of TST Pro I began working closely with GarageGames. I’ve had my hand in nearly every game engine we have launched (plus a few internal ones), and along the way I came on board full-time (and have been for a number of years now). Last year I was the Technical Lead on Torque 3D 1.2, the last retail version of the engine.

www.gnometech.com/torque/images/blog-2012-09-10/2012-09-10-ProductHistory-Tall.jpg


In 2010 I launched my own gaming portal Zworldo that focused on Torque 3D based web games. A lot of what I learned there made its way back into T3D 1.2, which shows that it really helps to use the products you make.

How will the open source version work?

We’ve chosen GitHub to host the Torque 3D repositories. GitHub has taken on the role of the location for Open Source projects on the Internet. It allows for great community interaction, encourages the forking of code bases, and easy merging of changes. And if you’re not yet into git (GitHub for Windows and Mac are tools that really help), GitHub supports both Subversion access and automatic Zip archives of all repositories.

www.gnometech.com/torque/images/blog-2012-09-10/2012-09-10-GitHubLogo.jpg


Anyone may have Read Access to the public Torque 3D repositories. You create your own fork and do your development work there. You can merge updates from the master branch into your own as they become available. And if you have changes you wish to share with the community to be integrated back into the master, you create a pull request and someone with Write Access can review the changes and merge them in.

Who will maintain the repositories?

To maintain the master Torque 3D branch a committee will be set up that has Write Access and may respond to pull requests. This committee is dedicated to making the best core version of Torque 3D so that others can build upon a reliable foundation. Performance, reliability, maintainability and scalability (should turn that into a crest :) are the goals of this committee.

The launch committee will consist of the following GarageGames members:
  • Dave Wyand
  • Eric Preisz
  • David Montgomery-Blake
  • Scott Burns
Quote:Our mission is to build a foundation for a sustainable environment that fosters collaboration and community development of the greatest open source game development platform.

However, we don’t believe that committee members should only come from GarageGames. One of our primary tasks is to seek out and retain qualified core team members that are dedicated to our goals. Over time everyone but myself will be replaced by members of the community and the committee will be allowed to grow as required.

What will be included in the open source version?

The complete Torque 3D 1.2 source code, along with the four starting templates, will be included in the GitHub repository. A separate repository for reference documentation will be set up. Other items, such as the FPS Tutorial template, will be part of a separate download to help keep the main repository to a manageable size.

There are other, closed source components of Torque 3D that I would like to open up following our launch.

Post Launch

Following the launch of Torque 3D on GitHub, another job of the committee will be to come up with a roadmap. We’ve decided to wait until after launch to do this because we want community feedback to help chart our course. My personal list of things I’d like all of us to tackle are:

  • Performance and bugs
  • Further separation of core from other layers
  • Additional platforms (OSX and Linux)
Everything is up for discussion at this point. This really is the most transparent development process we’ve ever had.

- Dave

#21
09/10/2012 (10:21 am)
@Eric Yeah, I know it'll be done in steps. Just throwing out thoughts and ideas about things, is all.
Don't mind my ramblings, I'm just kinda buzzed as this is KIND of a big deal ;)
#22
09/10/2012 (10:25 am)
Thank you for the update.
I'd like to say the only 'silver lining' I can see from this is that T3D gets a world wide community to work on a code base.. much like how Linux OS became MS best rival.. except in this case, There is a center or corporation to direct our questions, request programming in exchange for payment, and other frills that a world wide community could help to make huge difference.

My only concern here really, is how cohesive GG can keep the community in terms of progress towards the end goal.
I can foresee variants of the Source code being sold such as is done with Linux variants.

Guess I need to read about that MIT license.

Question: For those of us with licenses to the T3D 1.1 that includes a patch for 1.2, will we see a complete version of T3D 1.2 that includes the patch?.. Much like T3D 1.2 Demo but with source.
Patching can be a hassle as I experienced just days ago when following the Tutorials for the FPS Example.

I trust GG is doing the right thing.

Edit: More questions and concerns to do with Arcane FX for a later time.
#23
09/10/2012 (10:30 am)
@Jeff:
Once the Torque 3D GitHub repo is made public, the Community Edition of Torque 3D could be made into a fork, allowing two-way merges to occur. And the best part is that the CE doesn't need to be invite only anymore, or reside within a private repo if the CE project managers so desire.

From what I've seen of the CE there are some great changes in there. But there may also be additions that don't quite work out for the master branch. The CE looks like a great place to experiment with integrating various resources and ideas, and hopefully that will continue. And once things are considered stable and all cleaned up, re-integration is just a pull request away.

The great thing is that anyone can follow this model of forking the master branch and start to experiment, knowing that it is easy to keep up with any master changes. You could even keep your fork private until you are ready to share.

- Dave
#24
09/10/2012 (10:34 am)
@Scott
It is the complete source code to 1.2, so it would be like merging a 1.1 project with 1.2. You will not have to worry about using the patch.
#25
09/10/2012 (10:36 am)
@Nathan
We had the fmod headers and the PhysX components in there that need to be externals. We cannot open source their stuff, but we can maintain compatibility.
#26
09/10/2012 (10:37 am)
@Nathan:
I'm not quite ready to share what those other components could be until I'm sure I can safely open source them. Just as I had to with the Torque 3D core, I need to make sure that there isn't something essential to them that cannot be released.

- Dave
#27
09/10/2012 (10:38 am)
Sorry, but I'll ask again since no one seems to have answered my question.
When it will be up and open for download? I mean, one may expect to have something there upon an announcement like this... Whats the plan?
#28
09/10/2012 (10:39 am)
And, yeah, the ones that Dave is currently looking into. Those were the two components that were on my radar that Dave's already done the heavy lifting on.
#29
09/10/2012 (10:41 am)
Dave is working on the repo now. We should have it up in the next few weeks. He's doing a final pass on it and we'll be getting the steering committee guidelines and process ready (as well as changes to the GG site to accommodate GitHub rather than purchasing T3D).
#30
09/10/2012 (10:48 am)
Just curious, but is it just the existing 1.2 build, or is it a updated build, like 1.2.1 or whatever?
#31
09/10/2012 (10:50 am)
So far it looks like the only casualty for making the core Torque 3D 1.2 product open source is FMOD support. Currently, the FMOD integration requires that we include their headers with the engine. So there won't be FMOD support at launch of the open source repo (it is commented out of the project generator).

The plan to put FMOD support back in is to rewrite it to work like our PhysX integration does. This means pointing to an external source for the header files and change the project generator as appropriate. If there is time I would like to do this before launch, but we'll have to see.

- Dave
#32
09/10/2012 (10:53 am)
Thumbs up for Mr Wyand!

In regards to the CE, I've already begun to see what changes we need to make in order to bring it inline with T3D-OS.
#33
09/10/2012 (10:53 am)
@Jeff:
We decided to start with vanilla T3D 1.2 for the open source repo (minus the changes I just mentioned above). People can then use that as the base reference for their own projects without trying to figure out themselves what has changed.

After launch, we can then start merging in bug fixes from our own internal repository, as well as those from the community.

- Dave
#34
09/10/2012 (10:54 am)
@Jeff- it's almost identical to 1.2 We have work that we've done since we released 1.2 but it's not tested as well as 1.2 and we wanted to start with the most stable. The committee can choose to either 1) fold in the fixes we have here or 2) fork it as a new branch for others to use.
#35
09/10/2012 (10:58 am)
Makes sense to me :)

Also, Michael, I'm only seeing part of your post. I think it got eaten.
#36
09/10/2012 (11:06 am)
@David:
For those that have a license to T3D 1.2 as it stands with FMOD and any other addition to the code that may not be released as source.. when or where will we get clarity on those Licenses.
Speaking in terms of License roll-over.
Should we expect those licenses to become null?
#37
09/10/2012 (11:11 am)
As with our EULA's in the past, you can choose to stay with the current GG EULA is you like from 1.1-1.2's releases. The MIT license is just a lot easier to deal with. And if you're not releasing your source, you can push the FMOD/PhysX back into the core for your project. We just couldn't open source their software.
#38
09/10/2012 (11:15 am)
Silly laptop touchpad hit enter before I was ready, lol

I asked for early access to the Github repository just for the purpose of seeing what we need to do in the CE to make an easy transition to the new license model. I've been hinting at and encouraging some cleanup within the CE recently just for this move. I've yet to hear from Alfio as to how he wants to maintain the CE, but what will likely happen on my end would be the creation of an in-between respository that would allow merges going in either direction. We'll know more once there's more feedback from the CE members and once the Github repository is closer to going live.
#39
09/10/2012 (11:50 am)
This change will make documenting the engine and writing books about the engine much easier.

So, can we treat the copies of the code (T3D 1.2) we have now as MIT licensed or do we have to wait until the official release?
#40
09/10/2012 (11:58 am)
You should wait for the official release. That way the code review for third-party code will be complete.