In this update, a lot of small enhancements and a couple bigger ones... Here are a few of them:
- Better text rendering
- Incomplete GUI for landing on planets
- Galaxy generator
Let's start with text rendering. For my GUI, I am using "Gwen". I've mentioned that before, I believe. I found an interesting flaw in Gwen that inhibited my ability to correctly render multiline text. I added the necessary parameters and now text renders in the correct spot, at the correct size, with the correct line height. In addition to this, I have expanded upon the basic font management so that it better manages all of the different faces and sizes, generating them on demand.
Planets. I have solidified the planet resources and created the necessary spawning code. Planets can now be spawned by resource name. Resources allow numerous things to be specified, including diameter, rotational speed, model, texture, display name, description (when you land), and more. I separated model and texture here so that it would be easy to reuse planet models between different sizes and textures.
GUI. I 3d modeled and rendered a GUI for when one lands at a planet. It's not complete, but it's not bad either. I definitely want to make some modifications, though. Good enough for now. I sketched the rest of the GUI and it will take shape when the time comes.
Galaxy generator. This is the big guy. I started by thoroughly defining the parameters of the galaxy. I did this on paper, in words. I needed the galaxy to be unique enough every time a player started a new game that it gave replay value to the exploration aspect of the game... But I also needed the galaxy to work with the preset story lines. To accomplish this, I let the resources define all of the possible types of planets that could be spawned, and based on their prefix used them in certain contexts. If a planet resource is prefixed to be used as a filler planet, the generator will use it as part of generating the whole galaxy. After stars, planets, black holes, asteroids, etc are generated, the generator takes a pass at inhabited systems. The parameters I defined state that the solar system is fixed and it is the starting point of the human civilization and the heart of their inhabited systems. From there, it works its way outwards, randomly assigning human system resources to systems and planets until the resource pool is exhausted. It then fills out the rest of the inhabited systems based on their relation to the human systems, as defined in the civilization resources. A few parameters allow one to control how the systems are spawned. I am going into more detail still. I am trying to paint as many layers as I logically can onto the galaxy to give it a unique and realistic feel. Exploration is going to be a key aspect of the game, after all, so I want to give it a lot of value.
Next update I will have videos and screenshots. I need to refine a few things first.