Automated Adventure System
-
Automated GM-Free Adventures (a.k.a. "Shardhavens")
Basic Intro
So, as some of you know, I've been working on the first phase of an automated 'exploration' system on Arx, which will allow people to go out and have adventures on their own that can result in treasure/lore without requiring a GM present, but which still have risk.
The first phase involves generating 'shardhavens', which are a specific bit of Arxian lore: abyssally-tainted ruins and other places, where monsters live and treasures or lost bits of knowledge can be found.
These shardhavens are procedurally-generated mazes which are full of monsters to fight, treasures and trinkets and lore to find, puzzles to solve, traps to disarm, and other obstacles to pass.
In effect, they're each a tiny multiplayer roguelike that happens to give you interesting things you can use in the main game (and which come with an attendant risk of injury and/or death at the hands of horrifying monsters).
This thread is as much to share my own system design thoughts as anything else, but I know some people have been curious about it.
Basic Concepts
To start out, I defined the concept of a 'shardhaven type'. For instance, an old crumbling ruin will need different descriptions than a dank cavern system, and both will need different descriptions than a twisted, abyssal forest.
Shardhaven types are dynamic; we can add new ones as-needed. All other 'pieces' that get put together for a shardhaven when one is generated are marked as belonging to one or more shardhaven types, and so the system can easily find what it's looking for.
The concepts the system uses right now are fairly simple:
- Shardhaven definition
- Tilesets and Mood Fragments
- Obstacles
- Treasures/trinkets
- Monsters
Procedural Generation
The first and most important stage of a shardhaven's creation is to generate an actual layout. This is done through a procedural generation maze-maker I wrote, using a fairly standard recursive backtracking algorithm. (Since in my variant each 'wall' is one cell square in size, the algorithm has the limitation that it requires odd dimensions; a 21x13 grid is acceptable, but a 20x14 one would not be.)
Each square of the maze is assigned a template from the tileset; a tileset is a series of names and 'mad libs' type descriptions, such as:
The ceiling of this once-grand room arches high overhead. {} Columns line both sides of the room, making for shadowed alcoves where anything could be hiding. {} {}
When the rooms are instanciated later, each of those bits marked with
{}
will be replaced by a Mood Fragment, which is a 1-2 sentence blurb like, "There are long, deep lines scored into the stone near the entrance, as though something once desperately clawed at the wall."Once the maze is generated and tilesets are assigned to all the squares, exit markers are generated between each square of the maze; some of these exits have an Obstacle assigned to them, to make something the group will have to pass.
At this point, though, the shardhaven is still just a 'layout'; there's no actual rooms that players could go through. The layout actually stores all the 'state' of a shardhaven: who's explored where, who has disarmed what traps, and so on.
When a shardhaven is 'instanciated', it goes through that layout and dynamically builds all the rooms/exits necessary for a player to actually move through the shardhaven. It's at the instanciation phase that the 'mad libs' bit of tileset descriptions are filled in with Mood Fragments.
A shardhaven can also be deinstanciated; all the rooms and exits will be destroyed, but the layout remains intact. When reinstanciated, doors that have been broken down or traps/puzzles that have otherwise been disarmed/solved will still have their state (unless someone has 'reset' the shardhaven, which clears all that data).
Obstacles
Obstacles prevent a party from passing through an exit until they're addressed. There are three types of obstacles:
- Obstacles that each player must pass every time. (Think a chasm to jump over, which you have to jump back over if you backtrack.)
- Obstacles that each player must pass once. (Think a trial of spirit, where you don't have to pass it a second time when you backtrack.)
- Obstacles that only one player needs to pass and then the whole party can go through. (Think locks to pick, puzzles to solve on a door, and so on.)
Each obstacle has a collection of solutions. A solution can be a list of bits of IC knowledge (@clues), where if you possess that knowledge you don't even have to roll because you have the necessary knowledge to pass it. But more commonly, a solution is a dice roll; to jump a chasm, for instance, might be a dexterity+athletics roll.
Some solutions will pass the obstacle for everyone. The chasm might have a dexterity+carpentry roll to construct a crude rope bridge, in case you have a carpenter along; if the bridge is constructed, now everyone can pass instead of having to each jump across the chasm.
When you attempt to take an exit that's blocked by an obstacle, it tells you what your options are and lets you pick one. On failure, some obstacles will hurt you (don't fall into the chasm!); all obstacles will prevent you from attempting again for three minutes (to avoid people just spamming attempts, and to encourage RP in the room while you wait).
Monsters
When you enter a room, there's a chance of a monster appearing to attack you. (You can 'sneak' from room to room -- a dexterity+stealth roll -- to reduce this chance.)
Monsters are basically a random encounter table; there are 'mook' monsters (where multiple weaker monsters will attack you) or 'boss' monsters (bigger single monsters). When a monster attacks, everyone in the room is pulled into coded combat, where you have the opportunity to guard other players, attack, attempt to flee, and so on.
When a monster dies, there's a chance of it dropping alchemical materials (basically monster-parts) or a treasure.
Treasures (Trinkets and Weapons)
These are also randomly generated from what are called 'loot fragments'; a list of adjectives ('shining', 'gleaming', 'sinister', etc.), a list of weapon decorations, a list of item types, and so on.
A trinket might be an {adjective} {material} {item}, like a 'gleaming copper lantern' or a 'sinister orichalcum lyre'. (These items will actually figure into the magic system eventually, as they'll be able to be broken down for magic power to use in rituals.)
Weapons, meanwhile, are actual weapons for use in the combat system; those that are of lower-quality materials are just 'an ancient {material} {weapontype}', like 'an ancient rubicund halberd'. Those of high-quality materials actually get names generated from first/last fragments, such as 'Songstealer, a diamondplate longsword' or 'Neverweeper, an alaricite longbow'.
The material, quality, and type (small, medium, huge, or bow) of a weapon are picked from a probability table, and then the name and a description are generated.
Shardhaven Configuration
Everything about a shardhaven -- spawn rates and chances, how often monsters are 'mooks' versus 'boss' monsters, how difficult the monsters should be overall, and so on -- is tuned in the original Shardhaven record. This makes it easy to tweak a shardhaven, or to make one a lot more difficult than another.
Down the road, I plan to add a graphical shardhaven editor so that staff can actually manually tweak a shardhaven's layout after generation -- placing guaranteed monster encounters, marking a room that will absolutely contain a treasure, and so on.
Future Features
Shardhavens are just the first part of the greater exploration system, and this is only the first phase of shardhavens. There are still things I plan to add even from a player side, like:
- Potentially-trapped chests containing trinkets, treasure, or rare materials for the crafting system.
- The ability to rediscover lost lore in a shardhaven, thus earning @clues.
- Integration with the magic system down the road, where there will be magic-using ways to pass some of the obstacles.
- Wrapping a shardhaven journey into an 'expedition' which you need to actually ICly fund before you can embark on your adventure, and which will track what sort of things you found.
Wrap-Up
I've been trying hard to make the obstacles have an interesting variety of skills involved, so that there's reasons to bring smart people who aren't swordy-fighters (who then you want your tanks to protect in combat!), and so on.
I've even added a command to allow people with leadership to make a party leadership roll (once every 30 minutes) to reduce the difficulty of an obstacle temporarily, in order to represent drawing the party together to help someone pass along who might not otherwise be able to do a 'jump the chasm' obstacle.
But I am curious about balance -- about what sort of skills people want to be able to bring to these areas -- and what people think of such a system in general. The players I've run through the Castle of Testing (my test shardhaven) seem to have enjoyed themselves, but I'm always curious what sort of things people most /want/ to see out of exploration.
-
This all sounds pretty awesome, good luck getting it all together!
ETA : I'm sure it's already on the agenda, but making sure there is room for people on these things who aren't combat-y is probably important. You said there's going to be a 'defend' thing for the combat which helps.
Finding the right balance of AVOIDING "you need 2 fighters and 1 thief type or gtfo" cookie cutter requirements is probably important. Maybe don't /require/ lockpickers on every trip, buuut if you have one with you, maybe you get a chance at more loot than you would otherwise. Maybe let more sneaky types try to skirt through half of a shard haven if they opt to avoid where the big bad monster (and good loot) is.
On the surface I'm having trouble picturing there being room for social characters, which sucks. Buuut...maybe some of the monsters are sentient? IDK.
Mental/Occult-y type characters can at least tag along for puzzles or identifying stuff you find.
Will these have "difficulties" tied to them that people can see? "This is a very dangerous shardhaven, don't set foot inside unless you know what you're doing." Etc/etc. --Or maybe that's something that scout-y or occult-y people can try and "identify" before actually going to the shardhaven.
-
@tempest As one of the testers -- I think for the second go-round, so there was another two or three test groups after me -- you definitely can't make it very far in one of these if you only have combat monsters with no skills in other areas. And there are obstacles for social characters that I saw multiple times. Dumb sentient door. I couldn't sing its stupid song well enough!! There's definitely obstacles angled towards Physical, Mental, and Social characters. (And crafters, even!) Often there are options for more than one "type" of character on a given obstacle.
-
@roz I second this. I went through on Alarissa so that there could be "squishy" testing and while I died more than a few times (because things were attacking the first person through the door and I was deliberately toggling +fight, there was more than enough for someone who leans to the more social/scholarly pursuits. Like hold a conversation with a demonic head on a door and convince it that you deserve to go through, or to discern a language that the instructions on how to get through was written. And then stuff that I just couldn't do because that required athleticism and how to hold a spoon apparently doesn't count.
I thoroughly enjoyed it and yes, your combatty types will have to protect your squishies. Even well armored squishies, if the monsters decide they rather prefer the taste of the more tender things in the room.
-
@pax is uh may zing!
And yeah, we're making sure to include obstacles that use a wide variety of skills and specializations, with options for each, so that people are encouraged to take all kinds of characters adventurin. Riddles! Performance! Legerdemain! Intimidation! stuff. and things.
-
With my character as a combat beast there were actually times when I was testing that I felt kind of useless to my poor team. I couldn't open the doors. I could jump over the chasm super easy, but had no way to bring them across. I think it is amazing and while of course it's still in testing, already I think there is good balance for combat/non-combat and I'm sure it will get better before release!
-
@kodiak But you can PROTECT THE SQUISHY SMARTIES
-
I SURE DID. Re-reading that, I more meant: From my experience, you can't just bring in a bunch of bad-ass combat characters and expect to do well. Me feeling useless at parts was a good thing!
-
I’ve built my main as a rogue type without there being any real game advantage before, I’m super excited to try the Shardhaves with her!
-
Oh wow having the riddle challenges and stuff for noncom people sounds amazing. Look forward to seeing this roll out!
-
@cari I haven't actually seen a stealth type thing in the shardhavens yet, but I am waiting to see if one is added! I do remember asking if someone could stealth their way through the combats. XD
-
@kodiak said in Automated Adventure System:
I could jump over the chasm super easy, but had no way to bring them across.
This was enough of a problem in at least two of the test runs that I added an
assist <direction>
command which rolls wits+leadership to come up with a party strategy, and thus reduce the difficulty of the obstacle in that direction for ten minutes.@too-old-for-this said in Automated Adventure System:
@cari I haven't actually seen a stealth type thing in the shardhavens yet, but I am waiting to see if one is added! I do remember asking if someone could stealth their way through the combats. XD
I also added a
sneak <direction>
command that—provided there's no obstacle blocking your way—will allow you to make a dexterity+stealth roll to sneak into the next room; if you succeed, the chances of a monster spawning on you go way down, while if you fail, you make enough racket that the chances go up. And since I'm tuning it so that the chances of a monster spawning in are highest for the first person to enter a room, there might be value in sending a sneaky-sneak in first to scout. -
@sparks I you in totally platonic ways. That is AWESOME!!! Now I really can't wait to make another run through!!
-
@sparks YES! SNEAKING!
-
Hm. Soooooo, you've basically invented a MUD inside a MUSH? If you could get a MOO in there, it would be like a text turducken.
-
@bad-at-lurking what IS a moo?
-
@kanye-qwest this is a moo
-
Just in case the question wasn’t a setup for a hilarious picture (hey, I laughed!), a MOO was a kind of TinyMUSH with a built in console for coding locally in ... C, I think? Like MUCK, it could do some amazing things that haven’t been seen on the Tiny side until Ares and Evennia.
Sometimes we don’t follow the better path.
-
@thenomain said in Automated Adventure System:
Just in case the question wasn’t a setup for a hilarious picture (hey, I laughed!), a MOO was a kind of TinyMUSH with a built in console for coding locally in ... C, I think? Like MUCK, it could do some amazing things that haven’t been seen on the Tiny side until Ares and Evennia.
Sometimes we don’t follow the better path.
MOO means 'MUD, Object-Oriented.' MOO actually has its own programming language (called just "the MOO language", I believe), but it is vaguely C-like, yes.
-
Yeah, MOO doesn't really use a mainstream programming language, though it is far closer to one than MUSHCode.
@Sparks Automated encounters isn't really my jam personally (too MUD-like for me) but it sounds like an impressive system. Kudos.
How do you (or do you?) prevent groups from just being completely stymied if they didn't bring along the right magic mix of PCs to address the challenges in a particular shard? "Oh well - none of us have the right skills to get through the magic door. Guess we're done." I would think you'd want it to be challenging but not flat-out impossible. Are the challenges geared towards the group?