summaryrefslogtreecommitdiffstats
path: root/2020/info/29.md
blob: 45661e73229cee0c6c04cb56c0bf984a6cf24a18 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Pathing of Least Resistance
Erik Elmshauser and Corwin Brust

We hope the dungeon-mode project will eventually support three primary
use-cases related to editing/designing, playing and running/hosting
RPG games.  In a "vanilla" game, characters descend from the "General
Store" (the one safe haven available) into the dungeon, a (nominally)
underground labyrinth of unknown dimensions with generally asocial
occupants and occasional bits of treasure.

Players can track (as long as the "lights" stay on) the location of
their party of characters via a process we usually call "mapping".
This has usually involved the dungeon master "calling out" the shape
of the map level as the party, in turn, calls out their route or
"pathing" decisions.

    DUNGEON-MASTER
       "Corridor East-West"
    PARTY-LEADER
        "West"
    DUNGEON-MASTER
       "Ten feet, corridor ends goes South"
    PARTY-LEADER
       "South"
    DUNGEON-MASTER
       "Step into an area.  It's a
        twenty-by-twenty area extending
       West, with exits in the Western
       part of the southern wall and the
       Southern part of the eastern wall."
              **rolls dice**
       "Nothing waiting in the area"

Mapping quickly emerged as a focal point for development.  Especially,
we were to excited to try creating an 'on-the-fly' graphical
representation of the map that could respond to changing in-game
circumstances.  (Oops, all your Elves are dead.  Where'd the secret
doors go?)

During this 20m talk I'll provide a couple of reference points on
Emacs's image and especially SVG rendering capabilities, then
introduce a series of proofs-of-concept focusing on our experience
using core libraries such as \`svg.el' to make them.

As of submitting abstracts, these include

-   "DM map view" - select and render a complete game map,
-   "play mode map" - progressively render maps based on game action,
-   "battle-board" - track damage taken by player characters, and
-   "character-sheet" - a graphical character sheet
-   "previews" - view map tiles when hovering their draw code in org
-   "sketch" - a "click-to-draw" experiment

For an advanced peek please see our git repository (but note we're
moving to Savannah soon).  We'll be talking first about [map.el](https://github.com/dungeon-mode/game/blob/master/src/dm-map.el),
especially \`dm-map-draw' and helpers.  A few sample game maps this can
render are available as org-mode documents in the [Docs/Maps](https://github.com/dungeon-mode/game/blob/master/Docs/Maps) folder.

Those interested could compare functions between dm-map.el and
[dm-draw.el](https://github.com/dungeon-mode/game/blob/master/src/dm-draw.el), which is an incomplete rewrite of the "SVG rendering"
functions used only by [dm-sketch.el](https://github.com/dungeon-mode/game/blob/master/src/dm-sketch.el) (so far).  Hopefully, it will be
writing our "sketches" back out to org docs in time for the
conference.

Note on github:
The project is transitioning to Savannah.  Please watch for
redirects/moved notices when using these links.

<!-- from the pad --->

*This time slot was combined with the previous.*  See [[/2020/talks/28]]