# Hexagonal coordinate representations in Hexeline

One of the central design principles in my still extremely early space shooter
*Hexeline* (read: has neither space nor shooting) is that spacecraft will be
defined in terms of a hexagonal grid, rather than cells of varying shape, which
simplifies things for both the software and the player while still allowing
more interesting shapes than a square grid.

A useful property of regular grids is that they are *directly addressable*;
i.e., you can put the elements of an array and immediately access an element
just by knowing its coordinate. Ideally, it’s also efficient to go from
continuous spatial coordinates to a grid coordinate. This is trivial in a
square grid: depending on how you define your coordinates, you can usually just
divide spatial coordinates by the cell size to get the coordinate of the cell a
point falls within.

In effort to get a similar property for hexagonal grids, I’ve taken the unusual step of basing a Newtonian physics engine on non-cartesian coordinates. It turns out this is not as bad as it sounds, and quite a few useful properties fall out of it.

Note: This post is going to be comparatively math-heavy and assumes some familiarity with linear algebra.