My mud has these things called treasure maps. They sometimes drop when players are fighting monsters. When read, they give an overhead view of a location in the world. If players find that location and dig while holding the corresponding map, they can reveal buried treasure. This is one of those ideas that I thought would just be a cute little side game, but its been met with such overwhelming success on my mud I thought Id share the idea and discuss why it works so well.



When a player loots a treasure map, they can read it and see the following information:



Code:

> read map

===============================================================================

This is a treasure map. Dig at its location to reveal a treasure. It

corresponds to somewhere north and west of Moonhaven. This map's difficulty is

25 (out of 100). You are not at all close. This item has an encumbrance of

0.10.



oowwwwwwww""""""""""ffffffffffffff

wwwwww""""""""""ffffffffffffffffff

""""""""""""ffffffffffffffffffffff

""""""""ffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffxxffffffffffffffff

''''''ffffffffffffffffffffffffffff

''''''''''''ff''''ffffffffffffffff

''''''''''''''''''''ffffffffffffff

''''''''''''''''''''''ffffffffffff

^^^^^^^^''''''''ff''''''ffffffffff

^^^^^^^^^^^^''''''''''''ffffffffff

^^^^^^^^^^^^^^''''''''''''ffffffff

^^^^^^^^^^^^^^''''''''''''''ff~~~~

===============================================================================





Sometimes you get very distinct locations like the one above, which can be easy to find given the approximate direction and distance from a landmark (the main city). However, sometimes you get slightly tougher maps that do not correspond to one obvious location. This is common with beach shores:



Code:

> read map

a treasure map (inv) (kwds: map, treasure map)

===============================================================================

This is a treasure map. Dig at its location to reveal a treasure. It

corresponds to somewhere north and slightly east of Moonhaven. This map's

difficulty is 86 (out of 100). You are getting close. This item has an

encumbrance of 0.10.



oooooooooooooooooooooooooooooooooo

oooooooooooooooooooooooowwwwwwwwoo

oooooooooooooooooowwwwwwwwwwwwwwww

oooooooooooowwwwwwwwww""""""""""ww

wwoooowwwwwwwwwwww""""""""""""""""

