Age of Empires IV: Anniversary Edition

Age of Empires IV: Anniversary Edition

View Stats:
rejoin?
i have had my game crash a few times now with my friends is there a wy to rejoin or will there ever be a way to rejoin implimented into the game at some point if there is no way to rejoin?
Originally posted by erb:
There is a way for it to be implemented.

It is not possible with the way the game handles playback (at the moment).

They would need to restructure the game engine for it to do this, it's just how the essence engine handles gameplay.

Reconnecting to a game (in its present game state) requires server authoritative architecture. That would mean that the game data would be stored on the server. At the moment it is peer to peer based (client authority or deterministic lockstep).

How it currently works:

Basically, each client communicates commands through a server and maintains the gamestate through a continuous connection to the clients in the lobby.

If a client disconnects and that chain is broken you would need to recreate the game state from the beginning.

In a replay you may notice an inability to rewind gameplay. This is because the replay literally re plays all commands as they were recorded to reach the current point in gameplay. It cannot replay commands backwards. It cannot skip events to jump to a specific timecode.

One way they could implement a rejoin feature would be pausing the gamestate when a player disconnects while the lobby waits for the disconnected player to rejoin.

On rejoining that player then has to play through the entire game at an accelerated pace, like fast forwarding through a replay. This is because the 'present' gameplay is based off of all events that preceded it.

Once the reconnecting player reaches that point the game could then resume.

Temporarily replacing the player with AI could also work, so that the game doesn't need to be paused. The reconnecting player would have to wait approx 1/4 to 1/8 the elapsed time (rejoining a game 30 minutes in would take 7.5 - 3.725 minutes)

This is not feasible for standard gameplay, so they have not included it as a feature.

To have the game resume without requiring a full pause of the simulation, or allowing a player to join at the current gameplay state instead of 'fast forwarding' from the beginning, would require the server to handle all game data rather than keeping it client side.

Since this is not how the Essence Engine handles its multiplayer netcode it would require a rebuild of the game engine.

One would assume this is on a list of things that should be implemented. It's just difficult to do so with this game engine in particular, all other Relic RTSes have this problem.
< >
Showing 1-3 of 3 comments
The author of this thread has indicated that this post answers the original topic.
erb Mar 16 @ 10:35am 
There is a way for it to be implemented.

It is not possible with the way the game handles playback (at the moment).

They would need to restructure the game engine for it to do this, it's just how the essence engine handles gameplay.

Reconnecting to a game (in its present game state) requires server authoritative architecture. That would mean that the game data would be stored on the server. At the moment it is peer to peer based (client authority or deterministic lockstep).

How it currently works:

Basically, each client communicates commands through a server and maintains the gamestate through a continuous connection to the clients in the lobby.

If a client disconnects and that chain is broken you would need to recreate the game state from the beginning.

In a replay you may notice an inability to rewind gameplay. This is because the replay literally re plays all commands as they were recorded to reach the current point in gameplay. It cannot replay commands backwards. It cannot skip events to jump to a specific timecode.

One way they could implement a rejoin feature would be pausing the gamestate when a player disconnects while the lobby waits for the disconnected player to rejoin.

On rejoining that player then has to play through the entire game at an accelerated pace, like fast forwarding through a replay. This is because the 'present' gameplay is based off of all events that preceded it.

Once the reconnecting player reaches that point the game could then resume.

Temporarily replacing the player with AI could also work, so that the game doesn't need to be paused. The reconnecting player would have to wait approx 1/4 to 1/8 the elapsed time (rejoining a game 30 minutes in would take 7.5 - 3.725 minutes)

This is not feasible for standard gameplay, so they have not included it as a feature.

To have the game resume without requiring a full pause of the simulation, or allowing a player to join at the current gameplay state instead of 'fast forwarding' from the beginning, would require the server to handle all game data rather than keeping it client side.

Since this is not how the Essence Engine handles its multiplayer netcode it would require a rebuild of the game engine.

One would assume this is on a list of things that should be implemented. It's just difficult to do so with this game engine in particular, all other Relic RTSes have this problem.
Last edited by erb; Mar 16 @ 10:38am
erb Mar 16 @ 10:41am 
Oh and why they don't do it server side is more than just the game engine. It's because that would require much more computing power on the servers than keeping it client side.
Last edited by erb; Mar 16 @ 10:42am
Jura Lith Mar 16 @ 10:43am 
Originally posted by erb:
Oh and why they don't do it server side is more than just the game engine. It's because that would require much more computing power on the servers than keeping it client side.
i gotcha, its a shame ill ust have to figure out how to not have the game crash this often with my friends then
< >
Showing 1-3 of 3 comments
Per page: 1530 50

Date Posted: Mar 16 @ 10:03am
Posts: 3