I'm aiming for making a(n) RTS game with networking so instead of doing tedious stuff like networking I wonder if there is a library/framework that will save me the effort. I intend to make that game in Unity if it is of any interest.
3 Answers
I don't believe you will find a specialized RTS network library. You can find an open source RTS engine, such as OpenRTS, or a general purpose network library, like the ones Valmond recommended.
If you will not use an RTS engine, then I recommend reading this awesome series of posts on how to design your network layer: Synchronous RTS Engine and a tale of desyncs. Or the Gamasutra article 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond
-
\$\begingroup\$ The Synchronous RTS Engine article now 404s. Here's a permanent link. \$\endgroup\$spiffytech– spiffytech2014-12-04 17:34:59 +00:00Commented Dec 4, 2014 at 17:34
-
\$\begingroup\$ Thanks, updated the link. Wait..... AltDevBlog is dead?? :( Not that I'm really surprised tbh. \$\endgroup\$pek– pek2014-12-04 17:38:49 +00:00Commented Dec 4, 2014 at 17:38
Check out Raknet, it is not a RTS-specialized library but a quite good one.
Boost::Asio is "better" but less a library 'for games', you might want to check out what it offers though.
Usually you use a lockstep approach for RTS games and I know of no 'open' libraries handling those (you might want to search for it though).
Worst case, you can make a game running on a LAN (no latency etc) and move further later (as long as you have a fully functionnal multiplayer game up and running, switching from LAN to say the internet should be quite possible).
I recently wrote a blog post about a lockstep implementation in Unity3D. You can view it at: http://clintonbrennan.com/2013/12/lockstep-implementation-in-unity3d/