Code Monkey home page Code Monkey logo

abune.server's Introduction

Abune.Server

Abune logo

ABUNE stands for 'Actor Based Udp Network Engine'.

This game server implementation is a based on Akka.net and provides a highly scalable actor based runtime primarily for games based on .NET core (like f.e. unity based games).

Key features

  • large player count - linearly scaling of network, cpu and memory with Akka.NET cluster technology
  • huge game worlds - nearly unlimited amount of game objects using Akka.NET sharding technology
  • low latency - reach every object and client within one hop in less than 10 ms using the reactive nature of Akka.net
  • realiable udp - quality of service layer on top of udp protocol
  • single sign on - authenticate clients using external access tokens based on JWT JWT.io
  • unity client samples - WORK IN PROGESS/COMING SOON different unity client implementation samples (FPS, MMO, RACING,...)

Concept

Game system

Abune concept

Restrictions

  • no lockstep support due to massive parallelism
  • restricted server side game logic due to light weight actor based system (client quorum is planned for anti cheat to support self-hosted trusted-client instances)

Getting started

  • Start the server locally using VS 2019 - Open src/Abune.Server.sln and press F5
  • Deploy single server instance using docker - Just run docker run abunedotnet/abune-server:0.1.0
  • Deploy load balanced server cluster using kubernetes / Azure AKS - See Setup Azure Kubernetes Cluster

Build Status

Build Status

abune.server's People

Contributors

motmot80 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

abune.server's Issues

Simple authentication and authorization mechanism

At the beginning using an OAuth authentication mechanism should be sufficient.
To prevent replay attacks while they payload isn't DTLS transported the client ip:port should be part of the claims.

Client sample

Yo,
Do you still intend to add a sample example for client (unity)?

Thanks,
Cheers.

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.