PDA

View Full Version : Campaign Building Tools



cjd72
2020-06-28, 05:42 PM
Hello all!

Long time lurker, first time poster. The reason for this post is to ask a very important question to you all and hopefully get some feedback and perhaps conjure up a 9th level Brainstorm.

First, some background: I have been playing D&D since I was 6 years old (now 25). My cousins house had a D&D room with maps lining the walls, dice, props, and contraband galore- yes I know how awesome that is. It was for the big kids, but during social get-togethers us kids would run in there and have grand adventures exploring many fantasy worlds. One of my cousins was always the DM because it was incontestable that he had a gift for it. Over many years of playing almost weekly we had quite a world built up in our imaginations. Fast forward several more years and I live across the country with a friend group of my own that I DM for. I've been doing it for about 4 years and I absolutely love it. It wasn't easy getting started, however. I have watched every Matthew Colvile video probably 5 times. All of How to be a Great Game Master's videos. Critical Role. Interviews with DM's. I've read countless articles and dredged up countless maps, notes, characters, homebrew items, and campaigns people have created and shared online. I've watched and read it all. It took all of that for me to feel like I am a competent enough DM to continually engage my players for 4 hours every week. That took YEARS and most of the good information I had to dig for. Now, I'm a computer programmer and when I see a problem I try to find a way to solve it. This brings me to my actual question:



If there was a piece of software to help you WRITE, CREATE and RUN a D&D campaign, what would it do?



Think about functionality, look and feel, features, plug-ins. Would it help you structure a campaign so it has a cohesive plot arc? Would it make recommendations, or stay out of your way? Would it follow a template, or simply be a white canvas for you imagination?

I'm DYING to hear ANYTHING you guys have to say about it. I've thought on this for probably a year now so I have a pretty good idea of what I'd want in my head, but I will refrain from posting it here so I don't put any thoughts in your head. I want to hear what YOU think.

Thank you so much for taking the time to read all this! Hope to see you in the comments.



TL;DR: if you were going to get software to help you create a D&D campaign what would you want it to do?

Composer99
2020-06-28, 09:09 PM
I think there are three broad elements to being a DM.

(1) Running the game session.
(2) Adventure/encounter building.
(3) Building and managing the broader setting.

