10
\$\begingroup\$

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!

\$\endgroup\$
1

3 Answers 3

5
\$\begingroup\$

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.

\$\endgroup\$
1
2
\$\begingroup\$

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.

\$\endgroup\$
2
\$\begingroup\$

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

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

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .