Oskar Stålberg Profile picture
Oct 13, 2021 7 tweets 4 min read Read on X
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.

Image
Image
Image
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. ImageImageImageImage
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 Image
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 ImageImageImage

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Oskar Stålberg

Oskar Stålberg Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @OskSta

Jun 17, 2023
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!
Well not static, cause Burst wont allow that. But an unsafe array that's referenced both inside the job and outside in a main thread timekeeper.
Amazing how useful Burst is once you disable all safety restrictions!
Read 4 tweets
Nov 10, 2022
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.

You might recall my contrast texture:
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
Read 6 tweets
Nov 11, 2021
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 Image
Read 5 tweets
Oct 12, 2021
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
Read 4 tweets
Oct 11, 2021
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
Read 6 tweets
Dec 2, 2020
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.
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(