seanth

[INDEV] [1.7] To Boldly Go (0.3.9) | An external application designed to procedurally generate an entire galaxy for KSP.

Recommended Posts

cp5HsRoMPZutrFuzBEKRPHqXkQrSu1yWYbIuVhzt

About:
To Boldly Go (TBG) is a stand-alone application that allows users to create a procedural galaxy. It leaves the stock game's planets untouched, but adds new stars, planets, and moons--all using real-world calculations (adjusted for the oddities of the in-game physics).

The original author, @daniel l., has asked me to take the lead on development, and after a long time of inaction I have finally made a new thread.


Current release:
For KSP 1.7 (requires Kopernicus 1.7): https://github.com/kjoenth/To-Boldly-Go/releases/latest

Instructions:

  • Install Kopernicus
  • Copy the contents of the GameData/ folder to KSP's GameData/ folder
  • An example galaxy is included with TBG, but if you want to make your own custom galaxy, launch the GalaxyGen.exe application and follow the instructions.
    • Maximum recommended galaxy size: 200 stars. (KSP 64-Bit)
  • Launch KSP
  • Depending on your computer and the number of stars+planets+moons in your galaxy, it might take a while for KSP to start up.
  • If you think KSP might have frozen, look in the Logs/Kopernicus/ folder to see if files are being generated

Eeek! A bug!:
By all means mention things here, but another good place to report things is at https://github.com/kjoenth/To-Boldly-Go/issues

Current features:

  • Automatic of customizable galaxy generation
  • Use of a seed so you can share more easily share your galaxies with friends.
  • An output txt file detailing the details of your galaxy
  • Star types (O, B, A, F, G, K, M) with procedurally determined colours based on their mass.
  • A wikiEntry html file that is generated for each galaxy that provides details for stars in the generated universe
  • Different galaxy types: ellipse, disc, or cluster
  • Galaxy age (impacts the numbers of star types automatically generated)
  • Ability to have no planets, or no moons.
  • Ability to determine exact numbers of each star type.
  • Procedurally generated water worlds (0.3.8)
  • Procedurally generated Eve-like worlds (0.3.9)
  • Add in planets/moons from any start pack. Instructions here.
  • Whether stars are visible from Kerbin depends on their luminosity and distance
  • Optional integration with ResearchBodies
  • Optional integration with Environmental Visual Enhancements (EVE) & Stock Visual Enhancements (SVE)

Pictures or it didn't happen:

Procedural Eve-like planet

-pZ8wAt2ISVPxuJWJVOkfTM1YgeS-0uqDcwitgak

 

@daniel l.'s imgur album:

KottabosGames review of an earlier version: 

Spoiler

 

Short video showing the "milky way" as seen from Kerbin:

Spoiler

 

 

Edited by seanth

Share this post


Link to post
Share on other sites

Have you added any new features yet, or are you just currently updating/maintaining it?

Share this post


Link to post
Share on other sites
9 hours ago, Messier said:

Have you added any new features yet, or are you just currently updating/maintaining it?

Does including the ability to add in custom planets from planet packs count?

Details soon. It's all working, there are just no instructions yet.

Share this post


Link to post
Share on other sites
19 hours ago, seanth said:

Does including the ability to add in custom planets from planet packs count?

Details soon. It's all working, there are just no instructions yet.

Ooooh, I like this. Now, what I want to see (just a suggestion, sounds hard to code) is a way to play Kraken and bend the forces to our will to create our own planets. Basically, random noisemap generator + 6 different color triplets that differ randomly based on altitude, and an ocean level. That seems the simplest way to put it. For the options:

 

High Altitude Colors: (RGB, RGB, RGB)

High Altitude start: <Altitude>

Medium Altitude Colors: (RGB, RGB, RGB)

Medium Altitude End: <altitude>

Medium Altitude Start: <altitude>

Low Altitude Colors: (RGB, RGB, RGB)

Low Altitude End: <altitude>

