Turn Based, Simultaneous Execution - an Introduction
By Jørn "Innocence" Gaarde

Everyone who has ever played a strategy game knows what turn based means: It means the players are taking turns moving their units. So the first player moves all his units, then the next player takes his turn, then the next, and so on until all players have moved. Very simple and straight forward, and when dealing with board games probably the only usable way to control the action.

This is most likely what the computer game companies thought, as is evident from the majority of titles that use this model, including the classic Civilization series.

There are however a couple of very serious flaws with this model:

  1. It's unfair
  2. It's time consuming
  3. It doesn't handle idle players(dropouts) well
  4. It's prone to cheating

Let me elaborate on these points:

Unfair?
How many times you have been in a game where you had major reinforcements enroute to fortify one of your main cities? Your next move will place the units in the city, but since the enemy moves before you he's able to capture the city right in front of your mighty army. That sucks - in the real world both your troops would have moved at the same time. Your reinforcements would have reached the city in time and you wouldn't have lost it.

Time consuming?
Take the example of a classic turn based game played over the Internet with players all over the world in different timezones. It'll take an hour or so for each player to make a move and pass it on. But the next player might not run his turn before the following day. So with two players it'll take two days to make a turn. For ten players ten days and so on. So it'll be at least ten days from when you've made a turn until you get another turn... Unacceptable.

Dropouts?
Say Player A has mailed the turn to Player B, but after three days Player C still hasn't received any turn, and after failing to contact Player B it becomes evident that he's nowwhere to be found and has most likely lost interest in the game. Given that there is a way to skip a player's turn in the game, Player A must now mail his turn to Player C, and after five days of waiting the game can continue.

Cheating?
We all know this situation in single-player games: You are about to move your units into a large and very decisive battle. What do you do? You save the game, attack the enemy and if you loose you reload the turn and try something else. See the problem? Who's stopping a player from doing the same thing in multiplayer games? A player could save and reload the turn until he gets the results he wants, then forward the turn to the next player. When you receive a turn and the last player won an nearly impossible battle over you, how can you really be sure he didn't cheat?

The solution?
So what to do? Well, the solution to all of these problems is a turn based, simultaneous execution model.

So what is it?
Glad you asked! The basics go like this:

One person is appointed game Host. This person, who might be a player as well, sets up the gameworld and rules, then sends each player a separate turn file.

The Host is the only person who can generate a turn in the game! See, players don't move their units physically in game - they only give Orders. Using Chess as an example, instead of moving your Queen from B2 to B4, you'll give the Order "Next turn move my Queen from B2 to B4". So generate means that the Host utility will collect Orders from all players, then execute all Orders at the same time, hence the term simultaneous execution.

Naturally you wont have to write down the Orders - in fact such games play much the same way as classic turn based games, since the game generates the Orders for you from the decisions you make while reviewing your turn. For example, you simply tell your unit to move to a particular place, and the game will create the appropriate Order set for you to send off to the host.

Once the players have received their first turn, the game process loops in the following way:
1) Each Player opens his new turn and state Orders for the next turn, then sends this Order file to the Host
2) The Host sets a deadline for the Order files to be due, then generates the new turn and sends a new turn file to each player.
Repeat from 1 until a winner is declared.

See how this deals with the flaws mentioned before?

  1. It's fair: All Orders are carried out simultaneously in the Host program
  2. It's less timeconsuming: It doesn't matter if there are two players or several thousand since they can all plan their Orders at the same time.
  3. It ignores dropped players: If a player doesn't send in his orders it wont matter a bit, since the Host will generate anyway just without new orders for the dropped player's units.
  4. It's impossible to cheat: A player cannot save and reload since the Host generates the turn. And since the Host file contains a exact copy of the player files, player can't even hack their files to add units and more, as the host would simply deny the inconsistency. Furthermore, each player's turn file only contains data for that specific player. So even if a player hacked the file to find out where the enemy was he wouldn't be able to get any extra info, simply because it only contains data the player has knowledge of.

Turn based, simultaneous execution vs. simultaneous turn based
Some games use a third turn based model: In these games all players must be connected online with each other, and thus have much in common with the Real Time Strategy (RTS) genre. Unlike RTS, the game still runs in turns and players move units about like a classic turn based game, but do so simultaneously in real time. This simultaneously turn based (real time) model has nothing to do with the turn based, simulatneous execution model described above, yet they are often confused.

Examples of Classic Turn Based, Turn Based, simultaneously execution and Simultaneous Turn Based games:

Classic Turn-Based
Turn Based, simultaneous execution
Simultaneous Turn Based (Real Time)

Civilization I and II (and quite possible III as well)

Stars!
CivNet
Alpha Centauri
Combat Mission
Age of Wonders