cabal-version: 1.12 name: alpaca-netcode version: 0.1.0.0 synopsis: Rollback/replay NetCode for realtime, deterministic, multiplayer games. description: 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. -- bug-reports: license: Apache-2.0 license-file: LICENSE author: David Eichmann maintainer: davide@well-typed.com copyright: 2021 David Eichmann category: Network, Game Engine build-type: Simple extra-source-files: CHANGELOG.md source-repository head type: git location: https://github.com/DavidEichmann/alpaca-netcode library other-modules: Alpaca.NetCode.Internal.Client , Alpaca.NetCode.Internal.ClockSync , Alpaca.NetCode.Internal.Common , Alpaca.NetCode.Internal.Server exposed-modules: Alpaca.NetCode , Alpaca.NetCode.Advanced build-depends: base >= 4.9 && < 4.16 , bytestring , containers , flat , hashable , network >= 3.1 && < 3.2 , network-run , random , stm , time hs-source-dirs: src ghc-options: -Wall default-language: Haskell2010 test-suite test Type: exitcode-stdio-1.0 hs-source-dirs: test Main-is: Test.hs Build-depends: base >= 4.9 && < 4.16 , alpaca-netcode , containers , random , tasty , tasty-hunit default-language: Haskell2010