Skip to content

multiplayer game server and virtual machine for board games

Notifications You must be signed in to change notification settings

pezipink/drey-vm-2

Repository files navigation

drey-vm-2

Drey is a virtual machine for hosting networked modern board games.

Drey executes a bytecode format compiled by another language, typically scurry

The virtual machine and project has (or will have) the following properties

  • Everything is written in C from the ground up with no 3rd party libraries (for the fun of it) except ZeroMQ
  • Various garbage collection and memory allocation data structures and algorithms (subject to change)
  • Dynamic typing with object->object dictionaries as the core type
  • First class lambda functions, partial application and closures
  • Transparent networking via ZeroMQ
  • "Flowroutines" (remote co-routines) orchestrate collecting responses from clients, with an automatic rollback facility for multi-stage choices (implemented by cloning callstacks)
  • Fibers allow a limited form of apparent concurrency allowing more than one client to act at once
  • Combined inter-process and external sockets with ZeroMQ.
  • Record and playback facility
  • First class data visiblity features control what clients can see, mostly automatically
  • Only supports windows at the moment due to threading, but will support some nix later.
  • Remote debugging support

Work in progress, a toy project and a re-write of the not-finished drey-vm

About

multiplayer game server and virtual machine for board games

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages