This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
client_server_detection [2019/08/26 17:56] – korshun | client_server_detection [2019/09/05 20:54] (current) – [Writing robust multiplayer code] korshun | ||
---|---|---|---|
Line 17: | Line 17: | ||
Zandronum multiplayer emulation is singleplayer. Just like in singleplayer, | Zandronum multiplayer emulation is singleplayer. Just like in singleplayer, | ||
- | In regular | + | In real Zandronum multiplayer, |
Yet, if Zandronum were to allow hosting non-dedicated servers, where a player allows others to connect to their singleplayer game without launching a separate engine instance, the hosting player would be both a server and a client, while other players in the game would be only clients. | Yet, if Zandronum were to allow hosting non-dedicated servers, where a player allows others to connect to their singleplayer game without launching a separate engine instance, the hosting player would be both a server and a client, while other players in the game would be only clients. | ||
Line 46: | Line 46: | ||
</ | </ | ||
- | ===== How the functions work ===== | + | You can also make sure that a serverside-only function is not called on the client, and a clientside-only function is not called on the server. |
+ | |||
+ | < | ||
+ | function ServersideOnlyFunction(void) | ||
+ | { | ||
+ | // writing if (IsClient()) would incorrectly display the warning in singleplayer. | ||
+ | if (!IsServer()) | ||
+ | printbold(s:" | ||
+ | |||
+ | ... | ||
+ | } | ||
+ | |||
+ | function ClientsideOnlyFunction(void) | ||
+ | { | ||
+ | // writing if (IsServer()) would incorrectly display the warning in singleplayer. | ||
+ | if (!IsClient()) | ||
+ | printbold(s:" | ||
+ | |||
+ | ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== How it works ===== | ||
All detection of clients and servers is founded on two functions: [[zdoom> | All detection of clients and servers is founded on two functions: [[zdoom> | ||
Line 52: | Line 74: | ||
'' | '' | ||
- | '' | + | '' |
+ | |||
+ | If the engine is not Zandronum, the function returns | ||
- | It checks if the multiplayer | + | If the engine |
'' | '' | ||