I'm working on a real-time space strategy game clone which at its time did not have any multiplayer option. I want to add multiplayer to it.
The gameplay itself is relatively long: about 10-15 hours of gameplay needed for complete a playthrough. This is very long and I don't want to force the players to play it uninterrupted or lose the game state due crash/power outage.
How do similar games solve this kind of problem? Save multiplayer game just like a singleplayer game?
In singleplayer mode, the player can pause and accelerate the simulation time (In pause mode, the player is still able to issue orders, build on planets, etc.).
How can this feature be translated into the multiplayer mode?
Let's assume there are more than 2 players (additional AI or human players) and one player attacks the other which switches the game into space/ground battle. These battles can be paused as well to issue orders.
What should happen with the other non-involved players? Should they wait? Should they be forced to operate only in their own kingdom?
Update: Just some details about the game.
I'm cloning this game. The clone is released as open source, therefore, its likely someone will create a cheating version. This is an issue but not that important now. I think I solve it by moving the game state and control between the players: first it runs on the first player's machine, then moves to the second etc.
I would like to put more emphasis to the third question above:
What should the other players do when two are engaged in a battle?
Battles are fought on different screen as the kingdom management screens. In single player mode, the battles automatically stop the game world and neither the player, nor the AI is able to manage its kingdom during the battle.
Civ VI is turn based although in multiplayer it plays out in real time (you get a certain number of minutes/seconds per turn). So it faces the same challenge--4+ players doing a game that lasts forever. It solves the problem by allowing players to save the game and then come back to it later. When you go to create a server you have the option of starting a new game or starting off with one of your saves. If you start with a save, then each player chooses whatever civilization they had before and things pick up where they left off
I've never seen a game solve this problem. You might allow players to vote to postpone the game and resume it at a later time (i.e., a save feature), which could make the long game sessions bearable, but I don't think pausing will work in multiplayer.
I dont think you can do it that way.
You cant have a multiplayer rts that allows pausing that allows issuing orders. Players would pause, issue orders, wait to see what the other players do, instantly pause again as soon as it wants to change anything and issue new orders.
This would not be a RTS it would be a CST (Chaotic Turnbased Stategy) game.
You might consider giving players that aren't at the keyboard the ability to create reactions to certain situations. Since these are preset reactions, they won't be as good as an actual player on standby, but it also allows the game to continue without players being available.
I'm working on a game right now which allows you to program reactions for your characters, so that if you engage another player in the game, without you being available, then your characters still respond.
I'm using simple macros to help players map out their characters reactions. I'm making some very generic and others very complex... for example
That way - even though not all players are available the game can continue to run. Conversely, depending on how much effort a player puts into his "AFK" scripting, then the better his team will perform.
Of course, it's still in progress - we will see later on just how well it turns out :)
You may want to consider a 'phase-based' system. Each phase may be considered as a single pause. Players are allowed to issue instructions during each phase and then have the instructions carried out. Instructions that are issued in the first phase will only be executed in the second phase by the units.
Work pausing into the gameplay. Give each player a pause at the beginning of the game, and then force them to buy pauses with in game currency.
Limit the number of consecutive pauses, a pause by one player would prevent pausing by another player for 10 minutes unless that other player pays for it at a penalized price.
Also limit the length of each pause, and allow other players to pay money to undo the pause.