gamelog/README.md

77 lines
2.0 KiB
Markdown

# Game Log
RPGs I've played
## About
This is a log of all the games I've played starting in 2021. I'm keeping this log in anticipation of writing a "Every game I played in 2021" blog post in 2022.
I decided to use recutils for this because, why not.
## Getting Started
You don't need to install anything if you don't want to. You can just edit the rec file.
But if you want to use the TUI, then `npm i` and `just new` (or `node bin/cli.js`) to create a new entry using the interative prompt.
## Dependencies
- GNU recutils
- node (optional)
- just (optional)
- csvkit (optional)
## Considerations
What kind of stuff am I interested in keeping track of?
- Role: Player or DM?
- Format: In person? (Ha, one day.) Roll20/Discord? Play by post?
- Length: One-shot, adventure, campaign?
- Crew: Who did I play with?
## Schema
You should probably just read the recfile because that will always be the source of truth, but at the time of this writing, the schema is as follows.
```
%rec: Game
%doc: a ttrpg game I have played or am playing
%key: Id
%type: Id int
%type: System,Module,Format line
%type: Updated,Started date
%typedef: Role enum DM Player
%typedef: Length enum Campaign Adventure Oneshot
%typedef: Status enum Ongoing Complete Hiatus Dead
%auto: Id Updated
%mandatory: Id System Module Format Notes Updated Started Role Length Status
```
Note: `Notes` (arguably the most important field) does not have a type because there is no valid type for multi-line entries in recfiles. Thus is remains untyped, uncheckable by recins, and undocumented in the schema. I consider this a bug of the recutils.
## Learnings
check out [doc/learnings.md](doc/learnings.md)
## Recsel examples
- `recsel -e "Role = 'Player'" games.rec`
See `justfile` for more examples
## Todo
- [x] Add types/enums
- [x] ~~tui?~~ run `just new` (or `node bin/cli.js`)
- [ ] add Update to CLI
## Resources
- <https://labs.tomasino.org/gnu-recutils/>
- <https://github.com/zaid/vim-rec>
- <https://www.gnu.org/software/recutils/manual/>