[[!meta title="How I play TTRPGs in Emacs"]] [[!meta copyright="Copyright © 2023 Howard Abrams"]] [[!inline pages="internal(2023/info/solo-nav)" raw="yes"]] <!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> <!-- You can manually edit this file to update the abstract, add links, etc. ---> # How I play TTRPGs in Emacs Howard Abrams - Website: <https://www.howardism.org> - Mastodon: @howard@emacs.ch, <mailto:howard@howardabrams.com> [[!inline pages="internal(2023/info/solo-before)" raw="yes"]] - Ironsworn Emacs project code: <https://gitlab.com/howardabrams/emacs-ironsworn> - Note that this code depends on my earlier project: <https://gitlab.com/howardabrams/emacs-rpgdm> - The alpha version of a RPG Toolkit code: <https://codeberg.org/howardabrams/emacs-rpgtk> As an eternal Dungeon Master, I have a long history of collecting my notes in Emacs. When my son was very young, I would export my Org files to an HTML page that would include some magic JavaScript, so that when displayed on my iPad, I could touch a table to have it randomly return a line, or touch a phrase like `3d6+1`, to have the web page return a dice roll. Lately I’ve been getting into Solo versions of tabletop role playing games (TTRPG), and have had a fun time writing Lisp to support this style of play, and thought I’d share my code and my fun. I’d like to begin by showing my game play in action: I’m currently playing Ironsworn with the Mythic GM Emulator and various other tables and procedures to stike a balance between *playing a game* and *writing a book*. Next I would like to show the code that supports the interface, and perhaps dive a bit deeper into some of the underlying mechanisms and functions, especially that function that randomly chooses entries from Org tables. I’ll end with a plan for turning my code into a community project, if people are interested. Format (10 minutes, 20 minutes, description of other format) and outline: 20 minutes, but I could do less if you have too many submissions. About the speaker: Howard often gives technical, work-related talks at EmacsConf, but here he is talking about playing games in Emacs. # Discussion ## Questions and answers - Q: Where can I get this? - A: <https://gitlab.com/howardabrams/emacs-ironsworn> - Q: How well would this suppliment freefoxm writing. short novels or novels? - A: I think it would be a good start. It is just an org file, so you can go as far as you'd like with the writing. - Q: Does the current version also have some utilities for doing multiplayer? (either physically or digitally) (since you mentioned, you previously did multiplayer sessions as well..) - A: Nope, it is just Solo, but that does sound like a fun idea. - Q: This game + CRDT (collabrative editing <https://github.com/emacs-straight/crdt.git>) should be great for non-solo playing? - A: Perhaps, I'd like to try it out. - Q: How does one become super awesome like Howard Abrams?? - A: "There's no secrets! Just follow your passions!" - Seriously inspiring. - Q: Please talk a little about how you produced such a slick presentation video! Everything looked completely professional! - A: <https://emacs.ch/@howard/111506614571155011> "My son helped me record my presentation for #emacsconf and we were able to achieve an over-the-top show that will evoke the feels ... from snickers to eyerolls." - Q: Does table data allow for recursion? I have a table that when I roll on it, a result comes up that references another table (e.g. result that returns "There are [random monster] haunting the cavern entrance" and we'd roll on [random monster] and inject them into the result.) - A: Yes. - Q: With your toolkit a list of good books would be nice to be included. example d&d, space, steampunk, cyberpunk settings - Q: Hi Howard and Thanks for an outstanding presentation!!! What did you use to create the graphics in your presentation? - A: I don't really know. I will have to ask my son, as he did the editing and directing. - Q: Any plans to borrow tables from Dungeon World, or Ironsworn:Starforged and publish in the toolkit repository? (<https://github.com/lifelike/Dungeon-World-Org-Mode>) - A: That does sound like fun. - Q: How has this impacted your imagination on the scenes? (e.g. constraints by algorithms) - A: Yes, writing creatively can be very helpful in many other aspects of your life. - Q: Your essay/video "Literate DevOps" I consider a classic, and it's really opened my eyes on org-babel and what you could do. Do you still use those techniques at work? Have you come up with any improvements or changes to your workflow? - Yup. Still do. ## Notes - Ironsworn Emacs project code: <https://gitlab.com/howardabrams/emacs-ironsworn> - Note that this code depends on my earlier project: <https://gitlab.com/howardabrams/emacs-rpgdm> - The alpha version of a RPG Toolkit code: <https://codeberg.org/howardabrams/emacs-rpgtk> - Really cool project! - Also the enthusiasm for the topic is really contagious! - "Every time Howard publishes a talk, I end up doing one more thing in a new radical or literate way inside Emacs - currently looking into how to go about literate snow shoveling for the winter ahead." - I can see this one is going to be a classic - the camera and lighting already has me sold - Such a vibe! - can I just (require 'howardism) and be done with it all? - i love this so hard - "Howard's talk is published on the site now" "I'll be in my bunk" - Holy CRAP Howardism WINNING EmacsConf2023 - Could we add this to emacs beside dunnet? - Howard's stuff is always great. this particular thing is totally unchained. :D - "Howard approaches your table in the tavern. Do you (1) buy him a tanker of mead (2) kill him and eat his brain" - "Not showing-off," he said. - That was epic - Happy Hacking! - What's the emoji for a crowd picking Howard up on our shoulders and carrying him around - there's a peaceful aspect of having non web based stuff to play - Non-web, and not-networked! - the web is horrible. lisp machines are the future. - Imagine playing D&D with colab (from the previous talk)! [[!inline pages="internal(2023/info/solo-after)" raw="yes"]] [[!inline pages="internal(2023/info/solo-nav)" raw="yes"]]