Running the Game Session
This can include:
- being aware of player character capabilities (what's their AC so you're not always asking? what's their passive Perception? What spells could the cleric creditably have prepared today?)
- easy access to monster statblocks
- making combat easier, by tracking initiative, tracking limited-use monster abilities, tracking conditions, tracking "scripted" triggers ("when the balor hits one-half hp, this thing happens" or "after 1d4 rounds of combat, that thing happens", that sort of thing)
- supposing this is meant to support online play, possibly supporting encounter maps with character/monster tokens
- having tools available at need - for instance, random encounter tables during wilderness or dungeon exploration
- having tools to modify pre-prepared material on the fly at need
- Tracking the passage of time

Adventure/Encounter Building
This can include:
- Designing and drawing encounter maps
- Building/configuring encounters (deciding on the participating NPCs/monsters, scripted/triggered events)
- Establishing general details - lighting/noise/ambient environment in a dungeon, that sort of thing
- Adventure flow diagramming (there might be some coherent flow in any adventure save the most sandboxy of adventures)

Setting Building & Management
- Offering the ability to use game-specific defaults (such as the defaults described early on the DMG for D&D 5e), or deviate from them or customise details
- Ability to track status of key NPCs (so you know who's died, who's exiled, etc.) and overarching plot elements (so you know how long it is before the Doom Ritual of Doom happens, condemning the world to Doom)
- customised or homebrew content
- organising setting information at various scales
- it might be too much to ask to have tools to help build elements at various scales that combine sustaining verisimilitude and emphasising the fantastic, in whatever proportion of each is needed

A more thorough review will surely find plenty of fuzzy boundaries and overlap between each of these three broad categories, so while I think it would be difficult to have a single tool that does all this, three tools (one for each category) that are well integrated would likely be a plus.

PhantomSoul
2020-06-28, 09:23 PM
Adding to Composer's great list, customisability and adaptability. Things like macros or being able to upload/add a custom script (e.g. for initiative or for alternative roll types or for changing to a different skill system) are crucial to me.

It's a bonus if there's audio and/or video in the software/app/webpage, meaning you can run everything from there.

No requirement to download an app to use it.

Integrated chat with private messages.

Rollers, and monster + characters sheets that you can roll from.

MaxWilson
2020-06-28, 10:15 PM
If there was a piece of software to help you WRITE, CREATE and RUN a D&D campaign, what would it do?

Here's are some thoughts from my own 5E software project (work in progress), and my motivations for wanting a tool in the first place:

(1) 5E is close enough to a CRPG already that there are a lot of scenes that I just want to offload onto software, both so I can think about the big picture as a DM (what happens next?) and to speed things up and make them more fair. If 4 8th level PCs are in the middle of a fight with 16 zombies and 8 skeletons, do I as a human DM really need to be involved? I would like the software to handle the rules resolutions and monster actions (zombies just mindlessly attack whatever is nearest; skeletons focus fire on the softest-looking target) while I think about how much noise the PCs are making and whether the Medusa in the next room is going to stay where she is or leave her room and join up with the Manticores next door.

(2) Auto-resolution needs to be a guide, not a straitjacket. As DM I still need to be in control. Even though auto-resolution is important, I need the ability to intervene ad hoc, e.g. to grant somebody advantage on an attack even thought the rules don't say he should have it, because someone did something on the roleplaying layer which justifies the advantage (e.g. PC A uses the perfect Monkey Island insult to distract and enrage the target T, so PC B gets advantage against T).

(3) Lazy data entry is a must. If I as DM say, "Add five Squigglies to the battlefield, in random locations," if Squigglies are a custom monster I should be able to add only the minimum amount of information needed. It shouldn't ask me what a Squigglie's Charisma save is unless and until something happens which requires Charisma. It shouldn't ask me what a Squigglie's climbing speed is unless and until there is something to potentially climb. It should have sensible defaults for visual appearance, and if the players give Squigglies a new name like "Maw Beasts" it should be smart enough to use that name for the creatures when it's talking to the players and my name when it's talking to me.

(4) It needs to be able to explain to players why things happened the way it did. This is true both at the level of dice rolling and rule resolution ("your attack missed because your attack roll of 22, after Bardic Inspiration, was still not enough to beat the lich's AC because it Shielded"), and also from the bigger strategic picture: if I want to show the players after combat what the hidden Skulks were doing to get closer as the players were chucking Fireballs at the zombies, and why it was that the party got TPK'ed by Skulks apparently out of nowhere, I should be able to show them what was "really" happening all along and what signs were given to them (moving objects, footprints, etc.). In a lot of cases PCs would be able to eventually reconstruct afterwards what really happened, and especially in those cases I want the ability to show them as well as tell them, so that they can learn to be better players, and so that I can actually use sneaky tactics and not feel like I'm cheating when I do so.

(5) Ideally the world is both 3D (via Hololens or Oculis Rift) and customizable--if a player wants to use a stick figure to represent themselves, that's fine, but if they want to use a complex 3D model with animations, that should be possible too. Ditto if I want to freehand sketch a map in the middle of a session, or upload a map that I got off the Internet. The world also shouldn't be required to be organized into 5' cubes--many buildings have 3'-wide hallways and 12' x 9' rooms, and walls 4" thick, etc. Having a 3D view via Hololens is ideal, but even a regular 2D view saves a lot of time, especially if it still supports 3D battlespaces with verticality where you can go up cliffs and over bridges and through tunnels underneath, etc.

(6) This next ask is more oriented towards DMless play than adventures run with a DM, but while I'm at it I'd like the ability to run combats under machine learning using adaptive game AI and genetic programming, so that monsters can evolve their own strategies, and so that I can unlock more cunning monster tactics automatically as the difficulty level goes up, instead of just increasing monster stats. E.g. at low difficulty levels, orcs and goblins mob you in Fireball formation, but at higher difficulty levels goblins strafe you with shortbows from skirmish formation, and orcs do the goblin conga line so that all 30 orcs can make melee attacks on the same target in one turn.

(7) The tool also needs to be able to teach players to play the game. E.g. after an hour's play using the tool in mock fights, a new player should have a working knowledge of how to roll an attack roll 5E (a d20 plus modifiers, compare result to enemy AC), the fact that you get only one bonus action per turn plus an action, that you can move both before and after your action, that you can't cast a regular action spell and a bonus action spell, etc. That is, the tool should walk the player through which dice to roll and what modifiers to add, and let them know at any given time what options they are available for actions (Attack, Dodge, Hide, Disengage, etc.).

(8) It goes without saying that the tool needs to handle little chores as well, like PC creation/XP tracking/level advancement/feat allocation on the PC side, and encounter difficulty computation/map drawing on the DM side. (Encounter difficulty computation is yet another reason to want to run combats without players involved, so you can estimate how difficult the fight really is against e.g. a hypothetical party of 2 Samurai and 2 Swashbucklers.)

MrStabby
2020-06-29, 06:27 AM
(6) This next ask is more oriented towards DMless play than adventures run with a DM, but while I'm at it I'd like the ability to run combats under machine learning using adaptive game AI and genetic programming, so that monsters can evolve their own strategies, and so that I can unlock more cunning monster tactics automatically as the difficulty level goes up, instead of just increasing monster stats. E.g. at low difficulty levels, orcs and goblins mob you in Fireball formation, but at higher difficulty levels goblins strafe you with shortbows from skirmish formation, and orcs do the goblin conga line so that all 30 orcs can make melee attacks on the same target in one turn.



I have got to say this is going to be really tough - the amount of data you need to train a model of this type is immense. Looks at something like Alpha Zero - it plays a massive, massisve amount of games against itself to feed into reinforcement learning but even then it still needed monte carlo tree search to focus in on a subset of available moves. In a chess game the board is constant, the pieces all behave in the same way between games, there is a relatively narrow range of legal moves, it is deterministic, there is a simple win/loss/draw condition and the starting configuration is always the same. Non of these are true for a hostile encounter in D&D. All of these will increase the amount of data needed, with the possible expeption of the win/loss/draw point.

A standard adventuring party with a modest set of abilities in a standard room and a quatitative mesure of the degree of winningness for each side in the outcome and you could do this - although much, much easier if you can remove some of the oriented spell effects like cones and lines. For anything close to a reasonable version of 5th edition - I just don't think it is possible, at least not without spendinga small fortune on compute power.

cjd72
2020-06-29, 10:59 AM
@composer99 thanks for the great response. I think you hit the nail on the head with what functionality a piece of software should have to help a DM. AND I think its reasonable and achievable.

@MaxWilson is shooting for the moon. Many of the things you talked about are insanely hard to do. I wish you the best of luck with it friend.


Now tools along the line of what composer99 suggested which makes running the game easier, but not doing if for you are a great idea. Auto tracking of HP, AC, status affects, spells. Easily accessible monster sheets. Scripted events. Those things would be a godsend and I'm very glad you talked about them. Have any of you used Fantasy Grounds of World Anvil? What did you like/dislike about them?

Personally, I hate the learning curve of Fantasy Grounds and the structural rigidity of World Anvil. I'd like something that can do what I want it to, without forcing me to do anything I don't want.

What do you think?

cjd72
2020-06-29, 11:02 AM
).

