Map Maker
DarkSpace currently doesn't have a public map maker program. It has in the past, but has since been removed for a number of reasons, including abuse of local servers.
In liu of a proper map editor, a spreadsheet has been created as a template to facilitate the implementation of [player-submitted maps] into the internal development tools.
The template spreadsheet is available [here] as an .odf (OpenOffice/LibreOffice) or [here] as an .xls (MS Excel) format.
The template includes a couple example objects, and hopefully the fields are self-explanatory. However, some supplemental material is required.
Contents
Fields
Planets - Name of the object, regardless of if it's a star, planet, jumpgate, etc.
Size - Basically: small, regular, big, or crazy hueg planet/star
Class - What the object is. May be planet(ie, barren, terran, ocean...), star, nebula, jumpgate, and the like. First object MUST be a star of some sort.
Variety - Which planet texture, or star color, or jumpgate model...
Orbiting - What, if anything, the object is in orbit around.
- Any orbiting object MUST be orbiting an object that is already (read: higher up on the list) on the list of objects. You cannot have OBJECT-B orbiting OBJECT-Q, unless OBJECT-Q was added before OBJECT-B
- Any orbiting object MUST be orbiting an object that is already (read: higher up on the list) on the list of objects. You cannot have OBJECT-B orbiting OBJECT-Q, unless OBJECT-Q was added before OBJECT-B
X Pos - Where the object is on the X axis (units in GUs). Feeds the XY scatter plot graph.
Y Pos - Where the object is on the Y axis (units in GUs). Feeds the XY scatter plot graph
- A little math is involved if you want to calculate how far an object is from another object. Using A^2 + B^2 = C^2 (for those that didn't pay attention in math/geometry class), and Earth=6170x,-7410y, Luna=6790x,-7100y.
- Get the position difference. Luna X - Earth X (A value), Luna Y - Earth Y (B value). A=(6170 - 6790)= -620. B=(-7410 - -7100)= -310
- Square A and B, add them to get C^2. A^2=(-620*-620)=384400. B^2=(-310*-310)=96100. 384400+96100=480500=C^2.
- Square root of C^2 will be the distance between your two objects. C= sqrt(480500)= 693.18 .
- Good approximation, but doesn't account for planet/star radius, usually a good idea to give yourself a couple extra hundred GUs to work with.
- A little math is involved if you want to calculate how far an object is from another object. Using A^2 + B^2 = C^2 (for those that didn't pay attention in math/geometry class), and Earth=6170x,-7410y, Luna=6790x,-7100y.
Sheet 2 - Text
Map Description - A short blurb about your map or the map setting, and doesn't even have to be that. Could be a quote from an author, for example. Factions - Team name/ship selection and a description for that faction. Yes, you can have UGTO vs UGTO, Kluth vs Kluth, Kluth&ICC vs UGTO, etc. No, you can't have MI or Pirates (except in name only).
- If you're using non-standard team names (ie, Zanthrax's World Plaguers), specify which faction's ships they're using (ie, Kluth).
Objectives - For a team to win the map, what do they have to capture?
Victory - Message that gets displayed when a team wins.
All these should be brief, in the neighborhood of a paragraph. People wont read a wall of text, and realistically, most wont read it at all, so there's not much point in launching into a multi-page dissertation on why this is the planetary equivalent of a strategically important box canyon.
Sheet 3 - Resources
Replaces the resources column on the Objects page. Indicate which planets have which resources available here, boolean format (True/False, Yes/No, 1/0 )
Valid Map Objects
Stars
Stars come in 4 sizes: Remnant, Dwarf, Medium and Giant. And 6 colors: Blue, Green, Orange, Purple, Red and Yellow.
Planets
There are 5 sizes: Small, Medium, Large, XLarge, XXLarge (gas giants only)
8 types: Arid, Barren, Gas, Ice, Inferno, Moon, Ocean, Terran (Moon type are uncapturable, see: Phobos/Deimos)
Planetary variety (textures)
- Arid- 4 varieties
- Barren- 6 varieties
- Gas- 5 varieties
- Ice- 5 varieties
- Inferno- 2 varieties
- Ocean- 1 variety
- Terran- 2 varieties
- Moon- (technically, any planet could be a moon-type, since it's just a classification)
Asteroids
4 Sizes: Small, Medium, Large and Massive
2 types: Normal/Rocky and Ice (Ice only available in Medium/Large size)
Jumpgates
4 appearances: Default/ICC, UGTO, Kluth and Wormhole
- Use the Size column for Gate destination where applicable (home/spawn gates dont have a destination)
Nebulas
Red, Blue, Red #2, Yellow, Orange, Green, Violet and Dark (ultraviolet)
Resources
Hydrogen, Oxygen, Metals, Heavy Metals, Cyrometal, Hypermatter, Dark Matter, and Urdanium
- Resources are boolean values, a planet either has it available, or it doesn't.
Guidelines
- The first object added should ALWAYS be a star. Two reasons;
- This gives the system its name (and what's displayed on your hud in-game that tells you which system you're in)
- It gives everything else in the map something to orbit around.
- Any object which orbits another object MUST be orbiting an object which as already been added to the map. You cannot add planets Q, R, S, T and then have planet Q orbit planet T.
- Orbits have a very strict hierarchical ordering system. Put it another way, the King's at the center, Queen revolves around the King. Rook, Bishop and Knight all orbit the King and Queen, and the Pawns orbit outside everybody. Darkspace will throw a fit if you try to have the Queen orbiting a Knight (we call that the Lancelot Effect, and the King's none too thrilled about it either)
- Generally, an average sized map will fall into a square between 20kgu and 30kgu.
- Maps that are 'smaller' (or have less planets) will probably fit inside of 15-20kgu. Larger maps can go for 35-40kgu.
- Maps probably shouldn't be over 60kgu in any dimension without having intrasystem jumpgates.
- No planet, or jumpgate should ever be closer than 5kgu to a star, especially giant stars.
- This is so players don't run into a star's hit box trying to get to a planet/gate (pilot error excepted).
Generally, there should be at least 500-1000gu between any two planets for the same anti-collision reason. Larger planets demand a larger space around them, especially terran planets or ones likely to have shipyards built on them.
- Rare resources should be rare. Hydrogen and Oxygen are typically the most common, Metals and Heavy Metals slightly less so. Cyro metal, Hypermatter, Dark Matter and Urdanium shouldn't really turn up on more than 20% of the total habitable planets. Scarcity drives competition, it contributes to giving players a reason to capture this planet or that one, which is functionally the objective for scenario maps.
- Likewise, certain planets typically have certain resources. Terran, Arid and Ocean planets often have hydrogen, oxygen and metals. Cyro metals don't often turn up on inferno planets, but they might on ice planets. Planets near stars probably wouldn't have 'dark' matter, but hypermatter and urdanium would be reasonable
Using RNG for creation
Random number generators are like duct tape, with the right application you can make some very creative things. With the wrong application, it's just a sticky grey mess.
Functions may be different depending on spreadsheet program
For some examples, =round(rand()) will return either 0, or 1, which is useful for selecting which planets get which resources.
- Resources actually take 2 passes minimum to prevent over-abundance.
- 1st pass as normal
- 2nd pass only where the first pass returned 1.
- Subsequent passes as desired for rarity.
- Resources actually take 2 passes minimum to prevent over-abundance.
=rand() by itself will return a decimal between 0 and 1, and can be used for selecting planet size, eg:
- 0-0.1 Moons (of small size)
- 0.2-0.3 Small
- 0.4-0.6 Medium
- 0.7-1 Large
Anything greater than 1 would then be Xlarge.
=randbetween(1,6) could select star color or planet variety