alpaca-netcode: Rollback/replay NetCode for realtime, deterministic, multiplayer games.

[ apache, game-engine, library, network ] [ Propose Tags ]

A rollback/replay client-server system for realtime multiplayer games. The API only requires you to express your game as a pure, deterministic function.

See Alpaca.NetCode to get started.

Advantages

  • Simple code. Your game logic contains no NetCode.

  • Low bandwidth. Only inputs are shared.

  • Zero latency. Player's own inputs affect their game immediatly.

  • UDP based. Unordered and using redundancy to mitigate packet loss.

  • Lightweight server. The server does not run the game logic, it only relays and tracks user inputs.

  • Cheating. Only inputs are shared which eliminates a whole class state manipulation cheats.

Disadvantages

  • Increased CPU usage. Rollback/replay means that clients must run the game step function multiple times per frame.

  • Not suitable for large numbers of players. Tens of players is likey reasonable.

Disclaimer

This is an initial release with minimal functionality and still very experimental. Use at your own risk.

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0
Change log CHANGELOG.md
Dependencies base (>=4.9 && <4.16), bytestring, containers, flat, hashable, network (>=3.1 && <3.2), network-run, random, stm, time [details]
License Apache-2.0
Copyright 2021 David Eichmann
Author David Eichmann
Maintainer davide@well-typed.com
Category Network, Game Engine
Source repo head: git clone https://github.com/DavidEichmann/alpaca-netcode
Uploaded by DavidEichmann at 2021-04-02T22:23:32Z
Distributions NixOS:0.1.0.0
Downloads 141 total (4 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]