More talk prep. Gonna have another go at persuading people to cut their tiles along the dual grid instead of the main grid. I genuinely don't understand if this is rare because people don't know about it or if there is some drawback I'm not seeing.
Most gameplay logic (like collision and navigation) should still happen on the main grid. And all object-like sprites, like characters, houses, etc, should also go on the main grid.
The 3 fundamental features of any tile based system are Houses, Rivers and Roads.
Again. You should definitely keep both concepts around in your code. Most gameplay will still happen on the main grid. The dual grid is mostly for field-like background tilesets
Correction: The 4 fundamental features are Fields, Houses Rivers and Roads. I forgot Fields, which is ironic since that's what the rest of the thread is about. Terrain is a type of Field.
Ironically, according to this typology, the houses in Townscaper are all made of Field, not House.
A long time ago I started a project with tiles on edges, verts and faces of a hex grid. So like a dual grid and a main grid at the same time. I didn't have the skills needed to make it feasible back then, but it's a solid idea that might be worth another go sometime in the future
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I figured out how to mimic Thread.Sleep() in Burst! Just store time in a static unsafe NativeArray! Then you can write to it from the main thread and read from it inside a job! Probably super bad in many ways but good enough for visualization and debug!
An early look at grass billboards. I really like how they add a completely new kind of shape and detail frequency.
Creating nice (subtle) outlines is always a quite technical business. Even more so on grass billboards. I want a strong outline when silhouetting against a cliff or the sky, but not against other grass.
In the vertex shader, my grass gets to sample that contrast texture both where they stand, and also raycast into the background. The outline strength is determined by the difference between these two samples!
Not perfect, but pretty good! Not too jittery when turning the camera
I'm exploring the Half Edge data structure. Feels like a really lightweight, powerful and versatile way of representing topology. A big thanks to everyone suggesting I look into it.
Being able to effortlessly represent n-gons is much more convenient than I expected
Trying out making some nice comment schematics too. A bit more laborious than drawing it on paper, but definitely easier to keep track of
Imma talk about my new island generator at Sweden Game Conference (@SwedenGameArena) on Friday (no idea if its gonna be recorded). Naturally, I'm preparing by implementing some nice timing and visualization.
@SwedenGameArena While implementing said visualizations, I discovered several buglets, glitches and irregularities that were not obvious before. There's probably a lesson in there somewhere.
My WFC is failing quite often, as you can see. I blame the rivers. WFC is bad at long thin things, and it's even worse if they are directional. Fortunately, I've managed to write it threaded and fairly optimized this time, so at least it's failing fast
I regret to inform you that I've relapsed into procedural island generation
Everyone is like "worldscaper when" "bad south when". No one is like "oh, what algorithmic approach are you using?"
I'm able to do a couple of things here I've always wanted to, but never been able to before:
- Properly combine seamless soft slopes with distinct sharp cliffs.
- Erosion valid terrain with no local minimums.
- Get the best of both square tiles and triangular tiles
The cliffs and mountains in Humankind look absolutely fantastic. Seamless, smooth, yet sharp and expressive. I can't figure out how they're doing them... is it a tile-based approach? A mega texture, baked on the fly? Some combination?
It looks good enough to be properly eroded at a huge resolution at load time. Yet there are repetitive elements (and even occasional mirrored tiles), which heavily suggests some tile-based approach.