KO
|
EN
gitlite — search
Search
#typescript
#ai-agents
#deepseek-harness
#dsh-plugin
#open-source
#ai
#cli
#dsh
#claude-code
#codex
#developer-tools
#react
GekkoNet
★ 51
Open GitHub ↗
P2P Rollback Game Networking SDK
Download README (.md)
Explore Similar Repositories
gekko-gannswing
:
Gann's Swing trade strategy for Gekko trade bot
google-forms-gekko-plugin
:
A gekko plugin for live trading that submits all trades to a google spreadsheet through Forms
gekko-buyatsellat
:
Simple strategy to buy and sell assets at pre-defined thresholds with Gekko
Gekko-Strategies
:
No description available.
bruteforce
:
A swiss army nodejs brute force backtester for Gekko trading bot. Saves time so you can spend more time looking good.
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
GekkoNet
?
Download (.md)
<img src="docs/images/gekko_logo-cropped.svg" width="100%"> # GekkoNet ### C/C++ Peer To Peer Game Networking SDK Traditional online networking techniques account for transmission delays by adding input lag, often resulting in a slow feeling, unresponsive feel. GekkoNet leverages rollback networking with input prediction and speculative execution, allowing player inputs to be processed immediately, creating a seamless, low-latency experience. This means that players enjoy consistent timing, reaction speeds, and muscle memory both online and offline, without the impact of added network lag. Inspired by [GGPO](https://github.com/pond3r/ggpo) and [GGRS](https://github.com/gschup/ggrs) ## Why? I built this because I wanted a SDK to plug into my C++ projects, in the past I have created a wrapper around GGRS for C++ but after having to deal with Rust FFI I decided to build a native alternative instead to more easily fit my projects. GekkoNet is heavily inspired by the [GGPO](https://github.com/pond3r/ggpo) Rust reimplementation [GGRS](https://github.com/gschup/ggrs). #### Why not use GGPO? I am personally not a big fan of the callback based approach of GGPO hence why I am more of fond of how GGRS handles its control flow. And I might be addicted to reinventing the wheel, this has mostly been a learning experience of mine to learn more about async systems and networking in general :) ## Project Goals ### Done - Local/Couch Sessions - Per Player Input Delay Settings - Online Sessions - Local Player Input Delay Settings - Remote Player Input Prediction Settings - Runahead Support - Locally simulate ahead speculatively to hide input delay, keeping input feeling responsive regardless of network conditions. - Actor Disconnection - Disconnect actors without destroying the session, peers get notified right away. - Configurable disconnect timeout, 0 disables automatic disconnecting. - Spectator Sessions - Spectator Delay Settings. - Stress Sessions - To help find desyncs it your local state, This is a local session which constantly rolls the simulation back over a user-specified check distance. - Replays - Record the inputs of any session, optionally together with the gamestate the recording starts at. - Replay Sessions play the recording back frame by frame. - Limited Saving - Save the gamestate less often which might help games where saving the game is expensive. This is at the cost of more iterations advancing the gamestate during rollback. - Abstracted socket manager. - Event System for notifications for eg. specific players being done with syncing. - Desync Detection (Only when limited saving is disabled for now) - Automated builds - Network Statistics ### Work in progress - Joining a session that's already in progress as a spectator (and maybe as a player later) ### Maybe Later - Game engine plugins ## Getting Started ### Docs - Automatically generated Docs: https://heatxd.github.io/GekkoNet/ - Also look at the examples to see how GekkoNet functions! ## Building Examples - The examples are built and ran using Visual Studio 2026 - The examples require SDL3 to function ## Building GekkoLib ### Prerequisites To build GekkoNet, make sure you have the following installed: 1. **CMake** (version 3.15 or higher) 2. **C++ Compiler** with C++20 support: - **GCC** or **Clang** (Linux/macOS) - **MSVC** (Visual Studio) for Windows 3. **Doxygen** (optional, for documentation generation if `BUILD_DOCS` is enabled) ### Step-by-Step Instructions ### 1. Clone the Repository First, clone the GekkoNet repository: ```sh git clone https://github.com/HeatXD/GekkoNet.git cd GekkoNet/GekkoLib ``` #### 2. Configure Build Options GekkoNet includes several options to customize the build: - `BUILD_SHARED_LIBS`: Set to `ON` to build shared libraries, or `OFF` for static libraries (default). - `NO_ASIO_BUILD`: Set to `ON` if you do not need ASIO. - `BUILD_DOCS`: Set to `ON` if you want to generate documentation using Doxygen (requires Doxygen installed). To configure these options, use `cmake` with `-D` flags. For example: ```sh cmake -S . -B build -DBUILD_SHARED_LIBS=ON -DNO_ASIO_BUILD=OFF -DBUILD_DOCS=OFF ``` ### 3. Generate Build Files Run CMake to configure the build and generate files: ```sh cmake -S . -B build ``` #### 4. Build the Project Once configured, build the project using the following command: ```sh cmake --build build ``` On successful completion, binaries and libraries will be located in the `out` directory within the project. #### 5. (Optional) Build Documentation If you set `BUILD_DOCS=ON`, generate the documentation as follows: ```sh cmake --build build --target docs ``` Documentation will be available in the `build/docs` directory as HTML files. ### Build Output - **Library**: Located in `out/`, with shared/static suffixes depending on build options. - **Documentation** (if built): Available in `build/docs/`. --- ## Projects using GekkoNet - 3sx - Street Fighter 3rd Strike PC port - https://github.com/crowded-street/3sx - Klawiatura - Mario Forever with rollback netcode. - https://github.com/toggins/Klawiatura - bsnes netplay - https://github.com/HeatXD/bsnes-netplay If you have a project using GekkoNet please let me know! ## License GekkoNet is licensed under the BSD-2-Clause license [Read about it here](https://opensource.org/license/bsd-2-clause). The GekkoNet logo is made by the amazing [NoisyChain](https://github.com/NoisyChain)