I've been working on a a 3 player spawn map and here are a few thoughts regarding symmetry using the SC2 editor that may be useful to other mapmakers. Making a nice symmetrical map is part science and part art. The following diatribe focuses on the maths.
1) Background on 3 player map symmetry
Read the great tutorial on creating a 3 player map posted by NullCurrent (http://www.teamliquid.net/forum/viewmessage.php?topic_id=193415)
- there is a difference between symmetry and balance, the symmetrical aspect is mathmatical, the balance aspect is more of an art
- having a general idea down on paper before you put it into the map is key
- i didn't have the programs in the aforementioned post, so i went old school maths and handdrawn graph paper
Based on your map size, know what the center point is. This is your point of symmetry. (e.g. if you are making a 200x200 map, your pos is 100,100).
A quick refresh on triangular (120°) and hexagonal (60°) geometry is helpful.
2) Understanding Cartesian and Polar coordinates
A single point on a 2D map can represented graphically in two manners:
- Cartesian coordiantes (x,y) represent a point relative to the origin by an x and y position. How far along and how far up.
- Polar coordinates (r,θ) represent the same point where r is distance from the origin and θ is the angle from the x-axis. How far away and what angle.
+ Show Spoiler +
- (1,1) in Cartesian coordinates is (1.414, 45°) in polar coordinates.
- (5,12) in Cartesian coordinates is (13, 23°) in polar coordinates
- the editor currently doesn't have a decent rotation function, the current version only does 90/180 degree copy/paste functions; useful for 2/4/8 player maps, but not so good for other rotations
- the editor uses Cartesian coordinates
- the basis of geometrical rotational symmetry is simplified through the use of polar coordinates
3) Application of Symmetry Funcitons
If you convert the position of main focii (starting points, expansions, etc...) from Cartesian to Polar coordinates, it is simple to replicate them in a symmetrical fashion by simply adding +/- 120° to the coordinates and converting that back to Cartesian coordinates.
By doing so, one can ensure the positioning is as symmetrical as possible, given the limitations of the sc2 editor program..
It is essential to have a central point of symmetry to base your rotations.
I suggest throwing down a Xel'naga tower as a visual reference at the very start as an easy reference point, although this is obviously subject to change based on your overall plan.
4) Online Coversion tools
EDIT: Winpark has created an awesome application that calculates the other two rotationally symmetrical points.
Link to 3 Player Map Symmetry Calculator
The following text is for those who wish to understand the underlying maths.
- Converting from Cartesian coordinates to Polar coordinates
- Converting from Polar coordinates to Cartesian coordinates
Example on a 208x208 map with a point of symmetry at 104,104:
Cartesian coordinates - 112,178 (+8x,+74y)
Polar coordinates - distance= 74.4312 units, angle= 83.8298°
To find the two other spawn positions, then just add 120 degrees and reconvert back to Cartesian coordinates.
Spawn #2: 74.4312 distance, 203.8298° --> -68.0859x, -30.0718y --> 36x, 74y Cartesian coordinate system
Repeat for the third spawn position. (74.4312, 323.8298° polar --> 164x, 60y cartesian)
After using the sc2analyzer program, these positions come out to 128.8, 128.8, 128.9 distance by air. Not shabby given the limitations of 1 unit increments in the editor.
Using these tools will ensure distances will be as symmetric as possible. This is essential for points such as the spawning locations, expansions and other major features of the map. Hopefully someone in the community will develop a script or other means to automate rotational symmetry, but in the meantime, this is a guide to an old-school approach.
Here is the link to the map I created using these tools: