National Teams: All 211, Ranked and Represented
Every national team in football is now in the game. Every one. All 211 of them - each with a quality rating drawn from their real-world ranking and a unique squad generated for every run. Whether you want to extend the winning dynasty of a powerhouse nation or take a tiny island to their first World Cup, Sudden Death Soccer allows you to play your way.
Sudden Death Soccer is a football management roguelite built in Godot 4 using C#. If you missed the previous entry, start here.
What this update covers
This devlog walks through what 211 national teams actually means in practice - how every nation is represented, how each team’s quality is derived from their current world ranking, and how I handled name and face generation so that each and every nation feels realistic and unique.
All 211 national teams in the game
FIFA recognises 211 national associations. Every single one of them is now a playable nation - from the global giants down to the islands you might never have heard of. Pick England and you’re expected to lift the trophy. Pick the Turks and Caicos Islands and… expectations are a little lower.
Each team is a small piece of structured data in code: a name, a quality tier, two kit colour combinations, an ethnicity profile, and the federation they belong to. That’s it. Once a team is in, it works with everything else - fixtures, rankings, match simulation, the lot.
Team quality driven by current world rankings
Squad quality is bucketed into five tiers: Amateur, SemiPro, Professional, International, and WorldClass. The tier sets the baseline for the players generated for that nation - a WorldClass squad rolls higher attributes across the board than a Professional one, and so on down the ladder.
Which tier a nation lands in is driven by their current real-world ranking. England, Brazil, France, Spain, Japan - all WorldClass. The mid-table European and African sides cluster around International and Professional. The smallest associations sit at SemiPro and Amateur.
This is a snapshot, of course - rankings shift in the real world all the time. But the snapshot gives every save a believable starting point, and the in-game rankings then drift from there based on how each nation actually performs in the tournaments you play out. Beat a higher-ranked side in a final and you’ll climb fast. Get beaten by minnows and your ranking will reflect that.
Names that fit the nation (with a 3% twist)
Pick a Japanese squad, you should get Japanese names. Pick a Senegalese squad, you should get Senegalese names. Sounds obvious, but doing it well meant building a per-nation pool of first and last names - sourced manually, then verified - for every one of the 211 teams.
There are various rules to make this work, from ensuring every surname is unique to having a pool of at least 30 unique first and last names per nation. This prevents generated squads from ending up with three Smiths and two Joneses in the same XI.
There’s also a 3% chance, on any given player, that their name is drawn from a different nation’s pool entirely. That’s the migrant variety - the second-generation kid representing the country he grew up in, the naturalised striker, the kid born abroad to expat parents. Football is full of these stories and the rosters would feel sterile without them.
Realistic face generation
Every team also has an ethnicity profile - a weighted distribution across seven skin-tone buckets that the face generator samples when it builds a player. Each bucket ships with its own hair-colour probabilities too.
For example in England, the cultural diversity that enriches the country is represented here so that the game feels reflective of modern England. I remember playing football games in the 90s where every player had the same skin and hair colour and I was determined to avoid that.
None of this is rolled fresh per match - it’s set per nation, in the team’s own data, so it’s stable and considered rather than “whatever the RNG picked for this run”.
How it works under the hood
Each team is a C# record holding all of that data - quality tier, kits, ethnicity profile, federation. When you start a save, the squad generator pulls 23 names from the right pool and feeds them through the player generator, which combines the team’s quality tier with the position’s attribute weighting to produce realistic stat lines. The face generator samples the ethnicity profile and goes from there.
The world rankings system then layers on top. It ranks every team by a points calculation that combines their base quality with their actual match results, weighted by fixture importance and the strength of the opponent. The rankings the game shows you aren’t static - they react to the football you play.
What was hard
First, the data. 211 teams is 211 sets of kit colours, 211 ethnicity profiles, 211 name pools. Most of that is research, not code - and getting it right matters. There’s no satisfying way to automate “is this the correct shade of yellow for the Bolivia away kit”, so validation has been a long-running side process of checking, fixing, and checking again.
Second, the face generation itself. Get faces with random features, hairstyles, skin colours and facial hair to look good was non-trivial. Obviously I’ve used pixel art throughout the project, which simplifies some things but complicates others - trying to create variety with only a few pixels to play with definitely tested my pixel art skills.
What’s coming next
Two threads coming out of this work:
- Manager expectations tied to ranking: with quality now derived from rankings, the obvious next step is having the federation expect results that match where you sit. England losing to Liechtenstein should hurt a lot more than losing narrowly to another world class side.
- Ageing, retirement, and wonderkids: with every nation in, the next layer is making sure the squads evolve over a career - veterans retiring, kids breaking through, the cycle that gives long management runs their texture.
Both lean into the same idea this update was about: making the world feel real before the simulation goes anywhere clever.
I also want to provide an opportunity for players to put themselves in the game by adding their name to the pool of names for their home country. I’ll be adding a tool to this website soon to capture that so watch this space.
Get involved
If you want to be one of the very first people to manage one of the 211 nations yourself, join the Discord. You’ll get the itch.io access code, every new build as features land, and a direct line into what gets prioritised next.
The game is still being shaped by the people playing it. If you spot a flag, a kit, a name pool, or an ethnicity profile that feels off for your nation - tell me. That’s exactly the kind of feedback this update was built on, and the kind that makes the next one better.