Torque Network Gaming Library Released Open Source
An anonymous user writes "GarageGames launched the Torque Networking Library under the GPL today - this is the PC game networking technology behind Tribes and Tribes 2. It's also available under indie and commercial licenses for closed source projects, but OpenTNL.org is the home for the open source release, which also has an official FAQ online. Along with the library itself is a master server implementation for game tracking, a graphical test app, Zap and a retro-styled space shooter."
I've been using the Torque engine for sometime. And I gotta say, these guys are doing it right! People still play Tribes 2 and it can handle 60 (yes six-zero) players on a beefy box with little lag. Props out to them.
-_-
Great! Now, who's gonna extend this and built a P2P open-source MMORPG?
Anyone? Anyone? Bueller?
Given that Doom, Quake and Quake II have all been GPLed, presumably it literally is a matter of time until Quake 3 goes the same way.
I've looked at the torque network layer while it was still part of the torque engine. It's well suited for developers who want a small scale (32 players or so) network game, particularly if its a first person shooter.
I wouldn't even consider it for a mid-size or larger multiplayer game, as it lacks important security features and IMO doesn't give enough control over the actual network protocol due to the emphasis on RMI.
Other network layers to look at are OpenPlay and , both of which are also also free and OpenSource.
Disclaimer -- I contribute to OpenPlay.
Carmac is a believer in OSS. although it's good business to ensure your engine has good penetration, by the time ID releases the code, the next generation looks nothing like the code GPL'ed. The benifit is much smaller then you imply.
Quake 2 c code looks nothing like Quake which both look incredibly different from Doom.
"There are more things in heaven and earth, Horatio, than are dreamt of in your philosophy."
A number of new features have gone into TNL. But more importantly, it would take a lot of work to rip the networking out of Torque and abstract it for general use. By getting TNL, all this is done for you, and documented. The added cost is largely for the time and effort all of this will save you. If you just want to start a game from scratch rather than adding networking to an existing project, the full Torque engine is probably a better option. Of course if you are doing an open source project, there is no added cost :)
Disclaimer: I am a GarageGames employee
With a cursory look at the docs, it looks like it wouldn't be too bad - it looks to be fairly OO at the moment, so you're just looking at a translation layer implementation. OTOH, it might be tricky to get all the efficiency on it, since it will do ints and floats to *bit* precision, and I don't know how well Ruby would interface with that...
I'm not trying to be cynical. The original post seemed to suggest that id was being completely altuistic, that was naive. That's all I wanted to say. As far as your suggestion of "it's the right thing to do" that is not quite right either. In an old Game Developer Magazine article id was quoted as saying that Linux versions make no sense from a business perspective, that they just do it "because it is cool". Well, they can afford to be cool. Other developers can't.
Also working with torque, and definitely second those comments. Its high-quality, fantastic code for FPS gaming, but if you try to extend it too far you run into all kinds of problems, presumably since the designers never had intentions of extending the engine for anything other than Tribes2. I, for instance, am trying to make a small, fps-ish MMORPG, and the hardcoding of their terrain management and rendering code is driving me around in circles because its only designed for the very small Tribes2 maps. That said, you won't find an engine for anywheres near the price thats half as good, and cross-platform to boot.
Concerning the network code, I haven't delved into it much, and don't expect to have to since its already well known that the Tribes2 netcode was superb.
Can give me a triple punch of an architecture including the best of:
* Twisted
* ACE
* OpenTNL
Any other neat ones you can think of?