twhl-community / halflife-unified-sdk

Half-Life Updated SDK with Opposing Force and Blue Shift merged in, along with other improvements. Check README.md for more information.
Other
146 stars 26 forks source link

Test network data system using fastdl #538

Closed SamVanheer closed 9 months ago

SamVanheer commented 1 year ago

The network data system hasn't been tested with a dedicated server that's using fastdl.

It may be necessary to implement a workaround that relies on the client to send a dlfile "networkdata/data.json" command . When sv_allow_dlfile is enabled the server should send the file using the in-engine file transfer function instead of sending it through fastdl. The client will need to reconnect to the server as well to avoid trying to download through fastdl again.

If the initial connection fails due to a missing data.json file then it may also be necessary for fastdl servers to include a dummy file with a special key that marks it as invalid to allow the client to detect this.

SamVanheer commented 9 months ago

I've tested this out: using XAMPP to host a local file server with a data.json containing only this: {}

Results in the game downloading the file and reconnecting to the server which deletes the dummy file, causing it to download the actual file from the server without going to the FastDL server.

This wasn't the intended solution and may depend on an implementation detail (the engine downloading from the game server instead of FastDL after a reconnect) but since it does work it's fine as-is. The documentation has been updated with instructions for using FastDL.