Hi, do you believe the earth is flat?
Looks like the code says "yes"...
Just completed an analysis of OpenFrontIO's map system and found some issues with the cartographic representation. The game treats Earth as a flat 2D grid without accounting for planetary curvature, creating some exploitable gameplay imbalances:
- No spherical map projection
The game uses a simple flat grid without any Earth curvature consideration:
euclideanDist(c1: TileRef, c2: TileRef): number {
return Math.sqrt(
Math.pow(this.x(c1) - this.x(c2), 2) +
Math.pow(this.y(c1) - this.y(c2), 2)
);
}```
Exploit: Players controlling "polar" regions (map edges) get disproportionate territory size advantage
2. Territory cluster detection issues
```// PlayerExecution.ts
private isSurrounded(cluster: Set<TileRef>): boolean {
// ...
const enemyBox = calculateBoundingBox(this.mg, enemyTiles);
const clusterBox = calculateBoundingBox(this.mg, cluster);
return inscribed(enemyBox, clusterBox);
}
Exploit: "C-shaped" territory arrangements can avoid being detected as surrounded
- Non-uniform territorial resources
(The flat representation makes no adjustment for territory real-world size:)
// DefaultConfig.ts
goldAdditionRate(player: Player): number {
return Math.sqrt(player.workers() * player.numTilesOwned()) / 200;
}
Exploit: Players controlling "Greenland" get same resources as equal pixel-size territories despite huge real-world size differences
Of course, it's obvious for "advanced" players, but it least to serious imbalance for most novice players, as they'll pick countries they know etc.
Now, I can understand it might be a tactic to get people frustrated, losing, and searching for ways to improve, eventually getting more invovled in the game, yt content etc. but still creates some churn and loose players...