an ace of spades 0.75 server to replace pysnip

why?

pynip has grown to be difficult to maintain. it’s often unclear how scripts written as pysnip extensions interact with one another, and difficult to reason about complex code paths. some parts of the core are impossible to override without changing the base in ways that potentially break compatibility with future updates - although those are unlikely at this stage, it’s still an ugly thing to work with/against

i’d like to create something cleaner and simpler to work with; something enjoyable to read and painless to extend. a tight and largely unchanging core extensible with scripts, although in a somewhat less strange style than that of pysnip

how?

i’m still working through the details in my head, but for now my thoughts:

  • core in c
    • using enet
    • initialize the server to listen for new connections
    • set up and maintain those connections (transfer map, handle ping, etc.)
    • bindings necessary for the scripts to work. needs thought
  • scripts in [some language]
    • wren
    • lua
    • i guess could still use python?
    • or something totally wacky like perl or js =]