summaryrefslogblamecommitdiffstats
path: root/2023/talks/solo.md
blob: 9bf2edbec9a326b2baca582900366cd021e4ed20 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13












                                                                                                                   




                                                                                                  






















                                                                               
                  
 

                                                                          








                                                                       
                                                         






                                                                       
                                           
                                                             
                                                           


                                                                    



                                                                       

                                                                        

                                                                 





                                                                         
                                                                    








                                                                    

                                                                     













                                                                      
                                                                      
                                                                     
                                                                       


















                                                                                                                  





                                                            
[[!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"]]