test content
What is the Arc Client?
Install Arc

Some theory for designing interesting bonuses, feats, and other effects.

Ok so first off, I'm not a mathematician, nor a professional software engineer, I just know enough to be dangerous, as they say. But, I see some things that I think need to be addressed, and some patterns that I think can be expressed in mathematical terms. This is valuable because it allows us to work within a framework and apply some interesting properties to create new and more interesting things. It's also important because I think when we start to view some of these things more abstractly, one can catch some interesting design "flaws" up front, at design time (for example loops, such as power looping tr's used to have), instead of getting lost in the details. Now, some of these definitions may be inadequate and can possibly be improved, for example a better definition would be something that fits the patterns in the game, and also follows more useful mathematical properties, such being associative and/or commutative.

Specifically I want to address and define "Synergies" and how we can create more interesting networks of them through the use of Feats, Equip Bonuses, Passive Class Features (such as paladin's auras), and other side effects such as buffs and debuffs (e.g. Ray of Enfeeblement and Arcane Empowerment). I also want propose a slight change in the way class design works. I'll start with this next.

I would like to suggest a slightly different way of selecting Feats for all classes, this may require a few feats in some classes to be reworked to be more general for each class, such that each paragon has the same number of feats to choose from. I would suggest splitting the first 8 feats we can choose from into two sets, one set consists of feats specific to that paragon, set A_1, and the other are feats that could be used by either paragon B_1. Do the same for the other paragon in the class for sets A_2, and B_2. Now combine the feats B_1 or B_2, as in take the Union for set C, which is the set of all feats available to the class, which can be used by either paragon. Finally We have 3 sets A_1, A_2, and C. When building a character, allow players to choose any feat from set C OR A_n depending on which paragon they selected until they have selected four feats, then they make a binary choice on the last feat acquired between the two capstones for that paragon. In other words, until the capstone feats, allow players to choose any feat from a pool of feats, instead of making a binary choice each time a new feat is "learned". This will allow for more possible networks of synergies than would be otherwise available with the constraint of the binary choice at each acquisition, that is, a larger number of feat combinations and permutations (permutations being more important for lower levels).

Now lets define a Synergy, which also requires defining a Dimension. We started to do this in another post but lets attempt to do this more concretely and formally here.

Dimension:
A Dimension is like an algebraic variable, it's something that affects some calculation or mechanic. For example, damage is core mechanic everyone is familiar with, Power, Damage Buffs, Damage Resistance, Defense, Crit Chance, etc. are core dimensions of Damage that are available to all classes and paragons in the game. However a Dimension is also a little more abstract in the context of Neverwinter, we also have other mechanics, such as CC and Healing, each class and paragon also have their own mechanics that create new Dimensions which are unique to them, for example Shield bars, Chill, Smolder, Rage, Stealth, etc. This is pretty important because these dimension add identity to each class and paragon path, they can build on lore in the game or from the PnP content, and not only make the game more interesting, but immersive. It's kind of a handwaivy definition but I think we can understand it, especially those have well understood mathematical formulas. While I may talk mostly about the "core dimensions" it's important to emphasize that the most important Synergies will the ones involving Class/Paragon Specific Dimensions, as these will be the ones which add more identity and uniqueness to the builds.

Synergy:
A Synergy is connection between Dimensions, when one Dimension has an effect on another. This idea kind of came about from my current investigation into category theory and functional programming, but I digress. As in Category theory you can view a Synergy as being an arrow from one dimension to another, for example, suppose we have Crit Rate as object a, and Damage Resistance as object b and a Synergy f, which is something like "whenever you critically damage a target, they receive -5% damage resistance" or something. You can draw an arrow from a --> b and that arrow is labeled f. Now lets say we have another Synergy g, lets say that g has an effect on a (your Crit Rate), we can see that the order in which the synergies are applied matters and that if g is applied after f is not the same if f is applied after g, specifically, if you change your crit rate before applying f it is not the same as changing your crit rate after applying f. Therefore we can see that in general, Synergies are not Commutative, the order in which they are evaluated matters. This is pretty intuitive if you think about it, it's often better to use your abilities, after applying buffs and debuffs (to the enemy).

The identity synergy is just one that does nothing. An inverse synergy is one that negates another. Now we have, if f is the inverse of g, g * f = f * g = i where i is the identity synergy. (g * f is read G after F, or g(f(x))).

You can also compose Synergies into a network or graph if they have common dimensions. For example, say we have Dimensions a, b, c, d and Synergies f, g, h. f is the arrow between a and b as in f = a --> b, g = b --> c, h = c --> d. We have a few new Synergies that emerge from this, we have the arrow i = g * f = a --> b --> c = a --> c, as in the arrow that goes from a to b to c. Another j = h * g * f = a -> b -> c -> d = a --> d, and another k = h * g = b -> c -> d = b --> d.

We can have more interesting networks such as trees instead of paths, and we can also have loops (which we probably want to avoid). For example, given dimensions a, b, c, d, e and synergies f, g, h, i, j, such that:

f = a -> b
g = c -> d
h = d -> e
i = b -> e
j = e -> a


We have a tree from a and b with e as the root, and we have a loop from a -> b -> e -> a, which would need to be scrutinized and may or may not equal the identity.

I'm still trying to wrap my head around whether or not Synergies are Associative, but if they are, then Synergies may be monoids over the application operator (as far as I can tell, but like I said at the beginning, I just "know enough to be dangerous"). Either way, Synergies and Dimensions can still make for interesting graphs and networks, and there's plenty of mathematical theory there to keep one busy, especially when you start to add in time and order of evaluation.

Again, to be clear A Synergy is when an effect creates a connection between two dimensions in the game that otherwise would not exist. Feats, Class features, Passives, Equip Bonuses may all create a new Synergy or they can create a new Dimension, or both. For example the Wizard class feature Chill creates a new Dimension, and Chilling Presence creates a new Synergy between Chill and %Dmg Bonus, while the feat Twisting Embers (?) creates a Synergy between Chill, Smolder, and Dmg%, and the upper last feat on Rogue/Whisperknife creates a Synergy between the stealth meter and Dmg%. A lot of existing Synergies are ties to Dmg%, idk why :3 . We should also want to point out that Damage procs are not Dimensions nor Synergies, for example Storm Spell, it's just another source of Damage like using an ability, maybe these can be called "Triggers" and may have their own properties to dissect. Synergies can definitely affect Triggers, especially when the trigger is tied to a dimension, such Crits or CA dmg, again Storm Spell is an example, if a Synergy increases Crit Rate, it increases Proc Rate of Storm Spell.

Well, while this is all fun and good, I'd like to move on to another subject that I think is important. We have a few different sources of Synergies in the game, but most of them are shadowed by available +Power/+Dmg% options. Aside from feats and class features, we also have mounts, insignia bonuses, companion bonuses, companion abilities, and equip bonuses from gear, and weapon and armor enchantments. I think all of these need to be worked on, and I think we need to not be afraid of creating interesting and powerful synergies. If something is found to be "overpowered" it can always be changed, but the landscape we have now is fairly uninteresting, that is, one dimensional (+power).

To touch on equip bonuses I think there's an opportunity being missed here. We could have gear with Class/Paragon Specific Synergies as Equip Bonuses. These bonuses can be seen to supplement the lack of available feat options we have currently. Moreover we could have the acquisition of such gear be tied/gated behind class specific quests. These quests could be handed out in class specific Mini Campaigns which build on the class related quests we get in the leveling campaign. For example, we could have a Thieves Guild for Rogues, a Wizards Enclave for Wizards and Warlocks, Temples for Clerics and Paladins, A Mercenary Alliance for Fighter types, and a Bounty Hunter guild for Rangers. Certain quests and gear can further be gated behind some interesting choices, like which location we chose to originate from at character creation, or the Deity that we worship, these choices then become important for character building.

Well, thanks for reading, I hope you enjoyed yourself, but the aliens in my head must of stopped broadcasting because I dunno what to say from here. Maybe I'll come back and edit this further if they decide to speak to me some more on this matter, this was super handwavy kinda brainstorming. I don't expect looking at Synergies this way to be of much practical use except for at design time, i dunno, at the very least it was an interesting exercise for myself.

Comments

  • quickfoot#7851 quickfoot Member Posts: 488 Arc User
    I've been doing some more thinking on the subject and I want to take this a little further, we can clarify some things and make some ideas more concrete.

    First we can define a valid composition of synergies, g o f, such that the co-domain of f is the same as the domain of g. We can define a Buff as a special case of synergy, f, in which the domain and co-domains of f are the same (i.e. f(defense) = defense + defense(10,000). It takes in a value of defense and returns a value of defense, the domain and co-domain are the same). A Debuff is the inverse of a Buff.

    Let S be the set of all synergies in the game, let an arrow from S --> S be a valid composition of synergies in S. Hom(S) is the set of all valid compositions of synergies. S is closed under composition, which means that f : S --> S is an element of S. We also have that composition of synergies is associative.

    Practically this means that a sequence of valid synergies can be composed in parallel as long as the sequence is unchanged, this can be realized for example, in a divide and conquer style algorithm.

    The composition of a subset of S is a graph G(V, E) where V is a set of dimensions and E is a set of synergies. Disconnected subgraphs in G can be evaluated independently (in parallel) since they do not share dependencies (dimensions). Practically, buffs can be applied to different entities in the game independent of each other, in parallel. Further, disconnected graphs of buffs can be applied to the same entity in parallel since they do not mutate any shared dimensions (variables), this is evident as the subgraphs are disconnected.

    Triggers are actions taken when an Event occurs, we can define three types of triggers.
    1) One that triggers composition of synergies. In other words, a trigger that applies a buff. For example, "When E happens, gain +X% of M".
    2) One that triggers damage or healing. It triggers evaluation of the damage formulas with relevant graphs of synergies applied to the involved entities. For example, "When E happens, deal X magnitude damage to T target".
    3) One that has some other effect. It can be expressed as "f(x) -> Void", i.e. the domain is X and the co-domain is nothing. It has some "side effect" in functional programming terms. An example would be something like "When E happens, teleport to some location".

    Powers (At-Wills, Encounter powers, Dailies) are Triggers. Features can create new triggers that happen as a result of some event E.

    The set of all Triggers, Synergies, and Dimensions a Character has when Idle and not affect by exogenous sources, can be called a "Build".

    Since we've managed to abstract away much of the details of synergies and boiled them down to graphs, we could design "services" which compose and apply synergies in such a way that it doesn't care which instance or dungeon an entity is located, the composition and application services could handle an entire server or group of servers depending on overhead and time constraints. In my opinion, I think this is a profound consequence for designing a backend. Even if the overheads were too high, or redesigning the backend not realistic, the effect of viewing the game in this way is that it clarifies much of the design.


    As this relates to design I hope that it will clarify what I am about to say next.

    If we are to ever have a Bard in the game that is true to the class in D&D, we have to have the concept of a "Support Role" return. A Support Role I think is easily well defined in the simple, yet powerful framework we've laid down so far.

    The subject of Wizards is near and dear to my heart, both in the context of NW (I main a Wizard, less so lately), and in D&D and fantasy games in general, spell slingers are my first choice in characters. Much of what gives magic identity in D&D is the type of magic a spell falls under. Right now, all Wizards in NW are "Evokers", as in, Wizards that just blow stuff up. I think, just like with Bards, we now have a framework in which we can create spells for Wizards that more closely resemble the concept of a School of Magic. Also, in D&D Wizards are supposed to be versatile, being able to be both strikers and supporters, we had this pre-m16 with the renegade path.

    The various Schools of Magic can be read about in this blog, so I'll refrain from repeating that information here.

    Abjuration: Buffs and Synergies related to defensive stats and dimensions.
    Conjuration: Triggers that have side effects related to creation, summoning, persistence AoE effects, etc.
    Divination: Side Effects Buffs and Synergies with the idea of revealing the hidden. Soul Sight Crystal has this flavor. Could also reveal invisible targets (useful in PvP).
    Enchantment: Side effects such as sleep, imprisonment, charms (make mobs allies!).
    Evocation: We have plenty.
    Illusion: Side effects such as invisibility, mirror image, etc. Maybe have some synergies.
    Necromancy: Debuffs (ray of enfeeblement), Triggers doing damage and healing (life stealing), any thing that interacts with Healing related dimensions.
    Transmutation: Buffs and Triggers, like polymorph, turn mobs into Goblins/Beasts (slayer rings!).


    I hope it's clear how we could design spells which are true to D&D flavors of Schools of Magic while also working well within the framework of Synergies. I would also like to see more magic available to Wizards, whether that's realized by having more powers/feats to choose from, or more paragon paths or "kits".

    My last point is that the idea of support roles being bad is wrong. Support Roles bring more synergies, and synergies make the game interesting. M16 worked hard to reduce the amount of synergies in the game, in the name of reducing "power creep", however, in my opinion, I think this was the result of a fundamental lack of understanding of the game we have here and the end result was that M16 worked really hard to make the game uninteresting and lame.

    I hope this makes sense, and that it can be used to make the game's design better, and result in something with more complexity in a sane way.

    Thank you for reading.

Sign In or Register to comment.