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

#61
09/11/2012 (4:04 am)
Badges? We don't need stinking badges. Not if we have t-shirts.
#62
09/11/2012 (4:18 am)
...or a hoodie ;)
#63
09/11/2012 (6:26 am)
How's it gonna work for those that bought T3D way back?
Can we simply assume the contents minus things like FMod to be open sourced under the MIT license? Or in what legal context can one sell a mod or otherwise derivative/modified work based on the non-open-source T3D?
#64
09/11/2012 (7:53 am)
It is great to see so many old-timers making their way back!

@Lethal:
The source we're releasing under the MIT license is very close to the retail version of T3D 1.2. The repo on GitHub will have all of the copyright headers updated so you'll be free to use those. All previous Torque code still falls under the EULA at the time of purchase (or any newer one you've accepted).

As far as releasing your own work, the simplest thing to do is to wait until the open source repo is public and merge your code with that and fix any issues that come up. Now you're free to do what ever you wish with both your code and the T3D OS code. Sell it with full source, sell is as a compiled product, release under an open source license, etc.

If you're only interested in releasing for an older version of Torque 3D, such as 1.1 or the non-open sourced 1.2, then all the same licensing rules would apply as before.

- Dave
#65
09/11/2012 (8:12 am)
Dave, can you explain the bit about older versions of Torque again? I'm not sure I'm parsing you correctly. I am currently licensed for TGE 1.5.2 and T3D 1.0.1/1.1. Am I free to release games from those engines in compliance with the MIT license, assuming I don't include any proprietary headers (PhysX, FMOD)?
#66
09/11/2012 (8:21 am)
@Ronny
I just read that as badgers and completely agreed, then went looking through the thread for why someone thought we needed badgers ...

... obviously brain needs more tea ...
#67
09/11/2012 (8:30 am)
@Thomas:

This *only* applies to the *new* release under MIT license. All *older* versions you have, still fall under the licenses you have with those sources etc..

For the *new* release coming up:

http://en.wikipedia.org/wiki/MIT_License

Essentially you can do whatever you like, including keeping your code and assets closed. Although anything that you can return to the community is highly appreciated.

But when it arrives, you can download it for free from Github ;)

#68
09/11/2012 (8:33 am)
Also, (and I know Dave mentioned this either in this topic or the other one), you can release mod tools, world editors, etc. This should be a great boon for the MMO developers who were worried about T3D's license in terms of tool releases.
#69
09/11/2012 (8:35 am)
@Thomas:
Nothing changes for any engine you've purchased and the last EULA you accepted is still in place. All that we are releasing at this time under the MIT license is a version of Torque 3D 1.2 (which very closely matches the retail version of T3D 1.2).

However, you could obtain a copy of Torque 3D from the open source repo on GitHub (once it is made public) and port your own code to it. Now you can choose to do what you like with both the Torque 3D MIT licensed code and your own code. Keep it all closed source and sell it as a traditional game; sell your own code under a proprietary license that other Torque 3D MIT licensed developers may use but may not give away your code themselves; give away your code along with the Torque 3D MIT licensed code; etc.

I hope that clears things up.

As an aside, unfortunately TGE 1.5.2 won't be able to be released as open source. It makes use of proprietary 3rd party code that has been fully integrated into the code base. It may be possible to release an earlier version of TGE under and open source license, but right now we're focusing on Torque 3D.

- Dave
#70
09/11/2012 (8:36 am)
@Dave
The Problem is that we already changed so much - including the game relevant class hierarchy - that a merge is no longer an option. Previous T3D code is - in fragments - all over the place, so it can't be just copied over to another project. We'd practically have to start all over again.
The Idea was to license it as a mod to Torque, but expecting someone to aquire an old T3D license just to be able to use/license our mod seems unreasonable.
See here for more information on how deep the changes go.
Is there a way to exclude certain parts of the code and change the old EULA to a new OS-license?
#71
09/11/2012 (9:16 am)
@Lethal..:

Wait a minute.. are you saying you basically have no T3D left? Then I don't really see the issue (to be honest) .. just replace the old leftovers with the MIT equivalent code. If there even is a need to do that. Some code might not require any change at all.