Low Altitude Start: <altitude>

Really Low Altitude Colors: (RGB, RGB, RGB)

Really Low Altitude End: <altitude>

Planet Generation Options

Radius: <radius>

Periapsis: <periapsis>

Orbiting: <body name>

Eccentricity: <eccentricity>

Axis tilt: <degrees>

Atmosphere? 

[If atmosphere checked:

Height: <in meters>

Oxygen? 

Atmosphere temperature at sea level: <temp in celsius> (If high enough, will heat and possibly destroy craft. If low enough, will make parts rigid and possibly cause Random Unplanned Disassembly.)

Atmosphere pressure: <pressure> (If high enough, will start to push craft down)

Atmosphere color: <RGB>]

Edited by Kebab Kerman
Site didn't let me finish the whole thing before uploading XD

Share this post


Link to post
Share on other sites
1 hour ago, Kebab Kerman said:

Ooooh, I like this. Now, what I want to see (just a suggestion, sounds hard to code) is a way to play Kraken and bend the forces to our will to create our own planets.

Are you proposing a way to make specific planets, or just providing vague parameters from which a series of random planets are made?

There's a tool out there called Kittopiatech that will let you make custom worlds.

Share this post


Link to post
Share on other sites
1 hour ago, seanth said:

Are you proposing a way to make specific planets, or just providing vague parameters from which a series of random planets are made?

There's a tool out there called Kittopiatech that will let you make custom worlds.

I know, I've used it, but I gave up after a while because I couldn't figure it out. I'm suggesting a controlled random planet generator, to put it simply.

Share this post


Link to post
Share on other sites

TBG has had an undocumented feature for about a year now, but I'm still hesitant about documenting it. 

Right now, TBG will procedurally generate stars and then place planets and moons around those stars using the stock game planets and moons as templates. Well...you can use planets/moons from (in theory) any Kopernicus planet pack as templates for extra-solar bodies.

The reason I have been hesitant in documenting this feature is that I _know_ that not every planet pack will Just Work, and I don't want to spend all my time trying to offer support.

So what do people think: should I let ya'll know how to use other Kopernicus planets as templates to populate your universes (and gleefully ignore requests for help getting planet pack <insert name> working), or just leave it as a feature that is never described ;)

I'm guess "yes: tell us how!" Also, seriously: how do I set up survey questions?Edit: got it.

Examples:

Spoiler

Boris, from the Boris System pack making an appearance as Surune II...sporting a cute little ring.

TTQVH8WCNHG8-Pie78BLn87dtH8k-I0h43Q7_dFw

 

A mixed family with Zuto (Degoos Ic) (Boris System pack) and Chani (Degoos Ia) (Chani Planet pack) orbiting Moho (Degoos I) (stock KSP). Degoos Ib (not shown) is Rheis from the Trans-Keptunian pack.

HSNK8uJmCnLdk8BiJkEF5PIlcRuyJmemLWXn4HXh

 

Edited by seanth

Share this post


Link to post
Share on other sites
On 5/15/2018 at 9:43 AM, Kebab Kerman said:

I know, I've used it, but I gave up after a while because I couldn't figure it out. I'm suggesting a controlled random planet generator, to put it simply.

Hmmm. Well, there could be an editable txt file that would define min/max values for some planet generation. Some of the things you listed above are determined procedurally, though. For example, you can't have an atmosphere if the mass(radius) of the body is too low, and whether there is atmospheric O2 is at least partly determined by the distance the body is from its primary.

Maybe what you want is a separate tool where you feed in some parameters and it outputs one or more planets based on a range of your values.

Edited by seanth

Share this post


Link to post
Share on other sites
12 hours ago, seanth said:

Hmmm. Well, there could be an editable txt file that would define min/max values for some planet generation. Some of the things you listed above are determined procedurally, though.

That txt file idea is a good one! The variables I listed can be procedural or not, there could be an option for that.

12 hours ago, seanth said:

