Back to the schedule
Previous: Sharing blogs (and more) with org-webring
Next: Day 1 closing remarks

OMG Macros

Corwin Brust

Download video
Download subtitles
Download compressed .webm video (24.3M)

Macros are a powerful tool. In the context of Emacs Lisp programming they can also provide us with a "foot-gun" of immense proportions. Join the dungeon-mode project as we trip over our own macros, so to speak, in the context of building a GPLv3+ turn-based role-playing game engine and game design features for Emacs.

In this 20m talk I'll briefly introduce some rationales leading to storing all game source and play state information within org-mode documents (spoiler: it's about freedom), then go into some detail around the "ETL" process design that currently accomplishes this. Finally, we'll look closely at one especially problematic macro deep within this solution, and invite people to throw fruit11dhelp draw conclusions, ask questions, and discuss.

Additional Materials

org, svgtar.gz25kNotes for all talks
demowebm26mCharacter Sheet
demowebm19m"Sketch" Map and Tile editor
demowebm16mBattleboard, damage tracking
demowebm9mGame Maps, controlling fog-of-war
demogif724mAll demos, no overlays
demojson274KOBS scenes
elispwww Corwin's init files
  • Actual start and end time (EST): Start: 2020-11-28T16.17.32; Q&A: 2020-11-28T16.34; End: 2020-11-28T16.38.32


How is your background work?

See 06: Trivial Emacs Kits's Q&A: Corwin uses Wallpaper Engine.

  • [Corwin] Wallpaper Engine on Steam is probably the thing that's grabbing attention. I haven't tried it under GNU/Linux. My family are (mostly) Windows users right now heavy sigh I don't want to get into my tool chain a huge amount, but I will talk about it some as/durning the Welcome to the Dungeon talk tomorrow. For now I will say I'm using a mix of free (free and not-free but too easy to avoid tools on my one pretty good computer). I would love to have the time to invest to use more (only) free stuff but sometimes we we can't afford the freedom, in terms of the learning curve. I think this is the most important problem space in free software, FWIW.

What was the key message you wanted to share with your talk?

Macros are powerful and necessary. Consider how you use them?

Do you mind if I use your macro code as inspiration for an elisp uglifier?

Have At! It's GPLv3 and you are welcome; let me know if you have any trouble finding fruit to throw.

Saturday, Nov 28 2020, ~ 4:16 PM - 4:36 PM EST
Saturday, Nov 28 2020, ~ 1:16 PM - 1:36 PM PST
Saturday, Nov 28 2020, ~ 9:16 PM - 9:36 PM UTC
Saturday, Nov 28 2020, ~10:16 PM - 10:36 PM CET
Sunday, Nov 29 2020, ~ 5:16 AM - 5:36 AM +08

Back to the schedule
Previous: Sharing blogs (and more) with org-webring
Next: Day 1 closing remarks