diff --git a/roadmap.md b/roadmap.md new file mode 100644 index 0000000..c251e8d --- /dev/null +++ b/roadmap.md @@ -0,0 +1,69 @@ +# hermeticum roadmap + +_being a rather unsorted, evolving, and utterly incomplete braindump of tasks for hermeticum_ + +for the next push, i see two things: editing WITCH scripts in-client and inter-room movement. I think I'd rather work on inter-room movement until not being able to edit WTICH scripts in-client becomes unbearable. + +In tildemush, inter-room movement worked like this: + +- there were six directions: + - north + - south + - east + - west + - above/up + - below/down +- rooms contained "exit" objects +- exit objects are defined as objects with an `exit` key in their data map +- the exit map gets two keys added: + - one for the room in which the exit was created pointing to target room with given direction + - one for the target room with reverse of given direction +- the exit object is then added to _both_ the current and target room +- when a go command is observed, the server checks the current room for exit objects and finds the one with the given direction and moves the sender to the room it targets + +I don't like the exit simultaneously existing in two rooms at once or the special handling at the server level. + +TODO draft something new + +## server beta + +- [x] grpc server +- [x] session handling (opening/closing) +- [x] verb handling +- [x] WITCH: initial setup +- [x] DB: initial schema +- [ ] DB: sundry error handling +- [ ] build out some more default rooms +- [ ] WITCH: ability to send verbs outward +- [ ] WITCH: transitive verb support +- [ ] WITCH: provides function +- [ ] WITCH: movement stuff (teleport, move) +- [ ] VERBS: create +- [ ] VERBS: announce (for gods) +- [ ] VERBS: movement +- [ ] VERBS: inventory + - [ ] get + - [ ] drop + - [ ] view inventory +- [ ] VERBS: script editing +- [ ] VERBS: look +- [ ] VERBS: examine +- [ ] password hashing +- [ ] encrypted connection +- [ ] cron system +- [ ] room mapping +- [ ] global chat +- [ ] loudness system + +## client beta + +- [x] basic tview app +- [x] registration +- [x] login +- [ ] sundry error handling +- [ ] encrypted connection +- [ ] ping/pong tracking for server health report +- [ ] room mapping +- [ ] global chat +- [ ] details pane (see: examine command) +- [ ] script editing