Distances in Freeciv

In Freeciv, many game rules are based upon the distances between two entities. Players may wish to know how these distances are calculated.
There is no single answer applying to everything in Freeciv. This is because:
* Map topology - tiles may be Hex or Square
* "Distance types" - Freeciv uses 3 distinct ways to calculate distance depending on the mechanic involved.
== Distances on maps with Square tiles ==
On a game with square tiles, there are three possible ways to calculate distance: 
* Real Distance: least number of moves between tiles
* Manhattan Distance: non-diagonal moves between tiles
* Euclidean Distance: the true distance calculated by the Pythagorean Theorem
=== Real Distance ===
How many moves a unit with no limitations (e.g., airplane) takes to go from tile A to tile B. 
=== Manhattan Distance ===
Non-diagonal moves between tiles. That is, |x+y|, where x is the east-west distance and y is the north-south distance.
=== Euclidean Distance ===
This is the true mathematical distance between the center of one tile and the center of another tile, which can be expressed by the Pythagorean Theorem. Distance2 = X2 + Y2 or, Distance = √(X2 + Y2).
👉🏼 To avoid decimals, Freeciv uses a "shortcut version" of Euclidean Distance called Square Map Distance, which is Distance = (X2 + Y2). It effectively models the same thing as Euclidean distance, but keeps to integer numbers without needing decimals or square roots. 
== Which Game Mechanics use which Distance Types ==
element 	type
Action legality on nearby tiles 	Real
Paratrooper Range 	Real
City Corruption 	Real
CLASSIC Trade Revenue (distance-based) 	Real
Migration between cities 	Real
dispersion (game setting) 	Real
Attacks 	Real
Bombard / Special Attacks 	Real
Minimum distance for Trade Routes 	Manhattan
Cost to Bribe a Unit 	Manhattan
Cost to Incite a City 	Manhattan
City Vision, distance 	Euclidean
City Radius (workable tiles), distance 	Euclidean
Unit Vision, distance 	Euclidean
Vision distance for Military Bases 	Euclidean
Permanent tile ownership distance, cities	Euclidean
Border calculations, cities 	Euclidean
Visibility of Stealth types 	Euclidean
Visibility of Submarine types 	Euclidean
== Hexagonal Topology ==
Freeciv was originally designed as a Square Tile topology only. The introduction of Hex topology required the conversion of rules, formulas, and mechanics into their nearest simulacra when games are played on hex maps:
* REAL DISTANCE remains unchanged, the least number of moves between Tile A and Tile B.
* MANHATTAN DISTANCE and REAL DISTANCE become identical under hex topology.
* EUCLIDEAN DISTANCE remains the true mathematical distance between the centers of Tile A and Tile B.
Category:Terminology
Category:Documentation