Since several folks asked for this a while ago, and I keep getting periodic prods on this, here's the very beginnings of codifying DICE 2.0 in a simplified system. I thought I'd share a little of it for feedback. (Mostly, so far, 2.0 is functionally identical to 1.0 save with me slowly building it for Evennia in Python as part of a toolset, rather than PennMUSH in MUSHcode.)
DICE 2.0
Dynamic Interactive Character Events
Overview
DICE is a framework on which other systems can be built. At heart, it is simply a glorified flowchart made up of blocks; each block has inputs (time, money, and/or resources), a formula, and outputs (money, resources, or progression that fills a 'meter' towards a trigger).
Players can thus assemble 'blocks' to be executed on a weekly basis, and things will flow through the system.
Goals
The basic purpose of the original DICE system was to allow some balance in an online gaming environment. It was meant to solve three specific problems:
- The players who can be around constantly (work from home, between jobs, etc.) should not have a material advantage—either in economic resources or skills—over those who have other obligations that keep them on the game more rarely.
- A player should not be able to do all the things at once. They should not be able to be the best gunfighter and the richest merchant and the person who is doing all the off-screen research into xenolinguistics and everything else. They need to pick a focus, and they cannot control all the plotlines.
- For the sake of staff's sanity, there needs to be a sort of tunable bottleneck on how quickly a plot can be advanced by the players.
On Lost Stars, the game DICE was originally designed for, there were only two staffers; on a game with a rather larger staff, point 3 may be slightly less important. Still, having the option would be nice. (Examples in this document are still taken from Lost Stars, however, rather than made more general. In case you wonder why things list Xenolinguistics as a sample skill.)
DICE 2.0 is meant to be an extension of the DICE ideals to a more generic system, while also doing away with the 'employment' mechanic which ended up unbalancing DICE 1.0 in various ways.
Basic Components
Time
At the heart of DICE is the concept of Time. Every player has an allocation of 100 units of time, representing 100% of their available time for that week. Time is the currency you spend in DICE in order to do things.
Resources
The next major portion of DICE is the concept of 'resources', which can be generated by various methods, and spent for others. A player can have a given quantity of a resource; by default, there's always at least 'money', but there could be other types of resource as the game requires. Influence, for instance, might represent favors owed to a player.
Blocks
The central concept of DICE is 'blocks'. Players will have a 'library' of blocks available to them. Some are standardized ('practice a skill'), some are specific to their skills ('work as a technician'), some will be ones custom to them added by staff ('work on translating that alien tablet').
A given block has three components.
Inputs
A block has one or more inputs; a handful of system blocks will have zero inputs (potentially such as income generation). Each Input has a defined type, and players can define how much of that type they will put in per action round. Almost all blocks take Time as an input, but some may also take Resources (Money, Influence, etc.). When DICE executes an action round, the quantities a player has put in will be taken from the player and passed into the formula.
Outputs
A block generally has one or more outputs; a handful of system blocks will have zero outputs (potentially such as resource drains). An output can be a resource such as money or influence, or it can fill a 'progress bar' which leads towards some other coded effect. Examples of progress bars might be the amount of work needed to complete a research project, or the amount of time/effort put towards learning a new skill.
The progress bar output is a special case, given how it is potentially backed by things other than a player. For instance, it would be possible to create a 'plot' system, and have several progressions on a given plot; how far have you gotten in translating this tablet (Xenolinguistics), and meanwhile how far have you gotten in negotiating right of travel through alien territory (Diplomacy) to get to the place you need to take the ancient alien tablet? Every player on the plot could use a block to progress one or the other of those metrics, but the resulting progress bar would be shared by all.
Formula
A block has a single 'formula': something which, given the input values and a player, will generate the actual output values.
A formula might be as straightforward as "given an input of X time, output X towards the progress bar" to practice a skill, where the amount needed to fill the bar is determined by the targeted level of the skill. (A progress bar value of 150 for level 1 of a skill, 300 for level 2, and so on.)
A formula could be more complicated and draw on player stats, such as "given an input of X time, output an amount of money equal to X * the player's career skill" in order to have a 'do your job' block which generates baseline income.
A formula could involve dice rolls, such as "given an input of X time, output an amount towards the progress bar equal to the result of a Mental + Xenolinguistics roll, multiplied by (X / 2)", in order to slowly progress towards completion of translating an alien language.
Blocks for Plots
Sharing Blocks
Instances of some blocks can be shared between players. This allows for a plot to involve multiple people; if Bruce asks to translate some ancient alien writings, the staff can quickly create a block which tracks how close he is to completing it, with a formula that rolls his xenolinguistics each time.
As Bruce puts time into the block, of course, the progress bar slowly fills. But maybe it's going too slow, or Bruce needs to do other things; he can run a command to share the block with other players, allowing them to join in as well. If they don't have xenolinguistics, that might be a problem, but those who do can put their time and dice towards filling the progress bar as well.
Involving others in your plot is good!
Linked Blocks
Another useful concept is linked blocks, which share an output. For instance, for a larger plot, one might have a progress bar of "how prepared are we for this planetary siege?" You could define a couple buckets (progress bars) which represent defensive measures, offensive measures, and so on. You could then define multiple different blocks that pointed to these same buckets; one block might be rolling command+leadership to add to the buckets, and represent people trying to leadership things, while another might be intellect+war to add to the offensive bucket, and so on. These buckets would all add to the same shared buckets for a given plot, allowing you to share a single metric across many buckets.
Similarly, if you had an opposed action, you could have a bucket with one block that added to the value and another subtracted from it, and in the end you could see who ends up with more influence over the result.