Open
Conversation
* Erm new UI tbh, not even a rework.. * Small approved batch * Smol approved batch * Naming change. * New struct, representing a connection. * Deleted / Moved files * Moved file * Confirmed decent changes * Confirmed decent changes * Split up ConnectInterface * Bug Fixes * Made UI automatically add Steam tab if detected. * Replaced the EndPoint with object? ThrottleKey * Improved ConnectionDetails.cs * Reverted back to Udp naming * Reverted back to Udp naming * Hooked Up disconnect button * Made congestion and update manager not work with Steam * Improved networking a bit * Some further code cleanup * Some further code cleanup * More fixes to the code. * Fixed ClientInfo missing on Server * Fixed ClientInfo missing on Server and some bug fixes * More fixes. * More fixes. * Changes * Simpler Abstraction * Mwehehehehehehehe i am going crazy * Huge Re-work, reduced a-lot of things and simplified. Improved Steam pathway excluding it from UDP pipeline. * Complete version of steam transport working. * Removed ConnectionDetails * Uncommented Steam intergration * Fixed to use correct ContainsReliableData path * Partial Code cleanup, re-added some missing comments, AuthUtil now uses MAC address to prevent exploiting the ban system. Removed some redundant print statements and dead imports. * Removed Dangerous AuthUtil changes, some more fixes and clarifications * Some more fixes on BanCommand, NetServer & SteamManager * Requested changes in NetServer.cs * Formatting/style and other small issues * Applied fix requested fix. * Change method signatures of server manager start hierarchy --------- Co-authored-by: Extremelyd1 <10898310+Extremelyd1@users.noreply.github.com>
* RTT and Reliability abstraction and more general improvements. * Update editorconfig with default values (#21) * Bump actions/upload-artifact from 5 to 6 (#18) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Hamunii.BepInEx.AutoPlugin from 2.0.1 to 2.1.0 (#15) --- updated-dependencies: - dependency-name: Hamunii.BepInEx.AutoPlugin dependency-version: 2.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Resolve various issues with dependencies and the modding template (#22) * Re-formatted with projects .editorconfig * feat: fix server-side transport capabilities, lazy-init managers - Add RequiresX capability properties to IEncryptedTransportClient - Server-side Steam clients now correctly skip UDP sequencing logic - Lazy-init managers only when needed (saves memory for Steam) - Remove HolePunch stubs (to be replaced with pre-processors) * feat: Updated & Added Comments and applied requested changes. * Fix some small issues - Formatting - Unused using directives - Variable naming --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Extremelyd1 <10898310+Extremelyd1@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… Steam P2P (#24) * RTT and Reliability abstraction and more general improvements. * Update editorconfig with default values (#21) * Bump actions/upload-artifact from 5 to 6 (#18) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Hamunii.BepInEx.AutoPlugin from 2.0.1 to 2.1.0 (#15) --- updated-dependencies: - dependency-name: Hamunii.BepInEx.AutoPlugin dependency-version: 2.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Resolve various issues with dependencies and the modding template (#22) * Re-formatted with projects .editorconfig * feat: fix server-side transport capabilities, lazy-init managers - Add RequiresX capability properties to IEncryptedTransportClient - Server-side Steam clients now correctly skip UDP sequencing logic - Lazy-init managers only when needed (saves memory for Steam) - Remove HolePunch stubs (to be replaced with pre-processors) * HolePunch rough * Added HolePunch and MasterServer * feat: implement comprehensive multiplayer networking, matchmaking, and lobby management system with Steam integration and some improvements to the system * feat: Fixed Steam's rich presence and added invite command. * Added missing XML comments. * Some small fixes * Reverted to Using mod version * Some more fixes. * Some more fixes. * Added Visibility option on MMS * Applied requested fixes and ported Steam optimisations from future PR. * Add and remove compiler warning suppression * Fix formatting and standardize comments * Remove unnecessary build configurations in solution * Applied requested fixes. * feat: Migrated to ManualResetEventSlim * Final style, formatting, and logic cleanup --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Extremelyd1 <10898310+Extremelyd1@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* RTT and Reliability abstraction and more general improvements. * Update editorconfig with default values (#21) * Bump actions/upload-artifact from 5 to 6 (#18) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Hamunii.BepInEx.AutoPlugin from 2.0.1 to 2.1.0 (#15) --- updated-dependencies: - dependency-name: Hamunii.BepInEx.AutoPlugin dependency-version: 2.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Resolve various issues with dependencies and the modding template (#22) * Re-formatted with projects .editorconfig * feat: fix server-side transport capabilities, lazy-init managers - Add RequiresX capability properties to IEncryptedTransportClient - Server-side Steam clients now correctly skip UDP sequencing logic - Lazy-init managers only when needed (saves memory for Steam) - Remove HolePunch stubs (to be replaced with pre-processors) * HolePunch rough * Added HolePunch and MasterServer * feat: implement comprehensive multiplayer networking, matchmaking, and lobby management system with Steam integration and some improvements to the system * feat: Fixed Steam's rich presence and added invite command. * Added missing XML comments. * feat; Extreme optimisations * feat: Minor improvements * Changed Buffer.BlockCopy to Array.Copy * feat: more fixes :) * More fixes. * feat: more fixes * feat: Even more fixes. * Added proper Steam shutdown in SSMPPlugin.cs * Added proper Steam shutdown in GameManager.cs * Little MORE XDDD * changed to use existing Packet instance * feat: Updated with requested changes. * Fixed not being able to reconnect to a lobby after quitting for Steam. Change data send type to k_EP2PSendUnreliable from k_EP2PSendUnreliableNoDelay for better bandwidth effeciency. Updated & enabled interpolation * Added PredictiveInterpolation and deprecated PositionInterpolation * Some small changes * Minor improvements and removed un-used imports and functions. * Remove unused class and clean up --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Extremelyd1 <10898310+Extremelyd1@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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.
This PR contains the implementation of different network layers to allow SSMP networking to occur over Steam P2P and using UDP Hole Punching. There are various improvements to networking including optimizations, packet writing, abstractions, better interpolation, among others.
There is also a new project for a standalone Matchmaking server (MMS) that allows peers to find each other through the use of public and private lobbies. Eliminating the need for port forwarding or VLAN software in most cases.
The branch that will be merged has been the main development focus for several months.