← Back to the dev blog

DEV BLOG / 09

Fifty seasons. I may have got carried away.

The first completed 50-season dynasty run, with plenty still left to improve.

Game screenshots
Editorial header with the number 50 and Idleball championship and all-pro trophy artwork.
Artwork from Idleball.

In the last post, getting through one season felt like landing on the moon. Then the engine made it through fifty seasons in the same dynasty.

Fifty.

This was a simulation-engine run outside the game interface, with saves and reloads between years.

I don’t have a particularly restrained explanation for how that felt. A year earlier, I was rusty enough that organising the player data was a major undertaking. Now I had a football world that could keep going for an entire coaching career. I was still the same dad trying to work out his next career move. The project, somehow, had become much bigger.

What changed since the last post

  • One completed season became fifty. The engine reached the end of the long dynasty run I’d been aiming for.
  • Drafting and player careers went through repeated yearly rollovers. I could look beyond the players who were there at the beginning.
  • Saving and reloading were part of the run. Each year went through the normal save and reload process.
  • The growing dynasty gave me much more to inspect. More seasons meant more results, more player data and a larger save to work with.
  • I had a clearer job for the next stage. Getting a long simulation run through was progress; making that career readable and enjoyable in the game still needed work.

The years need somewhere to go

Views from a separate prototype save. The fifty-season engine run is recorded in the checkpoints below.

The franchise record bookEarlier prototype
Franchise record book showing historical and dynasty records with career and season tabs.
The record book is where I want the growing franchise history to be useful, rather than just stored.Open full screenshot
Keeping the draft resultsEarlier prototype
Draft results list showing a recorded pick, portrait, ratings and salary.
Keeping draft results matters more once the first class is years in the past.Open full screenshot

There was no victory lap around the code

The run needed help along the way. I had to stop, deal with problems, and carry on with the same dynasty. Some computer-controlled teams ran into salary-cap problems. The test runner made ordinary roster cuts and found affordable cover so that dynasty could keep going. I’d love to say I pressed a button and spent the rest of the time looking quietly competent. That would be a very generous account of my contribution.

But it got there. I didn’t need to pretend the rough parts hadn’t happened to enjoy that.

The long run also gave me a less exciting souvenir: a much better view of how the stored data and memory grew as the seasons accumulated. Not quite a moon rock. Probably more useful to the game, though.

What the run recorded

I kept checkpoints from a fifty-season engine run. The game count includes the whole league, not just one team.

Completed seasons League games
1 285
10 2,850
25 7,125
50 14,250

Those are numbers from the simulation run, rather than scores lifted out of the screenshots. Fourteen thousand games is an absurd amount of football for a project that started with me arguing with a player profile.

Fifty seasons need to feel like a career

I want the players and decisions from earlier seasons to mean something later. A championship, a draft pick or a player who stayed with the team should have a place in that history. Running the years is part of that job. Giving you a good way to read and use what happened is another part.

I’m proud of this milestone. I’m also very aware that a completed engine run isn’t the same as having every part of the game ready. The longer I work on it, the less inclined I am to declare victory because one thing went well.

More than the final score

Earlier screens from a separate development save. The parts around a long career still need work.

The player listEarlier prototype
Earlier player-statistics view with a searchable player list and contract information.
The player-statistics view gives the career data somewhere to be read.Open full screenshot
The trophy roomEarlier prototype
Trophy room with achievements, annual honours and season trophy tabs.
The trophy room has places for achievements and season honours. This development save is mostly empty; the screenshot isn’t a list of awards from the fifty-season run.Open full screenshot

The next job was working through the roster and game screens, with a lot more reason to care about the information they were showing.

All blog posts