New format for the REBOOTED game!
This document explains the technical specifications for a InterPlanetGame map. It contains specifications, rules and guidlines as well as an example map. Even if you use a tool, read this, since the tool may be hard to use without this knowladge.
- startValue renamed to start_value (property names now have snake case)
- Changes needed to support the REBOOTED version
- Numbers represented as strings have been changed into actual numbers
The maps are stored as a JSON file.
- Name
- Standard
- Size
- Planets Array, and at least one element in it
Type | Values |
---|---|
String | Any |
Type | Values |
---|---|
double | Version of the standard in use without the 'v' |
Example:
"standard": 0.4,
Type | Values |
---|---|
Object | X and Y dimensions |
Example
"size": {
"x": 0,
"y": 0
},
Type | Values |
---|---|
Array | Planet Objects |
Example |
"planets": [
],
Type | Values |
---|---|
Object | X and Y cords, Color, Radius, Start Value |
Example |
{
"radius": 75,
"x": 200,
"y": 200,
"start_value": 50,
"possession": [
0,
0,
0
],
"multiplier": 2
},
JSON Syntax Notes
The elemsnts must by in that order in the planet object, the numbers have to be strings (surrounded by double quotes). The cordinates are distance from the upper right hand corner.
elements
Type | Values |
---|---|
int | radius of planet |
Type | Values |
---|---|
int | cords |
specifiy distance from upper left hand corner of the map.
Type | Values |
---|---|
int | Starting Value |
value with witch the planet starts
Type | Values |
---|---|
array | Player number that owns planet with that many players |
Example
This planet (see example code) is owned by player 1 in a 2 player game. It starts the values at 2 players and counts up. Player 0 is a neutral planet.
Players | Owner |
---|---|
1 | Player 1 of 2 players |
3 | Player 3 of 3 players |
4 | Player 4 of 4 players |
"possession": [
1,
3,
4
]
Type | Values |
---|---|
double | Multipler |
Optional Porperty - Not required
Only up to one decimal place. The growth rate of the planet is multiplied by this number
Name | Hex | Player |
---|---|---|
Green | #8ed16c | 1 |
Blue | #3fa6f3 | 2 |
Red | #e25f5f | 3 |
Magenta | #ef6ab8 | 4 |
Orange | #eb8932 | 5 |
Purple | #af6cd1 | 6 |
Teal | #66e3cd | 7 |
Deep Blue | #4f47c0 | 8 |
Yellow | #efdf27 | 9 |
Neutral Grey | #bbbbbb | 0 |
Maps that don't follow these are considered invalid, even if the still "work"
- There may be no overlapping planets
- The planets must always fit inside the map boundaries
- Only use from the list of accepted start values
- Only use from the list of accepted planet sizes
- Only use from the list of accepted multipliers
Definition of a balanced map: Without any actions, there should be at no time a disparity in the quantity of troops. (In short, the total growth rate [Combined radii] needs to be equal, as well as the number of starting troops)
- 5
- 10
- 15
- 20
- 25
- 30
- 35
- 45
- 50
Use these sparingly:
- 60
- 70
- 75
- 80
- 90
- 100
- 125
- Larger sizes make the value of capturing planets go down.
- 10
- 15
- 20
- 40
- 50
- 75
- 100
- 125
- 150
- 175
- 200
- No Bigger Planets, It's a waste of space (Pun intended).
- Use multipliers very sparingly
- Putting a big planet in the middle isn't a good start
Build maps that are designed to create new and interesting ways of playing, trying to create a picture isn't good for gameplay. Gameplay comes first, and more people will play your map if it is fun.
Top to bottom, left to right.{
"size": {
"x": 1000,
"y": 1000
},
"name": "Example Map",
"planets": [
{
"x": 800,
"y": 500,
"start_value": 20,
"radius": 75,
"possession": [
2,
3,
4,
4,
4
]
},
{
"y": 760,
"x": 650,
"start_value": 20,
"radius": 75,
"possession": [
1,
3,
3,
3,
3
]
},
{
"y": 760,
"x": 350,
"start_value": 20,
"radius": 75,
"possession": [
1,
1,
0,
5,
5
]
},
{
"y": 240,
"x": 650,
"start_value": 20,
"radius": 75,
"possession": [
2,
2,
0,
0,
6
]
},
{
"y": 240,
"x": 350,
"start_value": 20,
"radius": 75,
"possession": [
2,
2,
2,
2,
2
]
},
{
"y": 500,
"x": 200,
"start_value": 20,
"radius": 75,
"possession": [
1,
1,
1,
1,
1
]
},
{
"y": 500,
"x": 500,
"start_value": 50,
"radius": 100,
"possession": [
0,
0,
0,
0,
0
],
"multiplier": 2
}
]
}