DEV BLOG / 02
Too many players who looked alike
Making the player generator useful before feeding its output into a game.
Game screenshots
In the first post, I had started the Player Creation Engine and immediately found out that names and numbers were the easy part. Before I could put two teams through a game, I needed players worth putting on those teams.
I was still looking at output in VS Code. No stadium, no polished cards. Just me asking why I would draft one guy over another, and occasionally discovering that I didn’t have a particularly good answer.
Calling that variety would have been like pouring the same bourbon into four glasses and congratulating myself on the tasting flight.
What changed since the last post
- Positions got more attention. I started judging a quarterback as a quarterback, rather than treating every player as a collection of the same numbers.
- I worked on different player profiles. Strengths and weaknesses needed to give players different uses, including within the same position.
- I started looking at the whole generated group. An interesting running back wasn’t much of a win if the rest of the pool looked like copies of him.
- The generator got a clearer job. Its output had to give me a reason to make a draft choice, and eventually give the simulation something meaningful to work with.
Something to compare
These prototype views put player differences in front of me.


Better questions, still plenty of guesses
I wanted a receiving back to be useful for different reasons from a power back. That sounds like a small distinction when you’re watching football. When you’re the person deciding which values produce those differences, you discover how many things you’ve left vague.
I couldn’t just make every rating random and hope a believable player came out. I had to look at the combinations. Did a weakness fit the rest of the profile? Was the same type of player appearing over and over? Was I calling something “variety” because two numbers were slightly different?
I didn’t solve player creation in this stretch. I got better at spotting the parts that weren’t doing what I wanted. My coding was coming back, slowly, and that helped me make smaller changes instead of taking the whole thing apart every time I found a problem.
There was still a fairly large unanswered question: would any of these differences matter once the game started? Getting two teams through a game was next.
