Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

What is the current state-of-the-art to network real-time strategy games?

I seem to recall that a few years ago, some AAA titles only transmitted the player inputs (Starcraft 1, Age of Empires). Since this requires you to keep everything else totally deterministic, is this still a viable option? Synchronizing random number generators seems feasible, but what about subtle differences in FPU implementations etc..?

Or are strategy games using something closer to action-game networking, where individual entities are transmitted instead (with some form of prediction and (delta) compression)?

If so, how are volatile items like projectiles treated?

What about client/server versus peer-to-peer? I'm guessing that all this is strongly interrelated.

Thank you for your time!

share|improve this question
    
Duplicate of RTS Game Protocol - yes this is still how it's done. As for differing FPU implementations, see here and here. –  BlueRaja - Danny Pflughoeft Sep 1 '11 at 15:18

3 Answers 3

up vote 5 down vote accepted

http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php This is still how networking is done in RTS games. P2P is also the normal way of handling connections. Using a lock timestep model however results in the irritating case of desync and cheating handling. There is good way of recovering when a desync happens and all RTS games simply says "Quit the match". Bug tracing desync errors is also a nightmare.

share|improve this answer
1  
Another good article on locked timestep network games: altdevblogaday.com/2011/07/09/… –  tenpn Sep 1 '11 at 13:39

Not for RTS but any fast-paced game will need interpolation & prediction

http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

share|improve this answer

This is a great read, and will answer a lot of your questions:

http://udn.epicgames.com/Three/NetworkingOverview.html

In my strategy/tower defence game, I am using a client/server model and am able to keep everything deterministic so far. The client only sends the server requests to do stuff (but doesn't ever actually do anything), and the server sends updates, creations, and deletions down to the clients when things change. Even though my game is currently deterministic, I never trust my clients to do anything right, the server is the boss and has full control over the game. The client is just a dumb terminal.

To make everything really simple, I am using a combination of Reflection and Eventing to keep my entities completely in the dark about the networking side of things. I also use the concept of an Actor and a "Force" (as opposed to an Actor and Pawn in an FPS like Unreal). This allows for really nice encapsulation and a place to store the Force's money and stuff.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.