Unit Stat Generation

Knowing that my board will need players and I expect players to churn through large amounts of them, I wanted to make a reliable player generator to pull them from.

The Outline

First things first, I need to figure out what I am generating. I want my players stats to fall into 4 major buckets: Body Composition, Athletics, Offense, and Defense. Body composition and athletics will serve as a general barometer of if a unit is good or not, as good athletes will often find themselves succeeding in any sports they play. This is then followed by offense and defense, giving units room to specialize and provide more variety than just having a god tier athlete.

These stats will then all feed into each other, allowing certain stats to influence the generation of others. For example, better size = better strength and lower weight = better speed. Linking traits together like this should give players an easier time telling if a given unit is what they need or not as they pick up on the trends.

The Implementation

With these stats in mind and a plan on how I want them to interlink, I jumped in and started setting up some rolls. The rolling itself isn't too complicated, pull a number 1-100 and run some checks to see how we want to roll them. After getting some up though, I was quickly realizing I was having a hard time figuring out if the changes I was making were doing what I wanted, since all I could do is eye check the 20 or so units I had on the board to see if they lined up with what I wanted. Doing these individual checks weren't helping too much, I needed to see more of a general trend of how the rolls worked out. So I setup a quick script to run 10,000 simulations and dump all of it into a CSV file I can open in Excel. Then using Excel, I can get frequency counts and chart them, giving me a much better idea of what numbers I'm spitting out.

Here is an example of this at work. I was able to use these charts to bell-curve my units size and weight around 5 & 6, the average for this stat. This also still allows for a percentage of high/low stat players to show up, keeping them rare, but possible (~5% chance for 10).

One thing to keep in mind though is both making sure stats work on the curve and on individual units. For example, I don't want a bunch of units rolling high speed and strength, but that wont come up on the chart. My current solution is doing random samples, but this doesn't feel like the best solution. Hoping to work out a plan to counter this soon!

Current State

Right now I am working through my list of stats and figuring out how I want them to look. Toughness, size, weight, and speed are all looking good right now. Currently working on getting strength to a point I'm comfortable with, which I feel I'm close. Then I just need to work down my flowchart until I have fully complete units. Deeper stat breakdowns coming soon, better describing why I roll them the way I do, too as I hammer them out how I like!