xaya / libxayagame

MIT License
21 stars 19 forks source link

Coprocessors #134

Closed domob1812 closed 7 months ago

domob1812 commented 9 months ago

This introduces the concept of Coprocessors: They are optional modules which run alongside the core game logic inside a GSP. They get notified about block attaches, detaches and game-state initialisation, and while the core GameLogic callbacks are executing, the user-code can access (and work with) the active coprocessors through Context.

A specific feature that this will allow is archival data: Similar to logs in the EVM, GSPs can use a coprocessor to write "append only" data such as logs of game events into some external database or storage, outside the core game state. For data that is only produced and served to frontends but not otherwise required inside the GSP for state updates, this can help to keep the core game state lean and improve scalability and performance overall.