DEV BLOG / 03
Finishing the simulation engine
The player data finally has somewhere to go: one play, one result and one season at a time.

Having a player engine meant I could produce a league’s worth of athletes. It didn’t mean they were playing football yet. A collection of ratings can sit there indefinitely looking organised. I needed the game to use them.
The initial Simulation Engine now has the draft-to-season loop around it. That’s a big piece of the foundation, though I’m learning to be careful with the word “finished.” It usually means I’ve reached the next set of questions.
What changed since the player-engine update
- Games advance play by play. Possession, downs, field position, the clock, scoring and overtime belong to the same simulation.
- Different positions contribute differently. Passing, rushing, receiving, kicking and defensive production are recorded in their proper places.
- Kickoff inputs are fixed for the match. The game works from the prepared teams rather than letting a later menu change rewrite a game already underway.
- Football and fantasy points have different jobs. The football score decides the winner. Contribution points help describe what a player did.
- The draft records its decisions. The snake order, reversing rounds, queue, computer picks and passes leave a trail I can inspect.
- The season has an ending. Standings lead to the postseason, a championship and the next season’s preparation.
- Careers can continue beyond one year. Development respects potential; retirement preserves statistics; family successors start from inherited original talent rather than a parent’s trained peak.
I’ve put the separate cup route aside so I can concentrate on getting the normal season right. One competition that works would be a perfectly respectable start.
Numbers that mean something
Power, Finesse and Read contests sit inside the play simulation, alongside Heart and the position-specific abilities. They’re different from the manager’s broader pregame plan, which I’ll get into later.
I’m trying to keep that distinction clear because I’m building a management game. You prepare the team and watch the consequences. You aren’t being asked to press a button for every individual tackle.
The same care applies to records. A completed game needs a score, participants and production that agree with one another. An attractive results screen can’t rescue a box score that has lost track of who played.
A foundation, with plenty left to tune
This gets the first engine loop into place. It doesn’t prove every season is balanced or every long career holds together. I still need to run a complete season and see whether the results hold together, then try keeping the same league going for longer.
At least the players now have a job beyond occupying a spreadsheet. Next I’m going to see whether I can give them faces without hand-drawing an entire football civilisation.
