NokiMo
ster
ster

patreon


Gamedev: Item Generation Evolution

A lot has changed in the Myriad system. So, for a long time I've known that I do not trust the item generation system to make something sensible. On the spot, if I had to make a random equipment for players to find, there was a sizeable chance it would be outdated or completely broken. I finally dug in for 2-3 days and did all the boring tweaking required to start a bit more fresh with some new philosophies I've learned along the way. Its not a good feeling to know your primary way of rewarding players is barely functional. So, here's some game dev writeup.


Old Philosophies

Originally, I looked at item generation like a Diablo ARPG style system. The big problem with this is that in an ARPG you drop a LOT of trash that you will never pickup -- that is where Myriad was. I had a rarity tier system for items so that players could feel a progression of power as they got new equipment throughout a campaign. However, the reality in tabletop is that progression takes a long time and bad items aren't exciting, even if they are better than your previous bad item. Once players have acquired the second tier of weapon, the first tier of weapon is totally useless in most cases and I shouldn't even bother rolling them. I have always sought out interesting trade-offs between equipment instead of direct power scaling, but a system that relies on increasing rarity of stronger weapons disregards interesting choices. Items being new and interesting is always better than them being the same but stronger (looking at you Diablo 4)

Above all, it was very tedious and difficult to deal with. For every stat that a weapon could have, it also scaled based on the number of other modifiers and the rolled rarity leading to some math that looks like:  

round(iTier+My_RNG(3,"d2")*ModMult)

For most stats I honestly could not tell you the value range you could expect between a low and high tier item with 0-4 modifiers. That makes things impossible to balance. Balance isn't hard when you look at a game and see the raw numbers, but balancing is very hard when you do not understand what the code for those raw numbers is actually creating without very clear documentation.

New Systems

I intended to rework everything so that rarity and number of modifiers were no longer a factor. In creating a set of starting weapons for the next group I saw that it was better, as it often is, to hand craft a set of interesting choices which are all balanced within their set. The inspiration was to just have the item generator replicate this set of starter items with minor variations without the expectation of ridiculous scaling. While doing the easy tedious work of this, I randomly had a good idea and I'm glad I did. What if I assigned every modifier on equipment a weight value and just used a loop to roll them until the weight of the item was 'full'. This works extremely well for wearing chest piece armors as the major balancing factor for how strong they can be is how much weight they use to wear.

In this example, it generates trade-offs by itself because reducing evasion also reduces the current weight of the item. The code will try and fill all remaining weight, so it will simply loop to add more positive benefits to make up for this loss of power. With significantly fewer mods in the pool than before these items are already feeling drastically more interesting -- and balanced because the power of 1 weight remains consistent across all mods. It will still roll variations (Ex; +10-35 Evasion), but the result of that roll justifies how much weight it occupies by dividing the roll in a consistent way. I've been leaning more on Weight as a determining factor of balance, especially for melee characters who have access to more of it and can wear the heavier stuff and still have room to hold a weapon.

While working on it a couple other small things just got me excited for how well it is working. Typically a caster will seek "Occult: +1" as a premium stat they want on equipment -- so if the generator rolls this it will fill all remaining weight with the stat to ensure it is primarily a 'caster' equipment rather than completely varied. It will remove movement speed from heavy equipment and each modifier has a list of prefixes and suffixes to choose from to help give items unique names.

This one rolls Mod ID 17 a few times. Within a single modifier there is still a lot of variation. One ModID will also encourage the next loop to pick a previously rolled Mod to create some consistency and power through specialization.


 Going back and seeing old code is always an eye opener of how much better I've gotten at all this as well. I've never optimized anything to the degree equipment is at now. If it was a 2/10 in difficulty to mess with this system before it is a 9/10 now. I think the next group will be starting the game without selecting starting armor and allowing them to find a set of generated gear instead -- I'm curious what they get! This helps simplify the amount of choices in character creation and introduce it later -- something I'm trying out this campaign in hopefully more places.

So far this is not implemented for weapons due to various complications in the multitude of ways weapons target and attack. It likely will not be, but I'm looking for further options to optimize customization of gear with the 'Tailoring' system, which can be thought of like socketing gems into gear. (Or putting clams all over your armor) I just need to find a consistent and most convenient way to communicate this to players while having the modifications not take me much time. (Editing an already generated weapon with code seems to be a massive waste of time for the complexity and variables)

It still has plenty of potential to roll some really stupid stuff, though it is much less common. Those pesky paralegals.

Also as a note: the last post talked a lot about the Evershore. The next campaign will take place on Highsword, not the Evershore. They will be escaping the effects of the first deathball meteor from the previous campaign. The more I started creating the Evershore maps and setting, I realized how much there actually was to do. The purpose of this short upcoming campaign is to run something easy for me and ideally build some confidence in doing so. The goal is for the Evershore to then be in future campaigns when it is ready. This campaign will serve as a link between people evacuating Highsword and the choice of Evershore for some known characters, like Harper, who doesn't have a place on Highsword anymore.

Comments

Really cool writeup of your system! I'm curious about one line though: "The code will try and fill all remaining weight, so it will simply loop to add more positive benefits to make up for this loss of power." Is the loop ordered or random? For example will it loop through the stats in the same order each time or does it pick one at random to add to before looping to another random choice?

Fucking paralegals…


Related Creators