GithubHelp home page GithubHelp logo

heatxd / gekkonet Goto Github PK

View Code? Open in Web Editor NEW
7.0 4.0 0.0 5.51 MB

C++ Peer To Peer Game Networking SDK

License: BSD 2-Clause "Simplified" License

C++ 100.00%
cpp game-development netcode networking rollback-netcode

gekkonet's Introduction

GekkoNet

C++ Peer To Peer Game Networking SDK

Consider this project unstable until ive gone through most of the work in progress items.

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 Rust reimplementation 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 ๐Ÿ˜…

Project Goals

Done

  • Local/Couch Sessions
    • Per Player Input Delay Settings
  • Online Sessions
    • Local Player Input Delay Settings
    • Remote Player Input Prediction Settings
  • Spectator Sessions
    • Spectator Delay Settings.
    • The added ability to spectate spectators. This might be handy if you have a seperate spectating service which propegates the inputs to more spectators.
  • 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. Plug GekkoNet into existing networking solutions such as Steamworks or default sockets by inheriting and overriding the socket manager.
  • Event System for notifications for eg. specific players being done with syncing.
  • Desync Detection (Only when limited saving is disabled for now)

Work in progress

  • Network Statistics
  • Joining a session that's already in progress as a spectator (and maybe as a player later)
  • Add Cmake for building.

Maybe Later

  • Replays
  • Commission an artist to create a logo for GekkoNet

Getting Started

Docs

Todo

Building

Todo

Projects using GekkoNet

Todo

License

GekkoNet is licensed under the BSD-2-Clause license Read about it here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.