mudcoders / guildmud

A SocketMUD-based Multi-User Dungeon built and managed by the members of The MUD Coders Guild.
MIT License
26 stars 12 forks source link

High level persistence proposal #35

Open rogersm opened 6 years ago

rogersm commented 6 years ago
  1. Use sqlite3 to store: world data (map, users & objects) and state.
  2. Have a minimal persistence memory to sqlite3 time.
  3. Have a highly coupled memory data model to sqlite3 (persist at struct member/variable at database field type)
  4. Because (2 & 3) we expect the programmer to have some SQL knowledge.
  5. Minimal set of objects to be persisted: Room, Thing, Exits, Tags (a kind of trait that can be attached to anything), Player, Non Player.
  6. Define a set of functions per object (4) to persist/update/retrieve from/to the database.
  7. Create a versioning system of database schema so it can be upgraded without user action.