New Custom Galaxy Method


#1

Hello Folks,

Today I had some fun implementing a method of specifying custom galaxy setups. In the old method, I only let you specify player home worlds. In this new method you have to specify every single star.

My plans are to use this same function to build a map editor. I might do it open source so some of you can help.

Here is the help file I wrote for the feature. Will be available to try as soon as Proteus is out!


You must proved a properly formatted JSON string, that contains an array of stars.

When you use this method to specify the starting Galaxy, all other Galaxy customisation options are ignored.

Each Star must provide the following properties

  • uid - a unique integer > 0
  • name - the stars name
  • x - x pos
  • y - y pos
  • r - resource value (5-60)
  • g - warpgate (0 or 1)
  • e - pre-built economy
  • i - pre-built economy
  • s - pre-built economy
  • st - pre-built ship strength
  • puid - the uid of the owning player (optional)
  • wh - the uid of a wormhole connection (optional)

Scale is 0.0625 / light year. Players will be able to jump 0.25 units at the start of the game. Range tech 3, 4 light years.

Each player in the game needs be be provided with at least one star, and when creating the game to run your custom galaxy, you must select the same number of players as you have built the custom galaxy for.

Below is a sample galaxy of 4 stars for 2 players

{"stars":[{"uid": 4, "name": "Star 0", "x": 0.25, "y": 0.25, "r": 50, "g": 0, "e": 3, "i": 2, "s": 1, "st": 100, "puid": 6, "wh": 1}, {"uid": 1, "name": "Star 1", "x": 0.25, "y": -0.25, "r": 50, "g": 0, "e": 3, "i": 2, "s": 1, "st": 50, "puid": 1}, {"uid": 2, "name": "Star 2", "x": -0.25, "y": -0.25, "r": 20, "g": 0, "e": 0, "i": 0, "s": 0, "st": 0}, {"uid": 3, "name": "Star 3", "x": -0.25, "y": 0.25, "r": 20, "g": 0, "e": 0, "i": 0, "s": 0, "st": 0, "puid": 0}]}

Note: Hand writing JSON strings can be difficult, and the game doesn’t provide any feedback about what might be wrong with your JSON so its best to use machine generated JSON.


Custom Game Sandbox & Library
#2

Ooh. Exciting, lots of potential fun. Flashback to Stars! Scenarios (one of my first websites :))

(Anyone remember Stars!?)


#3

I often tell people Stars! was one o of the biggest inspirations for NP.

I only wish we had Ore I could fling around is a mass accelerator.


#4

Do you know what would go great with this? (And it’s probably on your list but I’ll mention it anyway.)

Custom victory conditions. A couple off the top of my head:

Who has the most stars after X ticks/cycles.
Who holds star X for/after Y ticks/cycles.


#5

A user reminded me of all the fun we had playing a kind of the hill game mode a few years ago. Whoever was running it just counted how long each player held a centre star.

It was heaps of fun and I’d love to officially support it one day.


#6

How I wish I knew JSON… you must be torturing me, Jay.

I do have a question, you mention resources 0-60, does that mean there’s no 70 resource star in Proteus? Because I have one in the test game…

Also, the properties list economy three times. My nubile attempts to instantly understand the code lead me to believe that’s not important, and the e, i, and s respectively represent their prebuild counterparts that start with the same letter. Right?


#7

There are various tools that can ease working with json. For example: http://www.jsoneditoronline.org

Here a short explanation of the UI:

  1. Paste the JSON in the left panel
  2. Convert to “Tree” view using the arrow button (left to right)
  3. Edit the tree
  4. Convert the “Tree” to JSON again
  5. There is your updated JSON in the left

At the top bar, there are two buttons to show a compact/expanded view of the JSON. Both are equivalent, usually the compact is stored to save disk space or network traffic. Are exactly the same text, just some whitespaces and newlines deleted.

Here editing:

One thing to note: if there is a number in the original file, for some field, use numbers. If there is a text, use text.

There are various tools like that. Even you can edit the JSON manually with any text editor (even notepad).

Hope it can help you!


#8

Is there some kind of map tool or coordinate plotter so you can easily find the exact position of stars that you want?


#9

That was a great game. @Qwerty ran that, the dude’s a genius


#10

Speaking of victory conditions, are there any plans/thoughts to make a collaborative version of NP/Proteus? Players unite against a highly advanced AI, or something along those lines.


#11

Played it a fair bit years ago and loved it. Still have the game but finding it impossible to get any games going. Do you know how to get back into it?


#12

I don’t play anymore, maybe I should dig out my copy again… but old faithful Autohost seems to be still active.

http://www.starsautohost.org/stars.htm


#13

This is wonderful. Thank you


#14

Oooo I was in that one! It was lots of fun, run by Qwerty. Team based too which was nice.


#15

I can’t run it on a 64 bit machine :frowning: If anyone has solved this issue please let me know.

Also the game isn’t sold anymore but Ron over at Autohost had a stack of serial keys you can buy for a tenner.


#16

I’m not sure, it’s been years since I took Stars! for a spin. I had a quick Google and you’d need some kind of virtual Windows set-up to run it.


#17

I have no skill using JSON and was looking over these star properties as well as the link and instructional from @Zoquete to try to familiarize myself it. What does the ‘uid’ integer really mean? In the example four star map it looks like just a number to categorize the star and differentiate it from another. Is this correct and does it differ from the actual name of the star? Can I place any number in that placeholder as long as there isn’t a repeat and its greater than 0?