Skip to main content

Lists on lists on lists

It's alive!! Well the very infantile functional proof of concept for the idea that is the procedural generation for the universe of Galliventurer is alive.



Above is the result of a single generation run at the time of writing (hopefully I remember to save a copy of that function and update the call as it will soon be changing). It's quite rudimental at the moment. A random selection from a few different lists without any inter-relational weights or even the possibility of child entities. At the moment (again time of writing) the objects "discovered" aren't even saved! 😱




In the very near future however, the procedural generation will have a few steps. The beginning being a random selection of an entity type. This very top level will consist of:
  • System
  • Stars
    • dwarfs
    • giants
    • neutron
  • Planets
  • Asteroids
  • Comets
  • Junk/debris
  • Substellar object (brown dwarf)
  • Moons
  • Nebula
From this first there will be a series of inner lists for each type. Certain types will have a children property with a range of likely amounts of sub entities. For example a system would have a children range of 1 to 3 stars; a star would have a children range of 2 to 100 which could be planets, asteroids, junk, substellar, etc and so on. The beauty is, everything is referential. An object has it's properties: uiddata (colour, size, life time, etc), optionally (dependent on type) an array of children uids, and physical mapping through an array of vector coordinates in neighbours & possibly game centric id references like shaders, terrain maps, etc.

Side note, we're currently moving house, not by choice but hey that's the rental life. Whilst packing up my office area, I stumbled upon my raspberry pi. I think I've found my first embarking pylon. Periodically & regularly running the procedural generation and punching it to the database!

Comments

Popular posts from this blog

Random Generation That's Not So Random

While I do want the Galliventurer universe to be procedurally & randomly generated, I don't want it to be truly random. There needs to be a modicum of probability involved. Some weighting so that some things are rarer than others. After all we can have too many diamond covered planets or uranium based suns - as you can see I haven't actually started thinking too much about the composition of the planets, stars, etc. Keeping this probability based random selection in mind, I'm going to be using a dynamically weighted series of arrays to randomly select properties for entities in the Galliventurer universe. Using something very similar to (or based on) this article by Michael Czechowski https://observablehq.com/@nextlevelshit/rejection-sampling-in-javascript . The main bit of complexity here will be the values of a randomly selected property will affect the weights of the next selection. For example the size of a star will greatly change the weight of the probabi

Where's the Fun?

When Galliventurer was first conceived in the bowels of my brain it was during a particularly good session of playing No Man's Sky. I had just traversed several different planets finding old ruins and exploring as I went. The exhilaration I felt zipping around in space and then landing to explore - it was this feeling and the want to continue that on my phone, which persisted for days & weeks, was the main reason I even considered starting development on Galliventurer. No Man's Sky is possibly one of the most ambitious, fully realised games in history - yes it took them a while to get there, but I don't see Star Citizen releasing anytime soon - so it goes without saying Galliventurer will not be anywhere near that ambitious. A small glimmer of space flight amongst the stars with endless exploration. But then what? Subin Kim's freighter concept This has been a constant thorn in my frontal lobe since my first flight through the current build of the game. Sure you ca

Galliventurer - Dreaming of a Universe

n. Galliventurer - one who adventures whilst gallivanting. We have a name. A compound of the words gallivanter & adventurer it fits the game quite nicely. It will also be the name of the player's ship (though, you may be able to have many ships throughout the game). Also trying something a little different for this project, practicing what I preach as it were. I'm actually going to plan this out a little bit before I ever actually write any code. Oddly I feel that most of my hair brain schemes of previous years have had a fast paced "rush to market before someone else thinks of this" attitude. So obviously there was no time to stop and take a moment to put any thought in before code went into editor. None of those projects ever made it out of the proof of concept phase oddly enough, no prizes for working out why. In the spirit of all this, things are different this time around. Having given it even two minutes of thought there are several issues.