Over the past month I have been working on multiple things simultaneously. All this work is still unfinished, so there is nothing significant to show.

  • Colors of orbits, labels and markers can be adjusted in the GUI skin config file
  • Added new soundtracks
  • Large drop-down boxes (like the module selector in the ship editor) could be scrolled with mouse wheel, and are adaptive to the screen resolution
  • Drop-down box behavior changed to classic (stays opened until left click)
  • Labels are drawn with the big font
  • Variables to control labels and marker size
  • All variables can be animated using script command Interpolate
  • Changed terrain error metrics to a higher level of detail
  • CPU/GPU performance counters, improved the debug screen
  • Asynchronous downloading of generated textures from GPU back to CPU
  • Many fixes in VR, related to coordinate system and Vive controllers rendering
  • Multiple optimizations in engine
  • Many bugfixes on AMD and Intel graphics
  • New classification of planets, including iron planets, carbon planets, etc.
  • Changed the format of localization files, to support new planet classification
  • Added “eng-gui.cfg” localization file
  • Added displaying, generation and usage of metallicity data for stars, the parameter [Fe/H] used in astronomy
  • Separated specular power parameter for water and icy surfaces on planets (can be adjusted independently)
  • New way of displaying binary planets in the solar system browser
  • Added probability settings for very massive moons and binary planets to the config file
  • New elevation maps of Pluto and Charon, released recently by NASA (WIP)
  • Also, the integration of Duke’s new nebulae still requires a lot of work, but it was delayed due to the above tasks.

    Probably the most interesting feature for you is the new planet classification system. I made a large post on the forum regarding it. The new planet classification introduces these major planet classes:

    terra – rocky planet (combined old terra, desert and selena classes)
    aquaria – water/ice planet (combined old oceania, ice world and titan classes)
    carbonia – carbon/carbid/diamond planet (new class, hypothetical carbon-dominated planet)
    ferria – iron/metal planet (new class, hypothetical)
    neptune – ice giant
    jupiter – gas giant
    chthonia – core of an evaporated ice/gas giant, or a helium-rich giant (not sure about this class)

    These major classes could be appended with the prefixes mini-, sub- and super-, defining the size subclass: superterra, subaquaria. They are also appended with several words, describing some properties of the planet, such as temperature (hot jupiter, warm superterra, cold aquaria), atmospheric pressure, presence of oceans, life etc. Work on this system is still in progress.

    In the forum thread I’m asking specific questions about text formatting in other languages. Because Russian uses grammatical genders for adjectives, it is not so easy to translate “warm rocky terra” into Russian by just replacing the words with their translation. The same is true for some other languages; sometimes even word order differs from English. I implemented some primitive “grammar engine”, which takes the noun gender and changes the gender of adjectives in the classification string.

    New planet classification also required changes in the star generator. It is necessary to generate and use the carbon-to-oxygen ratio in stars somehow, which is linked to stellar metallicity, or [Fe/H]. The carbon-to-oxygen ratio is used to generate carbon planets: it is theorized that stars with this parameter greater than 0,8 must produce a population of a carbon-dominated planets (our Sun’s value is 0,55). The metallicity parameter is strongly correlates with the probability of hot gas giants, so now it can be used for more realistic generation of planetary systems. I have updated the star generator so it now generates some procedural distribution of these quantities among different populations of procedural stars (type I and type II populations). Some catalog stars already have FeH parameters – I kept it as a placeholder for the future, and finally that future has arrived. Other catalog stars witch have no FeH and CtoO (carbon-to-oxygen ratio) parameters in scripts uses procedural generation based on their location in the galaxy, as with procedural stars.

    Another feature is a change in the solar system browser. It now displays binary stars and planets in a more eye-candy way: drawing both companions (primary and secondary) in the same cell:

    Note the new planet class names on these screenshots. This is not final, work is still in progress.

    Double gas giants looks a bit eerie in the browser:

    When you enter the satellite level (right-click on a table cell), it displays the parent barycenter in the first cell, then the two major components, then other satellites. Thus the option “Show barycenters” is not needed anymore.

    This new display style very much helps in hunting binary planets. A few minutes of exploring the galaxy makes me realize that binary planets are way too common in SE (even binary gas giants!). So I significantly reduced the probability of these objects. I also moved these probabilities to the config file, so they can be tweaked more easily now.

    Relative sizes of objects in the browser previews are not linear, but logarithmic, as before. This makes it possible to see Earth next to Jupiter with some details, not as a tiny dot 3 pixels across. The “Real sizes” option is still there, you can access the solar system browser’s settings by pressing the gear button. The base of this logarithmic formula is now moved to the config file, so you may adjust how “zoomed” small planets will look compared to gas giants.

    The browser displays two binary planets in our Solar system – Earth-Moon and Pluto-Charon. This is because the presence of a common barycenter is used as the criterion to display the system structure in that way. Earth-Moon probably should be excluded from this list, either by adding a special key to the script, or changing the browser’s behavior to take relative masses or a binary companion as a basis, not the presence of a barycenter.

    Other thing that I am planning to do is re-classify the secondary companion of a binary planet as a “planet” instead of “moon”. Then I must change the naming of procedural objects: if the binary is the third planet from the star, its primary will have name “3a” and secondary “3b”. The outer moons will have the usual numbering, “3.1”, “3.2” etc.

    I am also working on new Pluto and Charon maps, based on a maps recently published by NASA. The greatest part is DEM (digital elevation model) maps – now we can create a 3D terrain on Pluto! Here is a preview. You can see that the map is a bit noisy (because I processed only a jpeg version of it), and it is significantly offset with the color texture. I must download a lossless versions of both DEM and albedo maps form the same source, process them (fill holes, fix discontinuities) and convert to SE format. I am also experimenting with enhanced ice specular, you can see it on the right part of the screenshot. It could be useful to render clear smooth icy surfaces on some cold worlds with atmospheres (airless bodies can’t have smooth surfaces due to erosion caused by micrometeorites and radiation).

    You can discuss this post on the forum.