~/talk

Dungeons, Dragons and Functions

Talkat NDC Sydney 2019 · 2019-10-14..10-18· [frontend-architecture]
slides:none on file

Encodes Dungeons & Dragons rules into F# using algebraic data types to model abilities, attacks and reach, builds a DSL for dice (roll expressions, operators and a recursive evaluator), and implements a combat simulator compiled to JavaScript with Fable + Elmish. Uses mailbox processors to automate creature decisions, runs many simulated combats to estimate win probabilities (example: three wolves vs three goblins), confronts 300+ page PHB complexity, and plans reinforcement learning to improve AI after ~18 months of work.

AI-written summary · about

  1. 0:00Intro
  2. 1:44Origin Story
  3. 8:12Ogres, Goblins, & Company
  4. 9:35Discriminated Union
  5. 9:54Abilities
  6. 10:30Pattern Matching
  7. 11:12Modifiers
  8. 16:58Pattern Match to extract data
  9. 20:53Wyvern attacks
  10. 23:44Light, Heavy Weapons
  11. 28:55Tomas Petricek
  12. 41:32What is a fair fight?
  13. 43:30Modeling (4)
  14. 51:52Scott Wlaschin
  15. 52:22Alternatives
  16. 53:28What's missing?
  17. 54:51Thank You! (Cast Bless)
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.