Update 'Roadmap'

projectmoon 2021-01-31 14:35:32 +00:00
parent c2095e84d5
commit 3eecd1f6a1
1 changed files with 26 additions and 11 deletions

@ -7,8 +7,32 @@ What is currently upcoming.
| Feature | Description | Depends on |
| --------------- | --------------- | --------------- |
| **Private Commands** | Manage all bot functionality from a private room | Room State Management (done) |
| **Room Metadata** | Internally store arbitrary key values on a per-room, per-user basis. | N/A |
| **Character Sheet Integration v1** | Integrate with an external online character sheet service. | Room Metadata. Existence of said service. |
### Room Metadata
The ability to store metadata on a per-room, per-user basis. This is foundational work for the character sheet integration. The metadata will be stored as key-value pairs, with the key consisting of user ID + room ID + key name. The value can be anything, and code will enforce type requirements.
The primary use cases for this are:
- Store a link to the character sheet
- Store the locally cached character sheet protobuf data.
### Character Sheet Integration
The "holy grail" of the whole idea. A gRPC connection will be setup between the dice bot (acting as a server) and instances of the web app (gRPC clients). Changes in the web app will be reflected in the bot. The first iteration of this will not have bidrectional changes (that is, bot will not be able to force updates to the character in the web app).
## Intermediate
Things that are easier to implement, but not yet scheduled.
| Feature | Description | Depends on |
| --------------- | --------------- | --------------- |
| **Private Commands** | Manage all bot functionality from a private room | Room State Management (done) |
| **Resource Counting** | Creation of counters that can go up and down. System agnostic. | N/A |
| **CofD Game Management** | Management of slightly complex CofD things like health. | N/A |
### Private Commands
@ -19,19 +43,10 @@ This will require some internal changes:
* Dicebot must now be aware of what room a user is managing in a direct message. This may be the first introduction of a proper state struct for users in the database. Possibly new keyspace `state`, with just a key name of username.
* Commands must be aware of if they are being executed in a direct message or a regular room. Probably easiest to add this property to the `Context` object.
## Intermediate
Things that are easier to implement, but not yet scheduled.
| Feature | Description | Depends on |
| --------------- | --------------- | --------------- |
| **Resource Counting** | Creation of counters that can go up and down. System agnostic. | N/A |
| **CofD Game Management** | Management of slightly complex CofD things like health. | N/A |
## Future
Things in the far future that require a lot of groundwork or other features to be finished first.
| Feature | Description | Depends on |
| --------------- | --------------- | --------------- |
| **Character Sheet Integration** | Integrate with an external online character sheet service. | Existence of said service, many dice bot features. |
| **Character Sheet Integration v2** | Bidirectional character sheet changes. | Character Sheet Integration v1. |