For example, you can't have an atmosphere if the mass(radius) of the body is too low, and whether there is atmospheric O2 is at least partly determined by the distance the body is from its primary.

Well, what if we want to do something crazy with them? I mean we could do realistic, but what if we want to give it an atmosphere that is 1km in height but that has a pressure of 100? Or if we want to literally play Kraken and make a planet so utterly broken that merely touching it will break parts? This could test what limits your craft has.

12 hours ago, seanth said:

Maybe what you want is a separate tool where you feed in some parameters and it outputs one or more planets based on a range of your values.

Yeah, that sounds good for now.

Share this post


Link to post
Share on other sites

Well the results are the survey are clear: everyone that follows this thread wants to know how to do the thing.

I'll put some instructions together, and then post them here, on the github wiki, and maybe make a narrated youtube instructional

Share this post


Link to post
Share on other sites
On 5/17/2018 at 7:03 PM, seanth said:

The reason I have been hesitant in documenting this feature is that I _know_ that not every planet pack will Just Work, and I don't want to spend all my time trying to offer support.

Well, as long as more than one person knows how to properly do the thing, you might not have to.

Share this post


Link to post
Share on other sites
On 6/10/2018 at 5:03 PM, MajikalExplosions said:

Is there a way for me to contribute to development?

I've taken a few college-level programming courses if that helps at all.

Absolutely. All the code is up at https://github.com/kjoenth/To-Boldly-Go

I'm currently working on the "Janet" branch and am focusing on planet-related stuff (like tidal locking, planets in habitable zones getting atmosphere's with oxygen, etc). The current code is in QBasic, but I have dreams of moving things to python.

 

Share this post


Link to post
Share on other sites
On 6/18/2018 at 7:40 PM, RocketScientist said:

I'm so confused, how do I install this?

Sheesh. Why am I not getting notifications when people post.

  1. Make sure you have (at least) KSP 1.4.3
  2. Install the Kopernicus mod
  3. Install TBG

At that point, you have the option to just use the galaxy file provided. If you want to make your own custom galaxy and are on windows, launch GalaxyGen.exe in the To Boldly Go folder and enter the info you want to make a custom galaxy. If you are on a Mac, I have found that  using a Wineskin works fine (on Mac OS 10.13.4).

Edited by seanth

Share this post


Link to post
Share on other sites
On 6/13/2018 at 11:29 PM, seanth said:

Absolutely. All the code is up at https://github.com/kjoenth/To-Boldly-Go

I'm currently working on the "Janet" branch and am focusing on planet-related stuff (like tidal locking, planets in habitable zones getting atmosphere's with oxygen, etc). The current code is in QBasic, but I have dreams of moving things to python.

 

Okay.  I've never worked with QBasic before, so I'll need to do some reading.

Share this post


Link to post
Share on other sites
On 6/13/2018 at 11:29 PM, seanth said:

Absolutely. All the code is up at https://github.com/kjoenth/To-Boldly-Go

I'm currently working on the "Janet" branch and am focusing on planet-related stuff (like tidal locking, planets in habitable zones getting atmosphere's with oxygen, etc). The current code is in QBasic, but I have dreams of moving things to python.

 

Just a quick question - I started a Java port because it helps me know exactly what's going on at https://github.com/MajikalExplosions/To-Boldly-Go.  What am I allowed to add to the copyright statement?  Like right now I just added "Java Port by MajikalExplosions" right below your copyright statement.  I *believe* that it complies with the license but I'm not sure.

Share this post


Link to post
Share on other sites
19 hours ago, MajikalExplosions said:

Just a quick question - I started a Java port because it helps me know exactly what's going on at https://github.com/MajikalExplosions/To-Boldly-Go.  What am I allowed to add to the copyright statement?  Like right now I just added "Java Port by MajikalExplosions" right below your copyright statement.  I *believe* that it complies with the license but I'm not sure.

Yeah, seems fine. It's GNU General Public License v2.0, so just saying where it came from initially is enough I think.

