Thursday, October 17, 2019

Game 101: Football Manager

This kind of game is way out of my comfort zone. I personally couldn’t care less about baseball, hockey, or football (the American kind), and those are just the sports that as a coastal Massachusetts resident I’m supposed to like. I played some soccer in college, but I know absolutely nothing about how it’s played on a professional level, couldn’t name a single team, and I haven’t got a clue what a football manager actually does.

But this game, released exclusively in the United Kingdom c1981, attains whale status, kicked off a million-selling series and launched a genre, and so I feel obligated to at least try it.

Football Manager was originally written by Kevin Toms entirely in BASIC for a TRS-80 clone. This original version is presumed lost, but the earliest descendants were ports to the ZX80 and ZX81 computers, and I had no trouble finding such a version distributed as a ‘p’ file. The emulator “ZEsarUX” seemed to provide good results and was straightforward to use; you just smart-load the ‘p’ file and type “RUN” once it’s loaded. This is the first ZX81 game that I’ve ever played, and possibly the only one I ever will.

Starting off, I had to pick a team.

They’re all the same to me, so I went with Ipswitch. Next I had to pick a difficulty level from 1-7, and chose “1” for an easier game.

Then there was the first real choice screen of the game.

Listing players seemed like a good idea.

D/M/A mean Defense/Midfield/Attack. No goalies. A. Evans is warming a bench, giving me only one attack position. I tried selling him, and was offered £6358 by Wigan, which I took.

I didn’t see any option to buy a new player, so I continued on, and the first match began.

Can’t really change the team, I’ve got 11 for 11 already.

When you type “99,” the match will play out in accelerated time, printing out any goals as they are scored.


I’m not sure what’s going on here, but we’re second-to-last in the league.

After paying bills, I was offered a new player, "G. Shaw" for purchase.

Maybe I needed another attack position, but G. Shaw’s skill was weak. So I decided to see how another match with my 4-5-1 formation would do.

It was Wigan vs. Ipswitch again. I checked my team.

Uh-oh. One of my defense positions suffered an injury, and I was down a player. Too late to do anything about it now.

I won anyway, 1-0.

Still not sure what’s going on, but we’re ranked 2 in the league now.

Once again I was offered a low skill player after the match, but bought him this time. I don’t completely understand how the bidding system works, but I offered his listed value of £5000, and was refused, and then his price went up to £6000. I offered that, was refused, and it went up to £7200. This continued until I got him for a little over £10000. I did notice that each time my offer was refused, the asking price went up 20%, but couldn’t figure out what determines whether an offer is accepted or not.

The next game was an F.A. Cup match, Ipswitch vs. Wigan. We lost 3-1.

On the bright side, I was offered a medium-skill defense player, who I took. Again, the bidding system baffled me. I offered £20000 for a player of £15000 value, was refused, and his value went up to £18000.

I kept losing matches, saw my rank fall, my team’s morale and energy plummet, and I couldn’t seem to get offered enough decent players to replace my tired or injured ones.

So I decided to take a look at the source code to see if I could figure out how games are actually won.
It turns out it’s pretty simple. There are five relevant team stats, Energy, Morale, Defense, Midfield, and Attack. For the purpose of scoring goals, there’s no real difference between them. Energy is the mean value of all active players' energy, Defense/Midfield/Attack is the sum of all active players' skill in those positions, and Morale is independent of any individual player, and goes up or down as you win or lose matches.

There are five rounds, and each round compares one of the five stats between teams. First, it calculates:
RND(100) + 1 + 5*(Yours – Theirs)

If the result is at least 75, you score a goal. Then it calculates:
RND(100) + 1 + 5*(Theirs – Yours)

If the result is at least 75, they score a goal.

In other terms, for each stat, your chances of scoring are:
26% + (Yours – Theirs) * 5%

And their chances of scoring are:
26% + (Theirs – Yours) * 5%

It’s possible for both teams to score on the same round, just not very likely. The best odds are if your stats are tied; there’s a roughly 7% chance of both teams scoring then.

I demystified the bidding system too. When you place a bid, this is calculated:
(RND(10) + 1) * Bid/Value

