3

In this question the answer (an amazing one) explains what might happen and if it will ever happen on a single player scenario running on a single computer. But what about multiplayer on a network? Or online? What if in my computer it was finished first while in the other guys computer it was his that was finished first and because of network traffic the order was messed up?

When me and my friends play multiplier we disable wonder victories and we have a law that whoever starts a wonder he owns it (rather than when he completes it) unless it is destroyed before completion. So this never happened to me. Has this ever happened to anyone? I know this case is improbable but is it possible? IF it is what would happen?

4
  • 1
    The host/person with the lower ping wins. There could be hilarious desync issues arising from that, though. Commented Nov 28, 2014 at 9:40
  • What if the host did not take part in the wonder building and two other people (or more) were involved? Commented Nov 28, 2014 at 9:44
  • Also what would happen? I mean it will show on my screen (let's say I'm the slow one) that build completed and I got the wonder and then I get from the host that I did not. Let's say we are not on the same network and each player is in a different continent. By the time this happens what will happen to my resources? will they gain the benefit of the wonder? Commented Nov 28, 2014 at 9:45
  • 1
    Well, the person with the lower ping probably wins. However, depending on the architecture, the micro-turns could also be done in a certain order, which would lead to the same situation as in the single player scenario. In any case, the game's behaviour in that case is probably undefined, a crash, desync problems are possibilities, but no certainties. Commented Nov 28, 2014 at 9:59

1 Answer 1

5

Rise of nations uses a lockstep mechanism for simulating the game and the user input.

This means that the simulation of each turn only starts when all people have acknowledged that they've received what every other player wants to do, something like this.

  • Simulate turn 10
  • Send user input ("I want to move my worker here") and mark it as starting in turn 12
  • Get input from other players
    • If it's user input, send a acknowledgement to the other players
    • If it's an acknowledgement, store that that client for that turn to run
  • When all clients are ready for turn 11, repeat this list for the next turn

That algorithm means that every computer will be running exactly the same simulation, meaning that essentially you're back to the single player version and one person will be happy and the other sad :(.

p.s. How does a real time game have turns? Well they advance without user input (i.e., whenever you know everyone has run the previous turn) and they're just really short (there's no set number of course, but can be anything from 60 turns per second to a few turns per second, this is decoupled from the graphics so the graphics will just continue the animation so it looks smooth in between turns).

3
  • wow, even though I am a software developer I did not know this. Thanks Commented Nov 28, 2014 at 10:30
  • 2
    It's an algorithm that is basically developed for and only used in RTS games so that isn't a bad thing =p. I know I didn't learn about it in school :)
    – Elva
    Commented Nov 28, 2014 at 10:32
  • Well yeah but I am currently doing my master's degree in Video game development so it's good to know :D Commented Nov 28, 2014 at 10:33

You must log in to answer this question.

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