Generate and navigate around a procedurally generated 400 billion star galaxy, on Android, Linux and Windows. This is being written using C++, Vulkan and Dear ImGui. More details coming soon, but here are some screenshots. Pre-alpha (a demo of the star rendering engine) now have Android, Linux and Windows versions available for download. If you want to be informed of Galaxy Generator updates, please contact me and I will add you to the notifications list.

Note that this is still very incomplete, all I have is most of the star rendering engine. As yet there are no non main-sequence stars, no planets, and even displaying stars close up is not complete yet.

Note: these screenshots were taken with very small screen sizes to fit on the web page, so the side panels use up much more of the screen than they would when actually running it.

Screenshot inside a galaxy showing catalogue!

Screenshot showing the whole galaxy!

Screenshot showing the whole galaxy!

Changelog

I’m starting the change log with version 0.1.0 as the initial release. Some 0.0.x versions were made available for portfolio/testing purposes, but I did not announce then anywhere and did not keep full change logs.

  • 2024-05-23 Version 0.1.2 (all platforms)

    • More information about stars - mass, rotation, lifetime, age
    • Make control pane font match the rest of the fonts - variable width and no more ugly scaling
    • Added ‘Item Gap’ in the user interface menu to space out control items a little
    • Increased scroll bar widths
    • Changed I/J/K/M movement keys to Y/G/H/B
    • ‘I’ key now toggles star information for selected star
  • 2024-05-16 Version 0.1.1 (Windows only)

    • Some changes to the internal text renderer to attempt to trigger less false positives from virus detectives
    • Compiled with /0x rather than /O2 to remove Microsoft Defender trojan false positive
  • 2024-05-15 Version 0.1.0 (initial release, all platforms)

    • Working on Android (version 7 or later), Linux (Debian 11 / Ubuntu 20.04 or later) and Microsoft Windows 11.
    • Core rendering engine and game loop
    • Procedural galaxy generator with a 400 billion star galaxy
    • Basic navigational controls
    • Save/Load functionality
    • Ability to set the maximum displayed magnitude and the frequencies shown in red/green/blue channels
    • Star search by distance, ability to navigate to a selected star
    • Ability to set font sizes, left/right control panel layout
    • Ability to control some aspects of the display to tune rendering vs. performance

Road Map

The Galaxy Project generates and allows navigation around a procedurally generated 400 billion star galaxy on Android, Linux and Windows. This is being written using C++, with Vulkan to handle the graphics and Dear ImGui for the user interface. There either three or four phases to this project. Here is each phase listed with a brief overview, and a list of the next steps.

  • Phase 1: Core generation and engine. This is well underway - there is a galaxy of stars that can be navigated. This has been ported to the three supported platforms (Android, Linux and Windows). Next steps:
    • Improve searching, include filtering, sorting by fields other than distance, more display fields
    • Better controls, including being able to navigate using the mouse/touch-screen
    • Improve game saving infrastructure, including saving more state
    • Mode for hiding control panel so that a screen with just stars can be shown
    • Improve performance and power use (always on this list)
  • Phase 2: Modeling astronomical objects. This is all done using procedural generation. Currently there are just main sequence stars with basic information. Phase 1 and 2 will provide a sandbox mode when completed. Next steps:
    • More information about a star - magnetic field, stellar wind, chemical composition
    • Non main-sequence stars, brown dwarfs, wite dwarfs, neutron stars, black holes
    • Planets, moons
  • Phase 3: Game play - single player. There are two options I am considering for game play.
    • The first option is a 3X - Explore, Expand, Exploit (no Exterminate) where a player starts on a single planet with limited resources and technology and explores part of the galaxy, looking to make discoveries and find resources to improve technology and build ships.
    • Another option is a single ship version, where a ship (or small fleet of ships) goes from system to system looking to build resources and find planets that it can seed colonies. Neither option has combat, as I really want to focus on exploration.
  • Phase 4: Game play - multiplayer. It is very unlikely that this will generate enough interest to make a multiplayer version, but I’m leaving the possiblity open. A multiplayer version would be completely cooperative in that there would be no combat and it would be set up to limit griefing. It would be quite possible to play in a multiplayer game as a single player and ignore everyone else, but the way of doing well would be to help each other - the galaxy is big enough for everyone.

Known Bugs

  • On Android, stars are not rendering correctly when you get close enough to see the radius.
  • In “Display Tweaks” here is a bug with changing the number of stars that can be displayed on the GPU. Changing this has been disabled for now.
  • In “Display Tweaks” the multisampling level changing doesn’t work. This option has been set to ‘on’ and hidden for now.
  • In “Navigation” there are meant to be options for setting the observed wavelengths. These interact badly with foreground star display, so have been hidden for now.