Just a heads up though: Master is many, many updates behind the Janet branch. If you're building off of Master, it's pretty out of date.

Edited by seanth

Share this post


Link to post
Share on other sites
On 7/1/2018 at 5:46 AM, seanth said:

Yeah, seems fine. It's GNU General Public License v2.0, so just saying where it came from initially is enough I think.

Just a heads up though: Master is many, many updates behind the Janet branch. If you're building off of Master, it's pretty out of date.

I know.  I'm not actually building off of it; I'm reading the Janet branch instead and porting it over to Java first, as practice.  Maybe Python can come later(I don't know it as well and I should probably know what I'm doing before I try to port TBG to Python).

Share this post


Link to post
Share on other sites

Small update:

I'm working toward integrating TBG with some cool ResearchBodies stuff. To that end I have been including some code that calculates a star's absolute magnitude, distance from Kerbol, and from that I can calculate the apparent magnitude of any of the generated stars as seen from Kerbin.

The average human has a hard time seeing anything with an apparent magnitude of 6.5 or higher (without using a telescope). What this means is that, with ResearchBodies, stars with a apparent magnitude above a certain level won't be seen in map view unless discovered with a telescope first.

But, I turn to you: what should that cutoff be? Are Kerbal eyes better able to see stars than ours? Worse? The same?

https://en.wikipedia.org/wiki/Apparent_magnitude#Table_of_notable_celestial_objects for some info that might help.

Share this post


Link to post
Share on other sites
20 hours ago, seanth said:

The average human has a hard time seeing anything with an apparent magnitude of 6.5 or higher (without using a telescope). What this means is that, with ResearchBodies, stars with a apparent magnitude above a certain level won't be seen in map view unless discovered with a telescope first.

But, I turn to you: what should that cutoff be? Are Kerbal eyes better able to see stars than ours? Worse? The same?

https://en.wikipedia.org/wiki/Apparent_magnitude#Table_of_notable_celestial_objects for some info that might help.

According to the wiki page about Kerbals at https://wiki.kerbalspaceprogram.com/wiki/Kerbal, "If Kerbal eyes truly lack irises, their eyes would be very sensitive to bright lights."  Like if that's the case then it's safe to assume that they can see at least as well as us.  Maybe.

The problem with that is that Kerbals seem to be fine when it's daytime instead of having headaches or whatever because everything is really bright.

Personally I would choose 7 but like that's an uneducated guesstimate so...

Share this post


Link to post
Share on other sites

Another update:

I have all the calculations related to the apparent magnitude of stars in TBG working, and a custom cfg is being made for ResearchBodies.

What I initially found was that most stars were simply too far away to be seen (having an apparent magnitude of 7 or less). As a consequence I've started experimenting with making the galaxy smaller. Right now the galaxy is 4x smaller than I have had it previously and that is yielding good results.

Star brightness in the night sky as seen from Kerbin is (predictably) much higher now, so I am working to adjust that. Once I'm done with that, I'll work on having module manager files automatically generated to adjust how telescopes work. At this point I think I'll actually have things to take pictures of.

Share this post


Link to post
Share on other sites
On 7/6/2018 at 4:31 AM, seanth said:

Another update:

I have all the calculations related to the apparent magnitude of stars in TBG working, and a custom cfg is being made for ResearchBodies.

What I initially found was that most stars were simply too far away to be seen (having an apparent magnitude of 7 or less). As a consequence I've started experimenting with making the galaxy smaller. Right now the galaxy is 4x smaller than I have had it previously and that is yielding good results.

Star brightness in the night sky as seen from Kerbin is (predictably) much higher now, so I am working to adjust that. Once I'm done with that, I'll work on having module manager files automatically generated to adjust how telescopes work. At this point I think I'll actually have things to take pictures of.

Looks like I have some catching up to do

Also - GalaxyGen.bas line 2356 is wrong(the comment says mass but it should be radius)

Edited by MajikalExplosions

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.