(3) Lazy data entry is a must. If I as DM say, "Add five Squigglies to the battlefield, in random locations," if Squigglies are a custom monster I should be able to add only the minimum amount of information needed. It shouldn't ask me what a Squigglie's Charisma save is unless and until something happens which requires Charisma. It shouldn't ask me what a Squigglie's climbing speed is unless and until there is something to potentially climb. It should have sensible defaults for visual appearance, and if the players give Squigglies a new name like "Maw Beasts" it should be smart enough to use that name for the creatures when it's talking to the players and my name when it's talking to me.

This is a fantastic idea. I never considered it but you've convinced me that it is essential in a single paragraph. Perhaps have a general object with basic presets which you can quickly subclass into something like "Squigglies" on the fly, then as it becomes refined it is redefined to be more specific, until finally settled down into a class all its own, which you can then add into the database for use again and again.

MaxWilson
2020-06-29, 08:35 PM
I have got to say this is going to be really tough - the amount of data you need to train a model of this type is immense. Looks at something like Alpha Zero - it plays a massive, massisve amount of games against itself to feed into reinforcement learning but even then it still needed monte carlo tree search to focus in on a subset of available moves.

That's why I suggested genetic programming instead of reinforcement learning--you can provide more guidance, and therefore get more feedback quicker. Pieter Spronck did this way back in 2005 with Neverwinter Nights, and his approach stuck in my head: https://link.springer.com/article/10.1007/s10994-006-6205-6

