Merge upstream/main into the macOS and iOS fork - #6
Open
msnow345 wants to merge 8 commits into
Open
Conversation
…velopers#154) * Take the dissolve alpha minimum in DWORD rather than unsigned long * Pin the trigger action's Value field to a fixed width * Format the generated type name the way MSVC's %p does
* Add private-link RTT estimation * Back off private network retransmissions * Persist retransmission backoff and age RTT samples * Keep retransmitting private packets past the connection timeout * Drop RTT sample aging from the retransmission estimator * Seed the RTT estimate from an ambiguous first acknowledgement * Bound the first retry so the timeout allows three transmissions * Seed the provisional RTT estimate from the last transmission * Seed the provisional RTT estimate from the first transmission again * Fix private-link recovery after timeouts and latency increases * Tighten transport timing documentation and comments
* Add adaptive network timing policy * Adapt multiplayer frame timing * Show adaptive connection quality * Document adaptive network timing * Harden adaptive timing against stale links and divergence * Execute events between send frames on the next send frame * Hold timing when a measured link's RTT report lapses * Continue timing descent one rung per evaluation * Report each player's longest wait and hold improvement while it lasts * Request acknowledgements until every link measures its round trip * Draw the -MPDEBUG overlay after the render at any resolution * Log network timing reports, evaluations and events * Remove the legacy latency slowdown from the frame pacing * Draw the -MPDEBUG overlay in the screen render pass * Document the mirrored Connection slider * Preserve deferred multiplayer events in recordings * Tighten adaptive timing documentation and comments
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
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.
Brings in five upstream commits and keeps the fork's macOS/iOS work intact.
Upstream commits merged:
333d0f9Add x64 to the supported build matrix94ad994Adapt multiplayer frame timing (Adapt multiplayer frame timing OpenTS-Developers/OpenTS#93)2cbc94fAdapt private-link retransmission timing (Adapt private-link retransmission timing OpenTS-Developers/OpenTS#92)49d66e6Replace wsprintf with snprintf and a destination size (Replace wsprintf with snprintf and a destination size OpenTS-Developers/OpenTS#155)028261eRemove assumptions about the width of long and of pointers (Remove assumptions about the width of long and of pointers OpenTS-Developers/OpenTS#154)Conflicts resolved
CMakeLists.txtOPENTS_EXPERIMENTAL_X64(upstream promoted x64 to supported); keptOPENTS_EXPERIMENTAL_NATIVE.enable_language(RC)stays insideif(WIN32)— no other toolchain here has a resource compiler.code/CMakeLists.txtFATAL_ERRORguard; kept the iconv link.code/goptions.cppNetwork_Quality_Text_ID()merged cleanly and is now used by the presenter.code/dropship.cppHost_Milliseconds()overtimeGetTime().code/language/language.rcTXT_CONNECTION_QUALITY_STATUSandTXT_CONNECTION_QUALITY_RUNGmerged cleanly.docs/BUILDING.mdFollow-on changes the merge required
code/nettime.cppis new upstream and called::timeGetTime()through<mmsystem.h>, which does not build off Windows. It now readsHost_Milliseconds()fromhostclock.h, the same seam the rest of the engine uses.Upstream's adaptive timing retires
Session.LatencyFudgeas a live control —session.hnow marks it "legacy synchronized option retained for event and replay compatibility" — and replaces the WOL Connection slider with a read-only readout of the negotiated rung. Keeping our side of thegoptions.cppconflict would have left the RmlUi screen offering an editable slider for a setting nothing reads any more. The presenter now computes the rung and quality fromNetTiming::Connection_Quality_For_Settings, the caption states them throughTXT_CONNECTION_QUALITY_RUNG, the slider is inert, and resume no longer queues aLATENCYFUDGEevent. This matches whatmanual/content/systems/network-synchronization.mdalready says the control does.Verification
cmake --build build/native --target OpenTS— succeeds.cmake --build --preset ios-device— succeeds.tests/harnesses, which are MSVC-only (/MT,/EHsc,kernel32) and do not build off Windows. That is unchanged frommain, not introduced here, but it does mean the documentedcmake --build build/nativefails on the harnesses while theOpenTStarget succeeds.static_assertsize and offset guards survive the merge, which a successful 64-bit build is direct evidence for.🤖 Generated with Claude Code
https://claude.ai/code/session_01SMFrbHFBcGcMut3cddJ8S3