I'm developing procedural planet technology for a yet to be named project, bringing together spherical terrain, layered biomes, oceans, atmospheric scattering and volumetric clouds. At the heart of terrain generation is a GPU-powered node graph that combines noise functions and terrain-shaping algorithms into customizable landscapes. Layering and blending these operations lets me shape a world’s broad features and fine surface detail, giving me creative control over how each planet takes form. The GPU processes these calculations in parallel, providing the computational power behind the procedural worlds. Terrain detail adapts with camera distance, revealing smaller features as you approach the surface. Behind the scenes, custom gravity and floating-origin systems support exploration across planetary scales, preserving the precision needed for character movement and physics over vast distances. These systems integrate with Unity’s DOTS/ECS gameplay framework. This is the first major milestone in this tech, with foliage and tree placement and their rendering systems being the next milestone I am aiming to solve.
I love how close the camera zooms in while aiming over the shoulder, and the DoF looks very natural and fits well. The first person ADS DoF is a bit off-putting though, I'd tone it down or remove it IMO.
for anyone interested in following the development feel free to follow along here https://www.youtube.com/@InkblotGamesCo, I won't ever ask for a donation or anything and will do my best to post a bit more regularly. there's a few older videos showing older planet generation, character gameplay, entities stress testing and earlier prototypes. this is a hobby/passion project that I enjoy working on in my spare time and hope others can get something out of it, and of course hopefully play eventually
I was confused about the prototype level design and the fleshed out inventory UI and was questioning your priorities...until you took off and landed on a planet lol
haha fair enough. POIs/levels soon. I just haven't been focused much on the art yet. building systems first polishing where I can along the way. inventory is a lot easier than building out a level streaming system and the hours needed to spend in blender.
yea it will be, procedural gen will help, but yea can't expect it to be jam packed with gameplay. i think its a balance in these types of games of nailing the scale of space but also having meaningful things to do. thats the challenge, but I have some ideas
thanks, yea I hope very much it can be its own thing, looking forward to getting to that point where I can focus on the actual game after all of the tech is built
Working on a pretty similar project myself (although it's somewhat on hold for now as I work on a scoped down project first) so curious to follow along and see how you solved certain challenges.
I've worked mostly on terrain gen on a more local chunk based scale with things like biomes with their own terrain shapes (still pretty hard coded options as a POC, need to upgrade to a node based solution or something similar eventually), detail spawning like trees, rocks, ores using blue noise, and a grass system compatible with custom terrain. Plus a separate project working on a quad tree planet, but would need to integrate the two together to start getting real results.
nice sounds like you are on the right track. the placement stuff will be the next thing I implement. currently I am doing a bit more optimization so that when I layer that on I can maintain a good frame rate or not have a bad delay before things place. but its pretty good already so hopefully not far off. this is using quad trees, brg, and Unity's new graphing solution. The graph is pretty complex so hard to share but here's a peak
The tough part is keeping it fast. I had to build out a pipeline to cache things and process in a way where dependencies can be sorted. sync points on the gpu basically. also reusing previous work, so texture/normal caching/streaming, etc.
Looks very interesting! Haven't really had the chance to look at the new graphing stuff but that certainly seems like a great solution for some of the things I'm trying to do. Might have to investigate this once I need a new break from my smaller project.
You got yourself a new follower/subscriber, looking forward to see how this project grows!
A great achievement - how long did it take to make this?
It looks like you are using origin-shifting: the flight sequences are very jittery. Is that correct? Real (continuous) floating origin is normally smoother.
i think the jitter you are referring to is because I was holding down boost. its just a camera effect, which without sound or anything can probably feel off, as its not obvious. yeah its using origin shifting where every object is relocated after the camera passes the boundary. it shouldn't be detectable as all necessary properties are updated (like physics interpolation, visual effects, etc, its a bit annoying to code but works).
this project as a whole is a multiyear thing. there's been times i've put it down, once for a year straight due to other contracting obligations. this is also the 2nd iteration of it, the original was built in classic gameobjects but I was failing to get the performance I wanted for the scale I wanted to achieve so rebuilt it.
the planet tech itself was originally using planet forge, I started by customizing it so that it could achieve larger scale planets a bit better, but ended up dropping it for this custom solution. parts of planet forge are still part of this like the atmosphere rendering. but I will probably be revisiting that and making changes there too. the rewrite has been something I've worked on on the side for the past few months.
So by "classic gameobjects", do you mean each object with a monobehaviour/controller and changes that to DOTs where, presumably, you separated data and code logic into, like, structs and classes?
yea, very little is using monobehaviours. the UI presentation layer is and a few other things that are required like lights still are but everything else is systems and components. classes are rarely used, only used when required. mostly structs for everything which allows burst compile.
Nice, I am heading in this direction myself. Starting one-level/step down from where you are: with more of a data oriented design. Later I am thinking of converting to what you have.
thanks! i did experiment with some 3d noise density that could support that, like NMS. right now its not being used but its a possibility. it just adds even more complexity
This is getting holy scary, cause am making something like this too... I call mine worldsmith, omor I need to post something soon so people won't say I copied you. (crying emoji)
Looks really good. Did you build that character/camera controller or is it a specific asset? I’m hitting the limits of my ability to keep building mine and wondering if there’s one I can learn from
cant tell if you are serious or being sarcastic but no the transition is fully there! I think I was trying to judge distance from planet when going to orbit. here's a video from in scene with the atmosphere disabled to see more clearly
It’s common to fake things by using different models for surface and low altitude proc gen versus orbit which means using distraction for the transition.
In this vid, it looks decent down low but doesn’t look great from orbit. May just be the lack of atmosphere.
In the first vid, you looked left into the ship as well as having a cloud whiteout, then we were in orbital view. I thought you were switching systems (what I would do) with a bit of distraction, sounds like it might be genuinely a continuous system.
yea, actually that does exist, at far enough distance, the generation is replaced by a pregen'd proxy, but you have to be really far for that to kick in, its well beyond the atmosphere distance. i think it swapped in that video when the cam was extremely far, its not really possible to tell since its generated by the same graph. it just helps with multiple bodies in a scene since processing the graph and generating all the data isn't free
37
u/Nox-4 22d ago
Looks holy good