Greetings, O wise and knowledgable math geniuses. Is there an elegant system for representing a finite,unbounded2D space and performing the common 2D geometric calculations (distance between points, movement, etc.) on it in a coherent way? I want to code an arcade game played on a 2D space that is finite but wraps around in every direction. In past attempts I just represented space as a bounded box, and I corrected coordinates after every calculation that produced them, but this was rather messy. Is there a better approach?

My first thought was to somehow map the 2D space over a sphere and translate 2D calculations into 3D calculations around the sphere.