I simulated the RNG of 4,294,967,295 1v1 random nation matchups so that you don’t have to

A few months ago I published the results of 165 recorded 1v1 nation matchups where both players had random nation selected. After several years of on-and-off effort, yesterday I stayed up til past noon cracking the RNG RoN uses to decide random nations, allowing me to pull a Vugi and know the actual nation picked based just on a replay without needing to open the game and check. Like any normal person would, I then ran through what I believe to be every possible seed value that RoN’s RNG engine can use (except for 4,294,967,295 itself, which my compiler complained about) and recorded the results of the nation picks in a 1v1 into an 80GB file.

If we take the non-trivial leap of faith that:

  • My simulation is accurate across the entire range (exceptionally difficult to validate)
  • My data processing is error-free (plausible, but still not a given)

Then what I now have is an exhaustive list of every possible 1v1 matchup when both players select random nation. Sanity-checking this against the original list from 165 real-game data points this list appears to be almost identical, so it seems pretty plausible that it’s at least mostly accurate.

It does seem to be the case that all nations have only 6 possible 1v1 matchups — excluding the two weird exceptions. You might also like to know that in my simulation, the distribution of each nation (across the entire range of possible seed values) is comparable. I’m not sure there are many other insights that can be gained, though it might be interesting to see how some nations might have primarily easy or hard matchups, directly affecting their viability in these 1v1 games.

There are two quirks in this new list. One is that there’s a conflicting matchup with the old list (French vs Russians instead of French vs Persians) — which probably implies that the old list had a data entry or data processing error to be honest. The other thing is that my simulated results say that there are two very rare Aztecs matchups that happen 100x less often than normal matchups. I don’t know if this is true or some quirk of the simulation which isn’t reflected in real games — if you have a relevant replay please let me know about it! You may notice that several nations seem to share the same list (or a very similar list) of matchups — that’s probably not a typo as several nations actually do, but let me know if you see anything else that looks like an error.

Americans

  • Egyptians
  • Greeks
  • Indians
  • Japanese
  • Persians
  • Russians

Aztecs

  • Bantu
  • British
  • Dutch (exceedingly rare – likely simulation error)
  • Germans (exceedingly rare – likely simulation error)
  • Lakota
  • Maya
  • Mongols
  • Spanish

Bantu

  • Aztecs
  • French
  • Inca
  • Iroquois
  • Koreans
  • Turks

British

  • Aztecs
  • French
  • Inca
  • Iroquois
  • Koreans
  • Turks

Chinese

  • Egyptians
  • Japanese
  • Maya
  • Mongols
  • Persians
  • Spanish

Dutch

  • Aztecs (exceedingly rare – likely simulation error)
  • Egyptians
  • Japanese
  • Maya
  • Mongols
  • Persians
  • Spanish

Egyptians

  • Americans
  • Chinese
  • Dutch
  • Germans
  • Nubians
  • Romans

French

  • Bantu
  • British
  • Greeks
  • Indians
  • Lakota
  • Russians

Germans

  • Aztecs (exceedingly rare – likely simulation error)
  • Egyptians
  • Greeks
  • Indians
  • Japanese
  • Persians
  • Russians

Greeks

  • Americans
  • French
  • Germans
  • Inca
  • Iroquois
  • Nubians

Inca

  • Bantu
  • British
  • Greeks
  • Indians
  • Lakota
  • Russians

Indians

  • Americans
  • French
  • Germans
  • Inca
  • Iroquois
  • Nubians

Iroquois

  • Bantu
  • British
  • Greeks
  • Indians
  • Lakota
  • Russians

Japanese

  • Americans
  • Chinese
  • Dutch
  • Germans
  • Nubians
  • Romans

Koreans

  • Bantu
  • British
  • Lakota
  • Maya
  • Mongols
  • Spanish

Lakota

  • Aztecs
  • French
  • Inca
  • Iroquois
  • Koreans
  • Turks

Maya

  • Aztecs
  • Chinese
  • Dutch
  • Koreans
  • Romans
  • Turks

Mongols

  • Aztecs
  • Chinese
  • Dutch
  • Koreans
  • Romans
  • Turks

Nubians

  • Egyptians
  • Greeks
  • Indians
  • Japanese
  • Persians
  • Russians

Persians

  • Americans
  • Germans
  • Chinese
  • Dutch
  • Nubians
  • Romans

Romans

  • Egyptians
  • Japanese
  • Maya
  • Mongols
  • Persians
  • Spanish

Russians

  • Americans
  • French
  • Germans
  • Inca
  • Iroquois
  • Nubians

Spanish

  • Aztecs
  • Chinese
  • Dutch
  • Koreans
  • Romans
  • Turks

Turks

  • Bantu
  • British
  • Lakota
  • Maya
  • Mongols
  • Spanish
Has science gone TOO FAR?1


  1. I thought the bottleneck would be CPU, but it turned out to be memory by a landslide. After seeing this I did switch up the code to be more sane.

Leave a Reply

Your email address will not be published. Required fields are marked *

I accept the Privacy Policy

This site uses Akismet to reduce spam. Learn how your comment data is processed.