I suggest you wait until the release, download it, and use a merger tool to find if you actually need to change as much as you think you do.
#72
09/11/2012 (9:22 am)
The mod tools news is fantastic from where I'm standing - I'm sure Eric remembers the long process we went through discussing the peculiar needs of my game.

Having to port stuff over is less-good news in the short term, since I've been staying with releases that have OS X support, but I'd like to be able open up development to the community I'm supporting without having to abandon OS X.
#73
09/11/2012 (9:48 am)
@Lethal:
That is always an issue with large engine changes. And from what I've just read of your project, this is more than a mod. It is a complete refactor.

Speaking as someone who used to sell game dev tools, you want as large an audience as possible if you're looking to sell your work. If things work out as we hope, we'll have the largest audience ever starting with the MIT licensed master branch. It may be best to pause and think about how to be compatible with that, rather than release against a proprietary older version.

I would also be hesitant to make T3D 1.1 open source (which I believe is what you're asking) as now we have two base versions floating around that people would expect to be updated. And T3D 1.1 doesn't contain all of the bug fixes that are in 1.2, so it may not be the best experience for new users that happen upon it rather than a 1.2 MIT licensed engine. If we released it "as is" with the expectation that we won't update it (but of course, the community could), that may not be the best environment in which to release a salable product.

But that aside, I would recommend you contact David Montgomery-Blake about licensing. I'm not as involved in the business side as he is.

- Dave
#74
09/11/2012 (12:28 pm)
As one of the first serious proponents of open sourcing the engine (back in 2007 Mark F. and I started really pushing for it), I'm extremely happy you guys decided to go this route!

I think the one major need for the engine as a whole to work successfully as open source is to figure out a "gem-like" system similar to what Ruby has. I'm honestly not sure how much the engine has progressed towards a component system in the last several iterations, but the direction the old Torque 2 branch was going would be one path towards allowing for plug and play add-ons.

Great move guys, thanks for seeing the vision through!
#75
09/11/2012 (4:07 pm)
@Stephen:
Cool to have you drop by. Some component work has made its way into the current T3D but it really isn't in use. The full push for components was to come with a brand new version of Torque where we could safely break backwards compatibility, but that was never completed due to the IA collapse and other factors. Torque 2D and iTorque 2D are the main users of the component system now.

Moving T3D to a component system would be great, and the 2D engines have shown it is possible within the SimObject and TorqueScript subsystems. Of course, to do it right it should replace GameBase on up (or lower) so it isn't a small project. Sounds fun!

- Dave
#76
09/11/2012 (6:07 pm)
@Dave,
The component system is something I absolutely want. It is also next on my list after the terrain generation work. So I will have time allocated to wade through the existing code and start working on this. I am hoping to see the working system in T2D to give me some ideas of how to proceed. I am also hoping it could be cross engine. It would be a kick in the pants to create a component for T3D that also works in T2D. Massive code reuse!
#77
09/11/2012 (6:23 pm)
The TGB component system (behaviours) is OK, but a little verbose. You need to specify a line of code to actually tell the editor about editable fields, so it's not as simple as specifying a variable to expose it (like in Unity). There's also an experimental system in the works for better, more complete components. GG would have the last word on simply exporting that to the MIT version of T3D, but I'd expect them to already have it at least partially in the works.
#78
09/11/2012 (8:17 pm)
There is a partial/beginning framework in T3D already. I will have to compare, but I bet they are the same or similar code. So maybe the thing to do is develop in T3D and port to T2D. I dunno, maybe it is wishful thinking to have the 2 things work together. It would help with 3rd party integration. I mean if you were looking to provide a "component" for one engine and find a completely different component system in the other engine you might wonder about that.
#79
09/11/2012 (11:54 pm)
Wow ... wow ... wow ... and again wow!!!


I hope it all works out for GG and I hope the engine grows from strength to strength.


Also interested to see what the other "engines" do ... 8-}
#80
09/12/2012 (10:36 am)
So what about the mac is that a dead end or will it get updated and included or is it just going to be turned over as is?