If the result is 5 or greater, then your bid is accepted. If not, the player’s value increases 20%.

So with this knowledge, I restarted. My goal for each match would be to beat the opponent’s team in as many stats as possible, and when it wasn’t possible, reduce my worst trailing stat by as much as possible (even if it came at the expense of a big lead in another).

Worked pretty well here.

Top of the league!

Worked again here.

Players’ energy does diminish with each game they play, and recharges when they sit out on a game, but since one of my goals was to out-energy the other team whenever possible, this meant periodically switching out tired players, which had both the immediate purpose of raising my team’s overall energy stat, and the long-term purpose of keeping my best players from getting too tired.

When it came to bidding time, I stuck with my strategy of offering the listed value, for a slightly better than 50% chance of success. If it failed, then I’d just offer the next listed value. But after five games or so, I was only offered garbage tier players, which if I’m not mistaken were ones I had sold to make room for better ones, so for the rest of the season I just skipped bidding.

My team had been winning match after match, but eventually played an F.A. Cup match against a team with absurdly high stats. We tied and had to replay, and my fatigued, partly injured team got creamed and dropped from the cup, and suffered a huge morale hit. But I kept winning league matches after that.

Eventually, the season ended, and I was promoted to Division 3.

And with this promotion, my team stats got all screwed up, with skills and fatigue levels all over the place. I’m not even sure if my members’ names were the same or not; all I really paid attention to was their stats.

My second season in division 3 played much like the first, with many won games, a gradually improving roster for the first few matches, and pitiful trade offers for the rest of the season. By the end of the season, I hadn’t won the F.A. Cup, but had made a division promotion.

The third season was the one where we finally won the cup. We tied twice in the semi-final, and had to keep replaying until one of us won.

A tense semi-final

A less tense final

At this point I could keep playing seasons, but this had long gotten repetitive, and I think I already achieved the ultimate goal, so instead I just restarted to see what the hardest mode is like.

Well, the only real difference is that the opponent teams get better stats, but that’s a pretty big difference. Stat superiority is everything, and there’s only so much you can do to improve yours. Opponents in the F.A. Cup get ridiculously high stats.

Repeated losses hurt morale, I quickly got dropped from the cup, and finished the season dead last in the division.

Evaluating this game is a tricky task. I’m clearly not the intended audience for this game. These days, I’m not sure who is. It’s expected that sports games will improve on the previous title while covering the same ground, and I’m sure that holds true for football management sims. Sports fandom rarely looks back the way RPG and adventure players do – some may have a favorite old title that they keep going back to, but it’s probably not the first in its series, and apart from that, each title gets replaced by whatever the newest is.

From the perspective of someone who has never played a football management sim before, has barely played any sports video games at all, and isn’t interested in professional sports at all, Football Manager did appeal to the spreadsheet nut in me, at least for a little while. It’s well programmed, the interface is clean and intuitive (typing ‘99’ to back out of menus is a bit odd, but it’s easy to code that in BASIC), and I didn’t need a manual to understand how to play it. Figuring out how to get an edge over the opposing teams by manipulating stats was a fun little challenge, and buying better players to replace bad ones was entertaining in an RPG-like way, but it all got old pretty fast. There’s not much to do aside from decide who plays and who doesn’t, and whenever players suffer injuries, which is frequent, part of that is already decided for you.


  1. Nice analysis, especially diving into the code. Football Manager seems to be more directly descended from business sims like Lemonade Stand or resource management sims like Hamurabi than from sports sims. It also has a lot in common with modern fantasy sports.

    It’s interesting how so many sports fans are more attracted to the franchise management aspects of the sports they watch than the games themselves. I guess there are far fewer degrees of freedom in fantasy sports than there are in orchestrating and executing a successful football game plan, but to me the biggest attraction of sports is how emergent the games are. Oh well.

    1. One of the things that surprised me about Football Manager is just how clean the BASIC code is. It's generally clear where loops begin and end, the network of GOTOs and GOSUBs is straightforward, and IIRC, it completely avoids smooshing multiple commands into a single line. One line does one thing, which is how I like it. Granted, it's still got those inscrutable two-character variable names and no comments, but that's 16KB BASIC for you.


Most popular posts