The TRIBES Engine Networking Model (2009) [pdf]
gamedevs.org
gamedevs.org
That was a game with vehicles, easy modding (Tribes Football, RPG, Shifter, Renegades, anyone?), incredible mechanics (skiing), massive maps, recordable gameplay, a very active competitive community (OGL, 5150, players like Natural), And it was very playable on a 56k with some servers supporting 64+ players. Frankly, it puts a lot of titles with massive budgets, dev teams, and 18 years of learning to shame.
Thank you Dynamix.
Xtremeski came later...
The community eagerly awaits a reboot that can even come close to challenging the technical & operational superiority of T1 & T2. What masterpieces they were.
And 18 years of learning? Sorry but most of the people and companies from back then are long gone. Best i can tell there are very few game development courses out there, and fewer still focus on the network plumbing.
Today it's more common for multiplayer to only be broken in a limited set of ways, instead of "we are hacking away at a fundamentally wrong architecture for this problem".
While true generally, that doesn't preclude us from some epic failures. My understanding is that The Division implemented client-authoritative simulation and is now in a hopeless battle against those that would modify their client for an advantage...
IIRC, the Master Server was added in 1.04, alongside OpenGL support. Before then, it was Glide-only. Tribes was basically built for 3DFX cards.
Too bad the real Tribes 2 turned out to be such a disappointment.
Now Tribes:Vengeance and the free-to-play nonsense that is Tribes Ascend? Those have brought the franchise to a near-standstill.
Though... for this guy in particular it came too late. At this point Tribes: Ascend will probably remain a game I at one point played every night.
By the time they'd patched it well-enough that it actually ran somewhat reliably, my friends and I had completely lost interest in it. Tribes 2 was a franchise-killer. I never even tried Tribes: Vengeance after that debacle.
(Tribes Ascend started out great, then became a textbook case of how pay-to-win makes good games terrible.)
If you're falling above 72km/hr and jetpack, they do nothing and you actually fall faster. Under 72 it decelerates as you'd expect. This is purely because they tried to impose variable physics based on your velocity, which in turn was a bandaid to address other issues.
They really shot themselves in the foot and only as of about 6 months ago - if that - has a small subgroup of the old devs been allowed to start unravelling the mess and make it more like Tribes 1. Before that, they basically ceased work on the game and abandoned it in favour of throwing all their devs at their next cash grab endeavour, Smite.
Criticize them for not allocating enough staff to maintain Tribes Ascend, sure, but it's unfair to call SMITE a cash-grab.
I would think hitscan weapons would make keeping things visibly smooth and in sync harder rather than easier.
Now there are fewer incentives to optimize to that degree...
https://developer.valvesoftware.com/wiki/Source_Multiplayer_...
https://developer.valvesoftware.com/wiki/Latency_Compensatin...
http://gafferongames.com/networking-for-game-programmers/
http://gafferongames.com/building-a-game-network-protocol/
http://gafferongames.com/networked-physics/introduction-to-n...
So was the Ghost Stream Manager meant to also help combat packet loss? Or is it more simply a form of "Game state redundancy"? I'm speaking out of wheelhouse here.
I'm always a bit fascinated by these write-ups because so much has to happen in such a small window.
The engine overall was pretty amazing, of course it had it's warts. I still remember the networking code pretty well. I played with the physics part of the engine quite a lot and rewrote and modded it a few times. I usually wanted networking in my experiments, so I learned a lot about that part of the engine as well. I don't play with gamedev anymore, and probably wouldn't use Torque if I did, but I really miss it and the community it had. I still check in on it once a year or so, and there was a blog post recently thanking many community members from the past, and my old username was on the list :') I'm looking through my old forum posts now, wow was I annoying for a few years!
For anyone who wants to look, the latest version of the engine is now MIT licensed [0]. It's been through 2 major versions, and seems like they've simplified the inheritance, so I'm not sure how much is still intact, but netObject looks a lot like I remember. I would recommend redding the comments in the header file for a good overview of how it works. [1]
[0] https://github.com/GarageGames/Torque3D
[1] https://github.com/GarageGames/Torque3D/blob/bacf0cde2af17ab...
The level of camaraderie, intensity, found in large outfit/platoon fights was unparalleled. PlanetSide 2 can't compare.
It's really a shame that the game had to go downhill like it did. SOE has a habit of killing incredible games.
There's still people playing every evening.
My handle was Duhck :)
Tribes was... magical. Tight knit player community, active modding community, amazing map design and tournament play.
Team Rabbit, Arena, and 10v10 CTF consumed the majority of my time from '98-'06
Thanks for tribalwar. It was my HN before HN, and my slashdot before slashdot. Lots of hours spent on that site. I was Zoidberg in the community.
I would need it for a Unity project, so if it's Unity-ready already that would be great, but honestly at this point I'm willing to just take what's out there as a starting point and work with it.
I did find this: https://community.unity.com/t5/Asset-Store/Open-Source-UdpKi... but it's apparently unsupported now and the author has moved on to other things.
There are some other packages on the Unity Asset Store but most of them are focused around Unity-to-Unity communication, and I'm looking for something more generic (since my architecture is actually Unity-to-NodeJS currently).
If you are building something for mobile, consider the state of UDP support over AT&T, Verizon, T-Mobile and Sprint. It's poor. You will be reimplementing so much of LLAPI and Unity's relay servers that it may be more effective to port from NodeJS to Unity and run headless.
This is a very mature library. Supports Unity despite not having an asset store package.
It's got the same sort of channels/reliability model that enet and RakNet have, just implemented in C#.
EDIT: https://www.assetstore.unity3d.com/en/#!/content/47846
So you can choose any webrtc binding for any language you use server side.
"Get the enemy--shazbot."
I never played the original Earthsiege I and II titles, but Starsiege was super cool for me as a kid, and it wasn't even really because I got to pass the game (it was kind of difficult for me at that age so it probably wasn't until ten years later that I actually played it again from the beginning and passed it).
The main thing I loved about the game was the big backstory book that was included with the game that really outlined the whole thing for you and gave you a pretty cool connection with the characters (looking back it was like a mix between The Matrix and the Terminator franchises in terms of story).
I'm not a movie director but occasionally I still find myself thinking about what a cool movie it would make and wish a new game for it would be released (since the last attempt got *nixed).
Tribes was cool too, don't get me wrong, and I played a fair amount of it too (though by 26.4 kbps connection kind of hurt my online play, lol), but compared to the more story driven Starsiege, I never got into it nearly as much.
"Acknowledgments Though several of the ideas presented here are unique to TRIBES, others have been assimilated from other sources over countless years of reading and the authors, being too lazy to research their sources, would like to thank everyone in one sentence."