Loading...
  OR  Zero-K Name:    Password:   

Post edit history

Help Wanted: Zero K Offline LAN Server

To display differences between versions, select one or more edits in the list using checkboxes and click "diff selected"
Post edit history
Date Editor Before After
11/23/2022 12:40:28 PMAUrankAdminGoogleFrog before revert after revert
11/23/2022 12:37:16 PMAUrankAdminGoogleFrog before revert after revert
Before After
1 [q]- Zero-K has no in-build method of connecting to a Skirmish via IP Address.[/q] 1 [q]- Zero-K has no in-build method of connecting to a Skirmish via IP Address.[/q]
2 Not quite. Steam Coop works by telling the host the names of player to expect, then having Steam abstract a P2P connection so it just looks like connecting to an IP address. The easiest way of enabling LAN multiplier (up to the functionality of Steam Coop) would be to add some sort of UI for setting up players on the host computer and having a UI to enter an IP address to connect to for the clients. No lobby server code would come into it. 2 Not quite. Steam Coop works by telling the host the names of player to expect, then having Steam abstract a P2P connection so it just looks like connecting to an IP address. The easiest way of enabling LAN multiplier (up to the functionality of Steam Coop) would be to add some sort of UI for setting up players on the host computer and having a UI to enter an IP address to connect to for the clients. No lobby server code would come into it.
3 \n 3 \n
4 The main drawback of Steam Coop is the lack of game modes. I wasn't going to spend time duplicating the entire lobby server when hosting on it works fine. The main purpose was to enable the coop campaign. This isn't an intrinsic limitation though, it would just take work to set up. 4 The main drawback of Steam Coop is the lack of game modes. I wasn't going to spend time duplicating the entire lobby server when hosting on it works fine. The main purpose was to enable the coop campaign. This isn't an intrinsic limitation though, it would just take work to set up.
5 \n 5 \n
6 The hosting system is well abstracted in the sense that the whole thing passes through a startscript. The entirety of the game is determined by the contents of this script. The _script.txt file contains the last game you started. Starting the appropriate spring.exe of an engine subfolder with a script file as an argument (and with the directory set to the root ZK directory) will make the game happen with that script. We used to drag script.txt onto spring.exe to reconnect to game. Calling one of a few Spring callouts with a string containg the same format of script will relaunch into that game from within the same exe - this is how the ZK lobby works. 6 The hosting system is well abstracted in the sense that the whole thing passes through a startscript. The entirety of the game is determined by the contents of this script. The _script.txt file contains the last game you started. Starting the appropriate spring.exe of an engine subfolder with a script file as an argument (and with the directory set to the root ZK directory) will make the game happen with that script. We used to drag script.txt onto spring.exe to reconnect to game. Calling one of a few Spring callouts with a string containg the same format of script will relaunch into that game from within the same exe - this is how the ZK lobby works.
7 \n 7 \n
8 Connecting requires this information: https://github.com/ZeroK-RTS/Chobby/blob/master/libs/liblobby/lobby/lobby.lua#L87 8 Connecting requires this information: https://github.com/ZeroK-RTS/Chobby/blob/master/libs/liblobby/lobby/lobby.lua#L87
9 (The password is a one-time password the server sends to the clients when it lets them know it is time to connect, to prevent people connecting to the game using other peoples names, causing confusion and ending up on the wrong team)
9 \n 10 \n
10 Hosting (and local singleplayer) looks like generating a script that defines the game: https://github.com/ZeroK-RTS/Chobby/blob/master/libs/liblobby/lobby/interface_skirmish.lua#L53 11 Hosting (and local singleplayer) looks like generating a script that defines the game: https://github.com/ZeroK-RTS/Chobby/blob/master/libs/liblobby/lobby/interface_skirmish.lua#L53
11 Clients get the information about the game from the host. The campaign generates a script elsewhere to setup all the campaign stuff. 12 Clients get the information about the game from the host. The campaign generates a script elsewhere to setup all the campaign stuff.
12 \n 13 \n
13 Setting up your own scripts and running them seems like a decent thing to test. From there some sort of lobby UI to do this could be created. 14 Setting up your own scripts and running them seems like a decent thing to test. From there some sort of lobby UI to do this could be created.
14 \n 15 \n
15 [q]1) Are there files or configurations that must be applied to Uberserver which would allow it to work with Zero-K?[/q] 16 [q]1) Are there files or configurations that must be applied to Uberserver which would allow it to work with Zero-K?[/q]
16 Unlikely. There is/was an Uberserver protocol in the lobby in parallel that was/is for BAR purposes, but they seem to have made their own server now so it is probably unmaintained. In any case, ZK was never tested with it. 17 Unlikely. There is/was an Uberserver protocol in the lobby in parallel that was/is for BAR purposes, but they seem to have made their own server now so it is probably unmaintained. In any case, ZK was never tested with it.
17 \n 18 \n
18 [q]2) Is SpringLobby capable of working with modern Zero-K?[/q] 19 [q]2) Is SpringLobby capable of working with modern Zero-K?[/q]
19 Maybe, if you're just trying to host a game then I don't think ZK does anything more than the old servers. The fact that Steam Coop worked prettymuch immediately means that the battle rooms on the lobby server aren't setting any special options. You will have to make it use the correct engine version though. 20 Maybe, if you're just trying to host a game then I don't think ZK does anything more than the old servers. The fact that Steam Coop worked prettymuch immediately means that the battle rooms on the lobby server aren't setting any special options. You will have to make it use the correct engine version though.
20 \n 21 \n
21 [q]3) How is ZkLobbyServer supposed to be used?[/q] 22 [q]3) How is ZkLobbyServer supposed to be used?[/q]
22 I haven't worked on it, but it's so large and integrated with everything then I expect it is meant to be used as the main ZK site and lobby. It doesn't look standalone to me. 23 I haven't worked on it, but it's so large and integrated with everything then I expect it is meant to be used as the main ZK site and lobby. It doesn't look standalone to me.