I'm prepping for a talk in Cambridge next week, thus all the gifs. I made my generator also output pure triangle/hex and square grids, to illustrate why I'm going for my mixed approach.
It's a bit unfair of course, as I've built my tileset with the mixed grid in mind
Oh, and I finally got this lovely rock feature to show up! When working with WFC, sometimes you build a cool tile and it wont show up in forever, since it's conditions are so specific. You forget about it, and then suddenly: poof!
• • •
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
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.
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