Computers are obviously much faster now and more scalable, so if anything this should be faster than before, but the core idea isn't that complex: you just give a monster a toolbox of options to choose from (like "tank as long as HP are above ___, then kite") and let it work out which tools to use when, and especially let it work out which tools NOT to use yet when the player is already losing because you want to have something in reserve for when they increase the AI's difficulty setting. BTW, I say "you just" in the sense a software developer says it--I'm not suggesting there won't be a lot of work involved, I'm just suggesting that this is a problem which can be reduced to the types of problems we solve all the time, instead of a completely new and unknown problem. This is in fact a problem that's on my TODO list of things to solve for my own 5E CRPG (for which I'm working on the character builder this month, per this thread (https://forums.giantitp.com/showthread.php?612880-Life-pre-adventure/page2)).


In a chess game the board is constant, the pieces all behave in the same way between games, there is a relatively narrow range of legal moves, it is deterministic, there is a simple win/loss/draw condition and the starting configuration is always the same. Non of these are true for a hostile encounter in D&D. All of these will increase the amount of data needed, with the possible expeption of the win/loss/draw point.

Alpha zero is trying to solve chess though, and we have no need to solve D&D. Just to evolve strategies which are both effective and plausible for the monsters involved, given their abilities. You know, the kinds of strategies for which people write blog posts and forum articles. "T-Rexes are surprisingly good at kiting", "Dragons can grab high-AC targets off the ground and drop them for falling damage," etc. Alpha Zero's approach would be more about computing a hypercomplex set of factors to determine what an enemy's counter-counter-counter-counter-countermeasure to your kiting strategy would likely be. Not only would that be really hard to compute, it also wouldn't be any fun for the players! You generally don't WANT to completely outthink the players, because D&D monsters are supposed to lose, hence my interest in adaptive AI to dynamically tone down monster intelligence until the monsters start losing.


A standard adventuring party with a modest set of abilities in a standard room and a quatitative mesure of the degree of winningness for each side in the outcome and you could do this - although much, much easier if you can remove some of the oriented spell effects like cones and lines. For anything close to a reasonable version of 5th edition - I just don't think it is possible, at least not without spendinga small fortune on compute power.

We'll see.

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


@MaxWilson is shooting for the moon. Many of the things you talked about are insanely hard to do. I wish you the best of luck with it friend.

Yes, they are, and not always hard in the ways you'd initially expect. Lazy data entry and the ability to add houserules have to be built in from the very beginning, and that means you need to build your own (aspect-oriented) rule engine before you can even START writing the app/game/tool itself. It adds at least an order of magnitude to the development complexity, even though it also simplifies things for the actual customer (the DM using the tool, and their players).

Thank you and good luck to you too.


Personally, I hate the learning curve of Fantasy Grounds and the structural rigidity of World Anvil. I'd like something that can do what I want it to, without forcing me to do anything I don't want.

What do you think?

I think a natural UX and lazy data entry are crucial for exactly this reason: you want to keep the barriers as low as possible. Ideally there isn't any scenario where users are tempted to just pull out a whiteboard and do an encounter there instead, because your tool doesn't demand anything more complex than a whiteboard does--you don't have to pay for complexity you don't use, but when you decide that you do want a certain complexity ("now all these Xs on the virtual whiteboard have individual names and randomly generated HP") you can smoothly step up to the next level.

Unfortunately this tool itself will inevitably have some learning curve, and I don't know any way to avoid this completely, although a strong community could help.

MrStabby
2020-06-30, 08:54 AM
That's why I suggested genetic programming instead of reinforcement learning--you can provide more guidance, and therefore get more feedback quicker. Pieter Spronck did this way back in 2005 with Neverwinter Nights, and his approach stuck in my head: https://link.springer.com/article/10.1007/s10994-006-6205-6

Computers are obviously much faster now and more scalable, so if anything this should be faster than before, but the core idea isn't that complex: you just give a monster a toolbox of options to choose from (like "tank as long as HP are above ___, then kite") and let it work out which tools to use when, and especially let it work out which tools NOT to use yet when the player is already losing because you want to have something in reserve for when they increase the AI's difficulty setting. BTW, I say "you just" in the sense a software developer says it--I'm not suggesting there won't be a lot of work involved, I'm just suggesting that this is a problem which can be reduced to the types of problems we solve all the time, instead of a completely new and unknown problem. This is in fact a problem that's on my TODO list of things to solve for my own 5E CRPG (for which I'm working on the character builder this month, per this thread (https://forums.giantitp.com/showthread.php?612880-Life-pre-adventure/page2)).



Alpha zero is trying to solve chess though, and we have no need to solve D&D. Just to evolve strategies which are both effective and plausible for the monsters involved, given their abilities. You know, the kinds of strategies for which people write blog posts and forum articles. "T-Rexes are surprisingly good at kiting", "Dragons can grab high-AC targets off the ground and drop them for falling damage," etc. Alpha Zero's approach would be more about computing a hypercomplex set of factors to determine what an enemy's counter-counter-counter-counter-countermeasure to your kiting strategy would likely be. Not only would that be really hard to compute, it also wouldn't be any fun for the players! You generally don't WANT to completely outthink the players, because D&D monsters are supposed to lose, hence my interest in adaptive AI to dynamically tone down monster intelligence until the monsters start losing.



The paper you linked to is cool, but I think you might be underestimating the differences between the challenge addressed there andthe challenge articulated here. In the paper you linked to there is one party facing off against one other party. The party that is being dynamically evolved has one single encounter to defeat. The challenge with AI is to create a sufficiently general set of rules such that it can handle the previously unseen. When facing an encounter of 3, 5, 7 or 23 enemies... what holds. How do you adjust for the difference? What if one of the enemies has an immunity or resitance? And what if your party is different to two wizards and two fighters? There is one party and one enemy party. This is so, so much simpler than multiple different parties vs multiple different parties is highly asymetric conflicts.

Also I wouldnt say that Zero was trying to "solve" chess - just get very good. The game is too computationally complex to solve.

I think that one issue that is more intereting to discuss, is how you would evaluate difficulty? Probability of a hostile win? Quantity of resources used by the party? Feedback learning can work with discrete steps but using continuous metrics tends to be a lot more effective.