Putting it out there

Published on
Last changed on

This post is going to be slightly more over-arching than all the ones that will come after it. See it as some kind of introduction and a slightly more verbose continuation to the about page

A few clarifications

This log is not a "devlog". Likewise, this experiment is not on a schedule and does not depend on budgets, deadlines or anything professional game creators will have to account for. The only constraint in here is yours truly and the events taking place in his personal and professional lives.

What does this mean? Well, first it means the timing of this log will be erratic at best; except perhaps at the beginning where a backlog of posts will try to narrate the ideas and coding journey that led the experiment to where it currently stands. Second, it means that the individual posts will cover aspects as they come; in other words, a gently chaotic series of posts is to be expected. :-)

With that out of the way, I do welcome constructive feedback, comments and ideas with open arms. Please feel free to comment on individual posts, or drop me a line directly here. Trollish content shall be swiftly ignored and/or destroyed, as appropriate; I have neither the time, nor the willingness, to deal with that kind of shit.

What this project is all about

Plainly put, this is an experiment by a one-man band to build a procedural galaxy generator, with varying levels of detail:

  • Galaxy size, shape, and general physical characteristics; galaxy age is something I plan on introducing in the future
  • Individual systems; at the time of writing this, no binary/trinary system can exist in the generated content. Sorry! (plus, it would be hard for me to simulate orbits in a three-body system…)
  • Stars data: from temperature to mass to lifespan and phase (main sequence/ giant /remnant)
  • Planets (called satellites) and moons (called subsatellites) physical data: masses, radii, orbits (no eccentricities at the time of writing this), etc.
  • When relevant, describe the structure of planets and moons: cores, mantles, crusts and atmospheres. This includes, amongst other things, chemical composition, expressed in compounds and/or pure elements.

EventuallyMaybe the data explorer will evolve one day into becoming a game. That's the end … errr … game. But at the moment, data only it is.

Procedural realism

While I strive to output generated content that "feels" realistic, several constraints weigh in on its nature:

  • Speed: for obvious reasons, stuff such as a full 3d convection model of an atmosphere is 1) beyond my technical knowledge and 2) way too slow. Especially 1)
  • Easy seeding: most if not all values generated are the result of continuous pseudo-random noise generation functions. The noise functions selected will sometimes be right, sometimes slighty wrong, sometimes blatantly erroneous! When you suspect the latter occurs after viewing some very weird data, please shout!
  • I am still missing some data! :-) Missing values such as critical points, triple points and melting points lead some compounds to end up in states that are completely wrong - or even nonexistent. I am fully aware of this issue, and the blanks are gradually filled.

The end result is the over-simplification of many aspects. But so far that result seems to be acceptable. Judge by yourself in the data explorer!

On sources

Obviously, realism means real. As a consequence, I have strived to build the experiment with the following rules in mind:

  • Keep it as simple as possible
  • Only try to implement things you think you understand
  • When in doubt, look for litterature written by people way more specialised and competent than you are

The end result is a gigabyte of pdfs and various images on subjects as varied as:

  • Evolutionary tracks of stars
  • Stellar remnants
  • Procederal generation (no shit!) and (math-heavy) random distributions
  • Planetary formation theory
  • and so on.

For example, the kind of graphics I had to look for, understand and run "feasability tests" against:

  • Evolutionary track of stars
  • Planet escape velocity and temperature
  • Planet mass/radius relationship

Links would include arXiv, Wikipedia, Nasa, ESA and countless other places.

What is this built with?

Very quickly, this whole experiment is built with:

  • Python: the main glue around everything.
  • Rust: is where the number crunching happens
  • Front-end 100% custom. No React or Angular round these parts.

When it is released, the 3D data explorer will be making use of:

  • Babylon JS
  • Django channels for lovely websocket communication

I think a browser based game is the way to go, especially with WebGPU and wasm, which I have started to experiment with. A "heavy client" is not something 1) I am a fan of 2) I can take on my own; i.e., it requires way too much work and expertise in domains I know sweet F.A. about.

If at least slightly technically inclined, I invite you to read the following posts, which trace back the changes the prototype went through before reaching its current state:

What is the dream?

Yes, there is one:

  • Completion: I would consider completing the experiment as a huge personal success.
  • Calling it a game: because let's face it, even though a large amount of notes and ideas have been pinned down and written, this thing (as of today) is still just a glorified excel spreadsheet procedural data navigator :-) Not quite there yet…
  • Community: very distant of course, and will see the light of day only with something playable.

Please signin to add your comment.