Ad Lumens - About a procedural galaxy experiment

About Ad Lumens

Ad Lumens is an experiment on galaxy procedural generation. Currently at an early stage of development, the hope is to make it evolve into a browser-based game.

It is nothing that hasn't already been tried and done already by numerous and very skilled people; but I wanted to give it a try myself. :-)

TLDR

If you are in a hurry and would prefer to dive right in, go straight to the data explorer. There, you can navigate several galaxies, and consult details about stars, systems, planets and satellites. Please note the data explorer is currently in a constant shifting state, due to it being not finished! So if you are lucky enough to find a planet extremely similar to our Earth, it might not longer be there on the next day!

Feeling curious? Then head over to the 3D explorer.

If not in a major hurry, feel free to read on a little; several posts also document the past and ongoing progresses, questions and developments on various subjects.

The data explorer

In its current state, the data explorer section offers a way to freely navigate one or more galaxies, whose contents are 100% procedurally generated. For example:

It allows you to discover the contents of a universe at various levels of detail:

  1. at galaxy level, to get a feel of the overall galactic shape;
  2. at star level, to know its stellar characteristics such as mass, age and so on;
  3. at planet and satellite level, to explore type, mass, habitability, all the way to the material/resources making up their cores, atmospheres. etc.

As mentioned above, the experiment is not a "finished product" and is in a constant state of change/improvement. Its goal being to pave to way for what's next, this "instability" will not change until I consider the data quality output to be good enough.

The 3D explorer

An immersive experience, where you can navigate galaxies in full 3D in the browser. New features are gradually added, improvements worked on and bugs (cough) fixed in a cough timely manner.

Still new, still reasonably basic, but being worked on. It will gradually integrate the following:

FeatureDescriptionStatusComments
Galactic overviewA "10-mile high" view of galaxies. Overall shapes can then be viewed.DoneShader work to be done. The overall appearance of galaxies when viewed from far away is still not satisfactory.
In-galaxy navigationThe real stuff: navigate your chosen galaxy in 3DIn progressInvolves re-connecting the front-end layer with the new Rust back-end (was the C back-end before) and several Javascript improvements. This is now done and various improvements are in the works: server-side procedural parameters for texture generation, to enable the client to visually "mirror" the display-less server-side data.
MiscellaneousVarious QoL improvements, such as bookmarks, etc. Naturally though, this will require accounts; so that's a rather significant dependency.In progressUser accounts are available - bookmarks are now done and seem to be working quite well!

Next stages

The objective is for the experiment to turn into something more formal: a game. This would be a major personal accomplishment, not to mention opportunities to learn of lot in the process. :-)

I have documented many ideas about the game mechanics, etc. but since they will be all based on procedural content, I decided to prioritise the quality of the latter and gradually integrate "human content" into it.
First things first, and in logical order:

  1. <You are here> Procedural content, with the ability to navigate it and control its quality/level of realism. This is the reason why the data explorer exists
  2. <Next stage>/<you are kind of here> Procedural content, with the ability to navigate a galaxy in 3D
  3. <In the future> Proper game data, slowly and carefully integrating user-defined data such a ships, research, bases, population, skills and equipment, into the procedural universe. You are also kind of here, as the tech tree is now available in very initial form.

What kind of game?

Nothing fancy functionally, a 4X sci-fi game: exploration, conquest, alliances & conflicts, resource management, etc.
Major inspirations are: Master of Orion, Elite, and many others!

Technically, the game will be browser-based and make use of WebGL and/or WebGPU elements, using frameworks such as Three.js or Babylon.js. I am currently verging towards Babylon.js but who knows.
Streaming data over websockets will be a must-have, which will have some performance requirement consequences, especially server-side: lag to be minimised, etc.

It will not be action-oriented, nor fast paced, but will not be turn-based either: think "server-side real-time" with a time distortion/multiplier applied between the real world and the game world. For example, one minute server-side would be equivalent to 30 minutes in the virtual world, or 5 hours, or anything. But we are getting ahead of ourselves, as a future post will cover this in more detail.

In closing

I hope you enjoyed reading this little introduction to Ad Lumens! I welcome any feedback or reaction; you can do so by dropping a comment in the log or directly here.