• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.
  • We, the systems administration staff, apologize for this unexpected outage of the boards. We have resolved the root cause of the problem and there should be no further disruptions.

StarBase minor update - world and world name generation

simonh

SOC-12
I've made some minor updates to Starbase, just in the source repository for now.

World name generation has been modified so it spices up the names a bit. It randomly adds fairly standard SF world name prefixes and suffixes. So now 'Regulus' might come out as 'Regulus Prime' or 'Regulus II' or 'New Regulus'.

At some point I'll add a check box in the UI to enable or disable this feature.

The 2D6 OGL world generation Rules.py script can now be run directly from the command line. With no arguments it outputs the world data to standard output, or it will write the output to a file named on the command line. The script is only dependent on the Python standard library, and the D6_OGL.py script that comes in the same directory. You do not need StarBase to use it. The layout is based on the HTML/PDF world report generated by StarBase.

Of course since Starbase adds things like world names, I've just put in an empty heading for that and allegiance.

Here's a sample world:

Code:
World Name:
Allegiance:
Starport:      C	Small Spaceport
Size:          5	8,000km
Atmosphere:    5	Thin
Hydrographics: 5	Large Oceans
Population:    3	Thousands
Government:    5	Feudal technocracy
Law Level:     0	None
Tech Level:    5	Late Industrial

System Data
Bases:         
Trade:         Ga Lt
Asteroids:     No
Gas Giant(s):  Yes
Star Data:     

Starport
Comprehensive landing and docking facilities, suitable for routine operations. No shipyard and only basic maintenance facilities are available.

Size
A small planet with a diameter of 8,000km and surface gravity of 0.45G

Atmosphere
Low pressure but breatheable atmosphere with a surface pressure from 0.43 to 0.7 atm.

Hydrographics
Wet world with several large oceans. Hydrographic percentage 46%-55%.

Population
Large village, or scattered small settlements. Population in the range 1,000+.

Government
Rule by a technical elite that performs essential technological functions in return for defined obligations or services

Law Level
No restrictions. 

Tech Level
Widespread electrification, telecommunications and internal combustion. Atomics and primitive computing are appearing.
 
And... it looks like you already found github pages

Yep. They're hidden away a bit though. It would be nice to have a link back to it from the project itself as well, instead they're this completely separate thing off by themselves.

Simon Hibbs
 
BTW: I've added you as an "owner" to the organization makhidkarun, so you can create new repositories under there and add in as you like. If you're interested in collaborating in the t5 libraries as I get them further alone, that'd be awesome too.

Replying here to avoid polluting the ontology thread even more than I have already.

That's very good of you. I've uploaded the OGL/Mongoose world generation utility as a standalone project under the Makhidkarun banner.

Simon Hibbs
 
Here is a naming option that I would like: just name every system after the hex in which it is located. That would work best for me in setting up a universe with lots of unexplored areas, where it would be quicker to rename the populated systems than to un-name all of those randomly generated names.
 
Here is a naming option that I would like: just name every system after the hex in which it is located. That would work best for me in setting up a universe with lots of unexplored areas, where it would be quicker to rename the populated systems than to un-name all of those randomly generated names.

Hang on, I'll just nip into my time machine.......

Ok, I'm back. Just un-check the auto naming check box in the tool bar and that's what you get!

Seriously though, when I implemented it I decided that default behaviour should be proper name generation but the original placeholder implementation was to use hex coordinates and you can still do that.

Simon Hibbs
 
Hang on, I'll just nip into my time machine.......

Ok, I'm back. Just un-check the auto naming check box in the tool bar and that's what you get!

Seriously though, when I implemented it I decided that default behaviour should be proper name generation but the original placeholder implementation was to use hex coordinates and you can still do that.

Simon Hibbs

Wow, now that is service! :D
 
World name generation is something I'm doing some deep thinking about before I do any serious further work on it. It would be easy to go down a path that would close off lots of cool options down the line.

The end result I'm after is that you should be able to choose a world name generator from a drop-down list. The generator could either be a script, or a names file as I have at the moment. Having the option of using names files is important because you might want to use a name generator that isn't written in Python or just doesn't integrate with StarBase. All you do is use whatever generator you like to create a list of a few thousand world names, and StarBase can use them.

What I need to decide are things like, how does StarBase find and recognise name generator scripts and name files? Should they be linked to world stats generator scripts (i.e. rules files)? After all, you might want to use a different script to generate Klingon or Vargr worlds as well as just their names.

I'd like to be able to pass parameters to world generation scripts, and perhaps name generation scripts too, but what kind of parameters is it feasible to pass in and how to generate a UI for them?

Tricky questions. At the moment I think I need a Name_Gen directory for name lists and name generation scripts, then use a file naming convention to identify them to the application. After all you might want to have information files, data files or library scripts in there too. That could get messy though. Maybe each generator or name list should be tucked away in it's own sub-directory, like rules files are at the moment?

Simon Hibbs
 
tech level?

I am finding Starbase to be very enjoyable, but am struggling with one item. No matter the starport / population, the tech level seems to peak at TL 5, "late industrial". I've generated several dozen worlds automatically. The override works fine.

What am I missing?
 
What am I missing?

You're missing that I'm an idiot.

I was rewriting the two world generation scripts to be more similar. The 'default' rules script only has an attribute range that goes up to 5, and I accidentally copied the code that applies the value cap from that script into the OGL one without editing it. The cap affects all attributes except the starport code.

You can see this very easily. Switch Edit Mode to 'Sectors', right-click a blank sector and pick 'Generate Sector'. Now right-click the sector again and select 'Show Statistics'. Hmmm...

To fix your project, you need to update the Rules.py script at C:\...\myproject\Rules\Rules.py

You also need to fix the script in the application rules templates directory C:\...\StarBase\rules-templates\2D6_OGL so new projects also get the fix. I'll push out a new binary release later today.

The new script is available here:

Fixed Rules.py

Or you can fix it manually. Line 79 should be changed from:

elif number > 5: number = 5
to
elif number > 23: number = 23

Many thanks for spotting it. This is why the app is still in beta. It needs a good few more eyeballs on it to catch stuff like this. Also, if you have any suggestions for the UI, or features you'd like to see just let me know.

Simon Hibbs
 
You're missing that I'm an idiot.

I am unlikely to believe that, or throw stones. I can't duplicate what you did, in fact I'm probably going to wait until you wrap the whole thing up into a Windows package. The last time I wrote code it was in Fortran 77 and I compiled the program by sitting in front of my IBM PS/2 and swapping the compile diskettes back and forth. No hard drive on that computer.

But I can test like mad.
 
I am unlikely to believe that, or throw stones. I can't duplicate what you did, in fact I'm probably going to wait until you wrap the whole thing up into a Windows package. The last time I wrote code it was in Fortran 77 and I compiled the program by sitting in front of my IBM PS/2 and swapping the compile diskettes back and forth. No hard drive on that computer.

But I can test like mad.

I actually wrote a program in Fortran once. My first job was doing tech support for a forestry research institute and they used Fortran a lot for modelling forest growth and doing statistical analyses.

Just the once though, it was enough.

Simon Hibbs
 
Back
Top