wwwwwwwwwwww""""""""""ffffffffff""

""""""""""""""""""ffffffffffffffff

""""""""""""ffffffffffffffffffffff

ffffffffffffffffxxffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffff''ffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffff''ff''ffffff''ffffffffff

ffffffffffffffffffffffffffffffffff

===============================================================================





Players head off in the direction the map says the treasure is, and try to find the exact spot. You need a fairly big world to make this sort of exploration interesting. But of course, this means players can get lost. One of the tools players have at their disposal for treasure hunting is the scan command, which shows a large areas surrounding the player:



Code:

> scan

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFFff''

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFFFFFF

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffFFFFff

ffffffffffffffffffffffffffff''ffffffffffffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

--ffffffffffffffff''ffffffffffffffffffffffffffffffffffffffffffffffffffffff

ff--------------------------ffffffffffffffffffffffffffffffffffffffffffffff

ffffffffffffffffffff''ffffff--ffff''ffffffffffffffffffffffffffffffffffff''

ffffffffffffffffffffff''ffffff--ffffffffffffffffffffffffffffffffffffff''''

ffffffFFffffffff''ffffffffffffff--ffffffffffffffffffffffffffffff''ffffff''

ffffFFffffffffffffffffffffffffffff--ffffffffffffffffffffffffffffffffffff''

ffFFFFffffffffffffffffffffffffffffff--ffffffffffffffffffffff''ffffffffff''

FFFFffFFffFF''ffffffffffffffffffffffff--ffffffffffffffffffffffffffffffffff

''ffFFffFFffffffffffffffffffffffffffffff--ffffffffffff''ffffffffffffffff''

FFFFFFffffffffffffffffffffffffffffffff''ff--------------------------------

ffFFffFFffffffffffffffffffffffffffffffff--ffffffff''ffffffffffffffffffffff

ff''ffffFFffffffffffffffffffffffffffxx--ffffffffffffffffff''ffffff''ffffff

''ffFFffffffffffffffff''ff------------ffffffff''''ffff''''''ffffff''ffffff

ffffffffffffffffffffffff--ffffffffffffffffffffff''ff''ff''''''ffff''ffffff

ff''ffffffffffffff''''--ffffffffffffffffffffffff''ffffFFffffffffff''''''''

ffffffffffffffpp''''--ffffffffffffffffffffff''''''FFff''ffffffffff''ff''##

ffffffffpp''pppppp--ffppffffffffffff''ffffff''''ffffFFffffffffff''''''''##

ffffffppffpppppp--ppffpp''ff''ffffffffffffffffff''''''''''''''''''''''''##

ffppffffpppppp--ffppppffpp''ffffff''''''''ffffff''FF''''''''''''''''''''##

ffffffpppppp''--''ppppppffppffffppffff''ff''ffffff''''''''''''''''''''''##

ffpp''pppppppp--ppppppppppffppffff'''''''''''''''''''''''''''$'$'$'$'$'$##

ppffpppppppppp----------------------------------------------------------..

ffffpppppppppp--''pppp''ppppppffffpppp''ff''''''''ffff'''''''$'$'$'$'$'$##

ffpppppppppppp--hhpp''ppppppppppppff''ppppffffffffffffff''''''''''''''''##

pp''pppppppphh--''hhhhpppppp''pppppppp''pppppp''ff''''ff''''''''''''''''##

pppppppphhhhpp--hhhhpppppppppppppppp''pppp''''''ppppff''''''''''''''''''##

pppppppphhhh--hhhhpphhppppppppppppppppppppffpppp''''''''''''''''''''''''##

pppppphhhhhh--hhhhhhhhppppppppppppppppppppppppppppffpppp''''''''''''''''##

hhhhhhpphhhh--p$hhhhhhhhpppppppppppppppppppppp''pppppp''''''''''''''''''''

wwwwwwwwwwww==wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww





That's basically the entire game. No deep, detailed mechanics. I just sample a random room from the world, print it onto a map, and players go off to find the location. Despite its simplicity, players really enjoy this. I think there's two main reasons why this works so well.



First, it's a very qualitatively different experience than fighting monsters. What you often see is after players have been fighting monsters for a few days straight, they will take a break and just go treasure hunting. It provides a nice change of pace. Treasure hunting is a slow process, but engaging, and ideal for times where you want to play but you don't have the attention span to fight a dragon.



Second, although players are given useful information about the treasure's location in the form of relative directions and distance from the main city, and an overview of the exact location, they are not given directions relative to their current location. This is a big deal. It means players cannot follow rigid rules for finding the map, such as "walk east; look at map and see if I got closer; if I did, repeat. If not, pick a new direction". It's not an easily scriptable process, and thus it doesn't turn into a repetitive grind. Players have to continuously be trying to match up the terrain detail on their map to the terrain detail of their current location visually, and not follow scripted rules.



You may have noticed that the two treasure maps presented above have different difficulty ratings. I get these numbers by calculating the entropy over the room terrain types on the map. The higher the entropy, the easier the map. This is fairly good at mapping non-descript locations to high difficulties and specific locations to low difficulties. For example, here's an extremely easy map that is correctly labeled as such:



Code:

> read map

a treasure map (inv) (kwds: map, treasure map)

===============================================================================

This is a treasure map. Dig at its location to reveal a treasure. It

corresponds to somewhere north and slightly west of Moonhaven. This map's

difficulty is 2 (out of 100). You are not at all close. This item has an

encumbrance of 0.10.



fffffffffffffffffffffffff*ffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffff''fffffff*ff''ff

ffffffffffffffffff''ffffffffffffff

fffffffffffffffffffff*fffffffff*~~

ffffffffffffffffffffff~~~~~~~~~~~~

ffffffffff~~~~~~~~~~~~~~ffssssff~~

~~~~~~~~~~~~fffff*ffffffssffssssff

''''''''''''''''xxffffffffffssssss

''##############''f*f*ffffssffssss

''## ##''ffffffffffffffss

''## ##'*ffffffffffffffff

''## ##'of*ffffffffffffff

''## ##''ffffffffffffffhh

''## ##''ffffhhffffhhhhhh

''######==######''ffffffhhhhhhhhhh

''''''''''''''''''hhffhhhhHHhhhhhh

===============================================================================





As you can see, the terrain is quite varied. Entropy correctly picks this out as a distinct location in the world. It also easily picks out most non-descript locations such as the following:



Code:

> read map

treasure map (inv) (kwds: map, treasure map)

===============================================================================

This is a treasure map. Dig at its location to reveal a treasure. It

corresponds to somewhere slightly north and far west of Moonhaven. This map's

difficulty is 96 (out of 100). You are not at all close. This item has an

encumbrance of 0.10.



ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffxxffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffpppppp

ffffffffffffffffffffpppppppppppppp

ffffffffffffpppppppppppppppppppppp

===============================================================================





What it doesn't do so well is handle landmarks that aren't expressed as highly varied terrain. For example, locations near to roads:



Code:

> read map

a treasure map (inv) (kwds: map, treasure map)

===============================================================================

This is a treasure map. Dig at its location to reveal a treasure. It

corresponds to somewhere slightly north and slightly east of Moonhaven. This

map's difficulty is 75 (out of 100). You are not at all close. This item has

an encumbrance of 0.10.



ffffffffFFffffffffffffffffffffffff

ffffffffffffffffffffffFFffffffffff

ffffffffffffffff''''''''''''''ffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ffffffffffffffffffffffffffffffffff

ff''ffffffffffffffffffffffffffffff

ff''ffffffffffffxxffffffffffffffff

''''''ffffffffffffffFFffffffffffff

''''''ffffffffffffffffffffffffffff

''''''ffffffffFFffffffffffffffff--

''''''ffffffffffffffffffFFffff--ff

ff''ffffffff''ffffffffffffff--ffff

ffffffffffffffffff''ffffff--ffff''

--------------------------''ffffff

ffffffffffff''''ffffffffff--ffffff

===============================================================================





Thankfully, in my game world. these locations are few and far between and don't really impact the experience that much. If they did, I could probably work around the problem by artificially lowering the difficulty of maps that contained roads, or by simply requiring map locations to be a certain distance away from roads.



The only other major problem I've been faced with is making maps accessible to my blind players. Unfortunately, I cannot think of any way to do this without making maps trivially solvable by performing a gradient descent.



But, overall, this feature has been an overwhelming success on my mud.