Difference between revisions of "Version emulation"

From Worms Knowledge Base

Jump to: navigation, search
m (Picking the emulated version)
m (Picking the emulated version: Removed "you" references.)
Line 5: Line 5:
 
== Picking the emulated version ==
 
== Picking the emulated version ==
  
You can't emulate newer versions than the one you're currently on (obviously). So for example, if you're using v3.6.31.0, you can't emulate v3.7.2.1.
+
In an online game with a mixture of players using different versions, the oldest version is the one emulated. So if someone joining a game using v3.6.31.0, and one of the players uses v3.6.29.0 and all other players use v3.7.2.1, then v3.6.29.0 would be emulated, because it is the highest version everyone would be able to emulate.
 
+
Thus, in an online game with a mixture of players using different versions, the oldest version is the one emulated. So if you're joining a game using v3.6.31.0, and one of the players uses v3.6.29.0 and all other players use v3.7.2.1, then v3.6.29.0 would be emulated, because it is the highest version everyone would be able to emulate.
+
  
 
But there are some exceptions to that: if a host detects that some players in the game would improperly emulate the version that should be emulated (according to logic described above), then an older version is emulated. For example, v3.6.20.2 has an improper v3.6.20.1 emulation, and this case is handled in v3.6.20.3+. Thus, if, in a game hosted with v3.6.20.3+, there is a mixture of v3.6.20.1 and v3.6.20.2 players (and no older version is used), then the host would force emulating v3.6.19.19 rather than v3.6.20.1, in order to prevent v3.6.20.2 players from desynchronizing.
 
But there are some exceptions to that: if a host detects that some players in the game would improperly emulate the version that should be emulated (according to logic described above), then an older version is emulated. For example, v3.6.20.2 has an improper v3.6.20.1 emulation, and this case is handled in v3.6.20.3+. Thus, if, in a game hosted with v3.6.20.3+, there is a mixture of v3.6.20.1 and v3.6.20.2 players (and no older version is used), then the host would force emulating v3.6.19.19 rather than v3.6.20.1, in order to prevent v3.6.20.2 players from desynchronizing.
  
As for replay files recorded with later logic versions than the one you're currently on, they can't be played back at all.
+
Similarly, there is backwards compatibility but not forwards compatibility when reading replay files. Thus, for example, a v3.6.31.0 user can watch replays recorded by W:A v3.6.31.0 or prior, but not those recorded with versions later than v3.6.31.0.
  
 
== How are versions emulated? ==
 
== How are versions emulated? ==

Revision as of 19:54, 28 March 2013

(Up to Game logic)

Since Deadcode (later joined by CyberShadow) started maintaining Worms Armageddon, many updates have been released and version emulation has rapidly been implemented in order to let players with different game logic versions play each other.

Picking the emulated version

In an online game with a mixture of players using different versions, the oldest version is the one emulated. So if someone joining a game using v3.6.31.0, and one of the players uses v3.6.29.0 and all other players use v3.7.2.1, then v3.6.29.0 would be emulated, because it is the highest version everyone would be able to emulate.

But there are some exceptions to that: if a host detects that some players in the game would improperly emulate the version that should be emulated (according to logic described above), then an older version is emulated. For example, v3.6.20.2 has an improper v3.6.20.1 emulation, and this case is handled in v3.6.20.3+. Thus, if, in a game hosted with v3.6.20.3+, there is a mixture of v3.6.20.1 and v3.6.20.2 players (and no older version is used), then the host would force emulating v3.6.19.19 rather than v3.6.20.1, in order to prevent v3.6.20.2 players from desynchronizing.

Similarly, there is backwards compatibility but not forwards compatibility when reading replay files. Thus, for example, a v3.6.31.0 user can watch replays recorded by W:A v3.6.31.0 or prior, but not those recorded with versions later than v3.6.31.0.

How are versions emulated?

Personal tools