Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transmit gameplay values over the network #5079

Open
Nomagno opened this issue May 11, 2024 · 0 comments
Open

Transmit gameplay values over the network #5079

Nomagno opened this issue May 11, 2024 · 0 comments
Milestone

Comments

@Nomagno
Copy link
Contributor

Nomagno commented May 11, 2024

One of the major limitations to the simple organization of new events, rulesets or modes (by either players or the organization itself) during the STK 1.X lifecycle thus far has been the lack of support for sending new values for the kart handling/power-up distribution to the clients and reloading them at run-time. Currently the only way to change these settings is to manually distribute the configuration files to all players and have them replace the default ones in their system's STK config folder, and even then it requires a game reboot.

Considering all of this, it stands to reason that a way to automatically and safely (perhaps with a user prompt to confirm) transmit and reload these settings would greatly enhance the gameplay possibilities for non-technical players.

There are two obvious ways to transmit these gameplay values. One is directly transmitting the current relevant configuration files (for example kart_characteristics.xml and powerup.xml) and re-parsing them. The other one is establishing a custom binary network protocol to encode and send the data over TCP, as is currently done for e.g. the physics frames during gameplay.

With this system in place, perhaps configurations could get their own add-on category too.

It is important that the "default" values are reverted to upon exiting a server that uses non-default values, so as to not have the offline experience be all weird after joining a server without knowing it uses a custom config.

The current codebase assumes in multiple places that values are loaded in either the game's startup sequence or in very specific conditions, and doesn't explicitly contemplate them being reloaded in any case. Adding suport for hot-reloading is hence a bigger hurdle to the implementation of this system than the transmission of the values themselves

@Alayan-stk-2 Alayan-stk-2 added this to the 2.0 milestone May 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants