Finally making a start on generating planets in my C++ project. I'm thinking of starting from Voronoi regions to define biomes 🤔

Starting from a random distribution of points was causing some obvious problems. Firstly there's the chance of some very small regions, but also blending the regions together is more difficult when some points are bunched together - as the distance from the points to the boundaries is very inconsistent.

Starting out from a Fibonacci sphere of points seems like a good alternative - will just need to decide on a way to offset them from here.

Throwing a few different layers of Perlin noise on top of this already starts to make it feel like navigating a planet. Each biome has a random set of multipliers for each noise level.

The main problem I have is that the noise computation is way too slow when generating the low LODs for the rest of the planet. I either need some much cheaper noise functions (maybe a 3D texture lookup) or to be able to do much fewer samples, or probably both.

boring game programming 

Since I had the day off today, I spent the day working on my own project instead. I improved the blending between noise values between different biomes. I was working on adding a proper flow for planet generation and player spawning, and got sidetracked into adding a frontend UI to test it from.

boring game programming 

Today I'm doing some more mundane work cleaning up the way that entities are managed (mostly old code that I wrote a few years ago). This should help with how players are spawned, and for spawning procedural objects in the world - plants and animals and stuff.

But I don't have any screenshots to show for it 🙃

No programming today, but here's a post I wrote and never got around to publishing, about implementing collision detection. Hopefully someone finds it vaguely useful

boring game programming 

Back on the personal project today. I had to fix a nasty bug where random triangles were sometimes appearing in the terrain, which only appeared on my laptop, and only after upgrading Ubuntu versions.

Turned out I was passing "size of elements" somewhere OpenGL was expecting "number of elements", but up until now on different PCs and OSs this bug had been producing no visual artifacts 😭

boring game programming 

Next up I've been adding to the basic UI tools in the project, making them support different aspect ratios correctly. Doing this because I want to add proper mouse input to the UI and should probably make sure it works if someone has a weird monitor

Last week I fixed up my sky shader to work with spherical planets, and I worked a bit on the type reflection system that I have.

Today I fixed some bugs and did a first attempt at procedurally spawning objects on the planet surface.

Feels like this little project is finally starting to have cool things to show 😊


Trying out procedural volume textures to get seamless texturing across a terrain. Landed directly in the early nineties.

Sign in to participate in the conversation
Gamedev Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!