-
Notifications
You must be signed in to change notification settings - Fork 75
Cross platform scenarios, saves and multiplayer #2207
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
Merged
schombert
merged 54 commits into
schombert:main
from
ZombieFreak115:cross-platform-scenario-save
Dec 20, 2025
Merged
Cross platform scenarios, saves and multiplayer #2207
schombert
merged 54 commits into
schombert:main
from
ZombieFreak115:cross-platform-scenario-save
Dec 20, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…nused serialization functions
…italized start due to vic2 things
This reverts commit 95256a5.
…hout capitalized start due to vic2 things" This reverts commit 7016f08.
…ue to file being capitalized, but not when referenced.
…tive in de-serializing
…path as UTF8 always
…s-platform scenarios
…ing functions. Fix compile flags
…client is being nefarious, however.
… 0 so the checksum stays the same between diffrent scenario creations
Remove compression from sending oos gamestate cause it simply takes too long to compress.
…mziation in which nicknames where gone in chat window.
…tings. Send host settings to client in handshake so they follow along.
This reverts commit e473208.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Converts platform-specific characters (Such as path seperators and newlines) to a common standard when serialized, and then converts them back on de-serialization to keep bitwise equality.
Change the nix implementation of peek_file and open_file to be caseless when looking for files of said name. This is because the Vic2 files assume that the filesystem is caseless, and there are quite afew cases in which it will fail to load some gfx files on Linux cause the developers used caseless matching.
Add new build targets for SSE, AVX2 and AVX512 for all release builds. Debug builds always use the SSE build target.
Add floating point math flags for SSE builds to keep determinism cross-platform. Clang should be used to build the SSE version on Alice itself, aswell as the launcher to ensure determinism. MSVC x Clang seems shifty with determinism.
Add automatic OOS-reporting when any client goes OOS. Currently it is not safe unless the client is trusted as there is no way (to my knowlegde) to easily test if the data the client sends to the host is safe to deserialize. It must therefore be enabled with a flag in host_settings.json first.
Add handwritten parts of scenario section and save section to be included in checksumming. Added a bool parameter to said serialize/deserialize functions to ignore local-only fields.
Fix an invalid write that i stumbled upon while testing
Add explicit padding initialized to 0 to some structs to avoid polluting the checksum randomly.
change std::sort in battle logic to use stable_sort, otherwie equal values may be sorted diffrently cross-platform
Right now the Clang builds will be using the SSE3 dcon ve headers due to the if-statement logic of checking SSE3 first. I created a PR on the dcon repo to fix it.