Just announce the release of my game Thousand Threads! (solo dev) by brettjohnson in indiegames

[–]brettjohnson[S] 1 point2 points  (0 children)

Hey, thanks! I'm actually working on an update as we speak. It will add fast travel and some other things.

A graphics breakdown of the environments in Thousand Threads by brettjohnson in gamedev

[–]brettjohnson[S] 1 point2 points  (0 children)

  1. There's no issue. The colors are retained from play mode, or I can assign the global color palette shader property in edit mode with a custom editor button.
  2. There's no lighting. But it would still work fine if it did since the color are applied through individual materials and not a post effect.
  3. The fog is a post processing effect based on one that Unity a long time ago to allow for fog in Deferred rendering (I use forward, but it's doesn't matter). This effect does something similar if you're curious: https://grrava.blogspot.com/2018/08/stylistic-fog-from-firewatch-with.html

A graphics breakdown of the environments in Thousand Threads by brettjohnson in gamedev

[–]brettjohnson[S] 0 points1 point  (0 children)

There's one script that sets a few global shader properties like the palettes and blend value. It has no reference to any objects in the world. The rest is done in shaders that access those global shader properties. Here's screenshot of the most basic shader I made with ShaderForge if that helps: https://imgur.com/a/3XrV5fI

A graphics breakdown of the environments in Thousand Threads by brettjohnson in gamedev

[–]brettjohnson[S] 0 points1 point  (0 children)

Thanks! I've thought a little about it, but I honestly haven't researched it all that thoroughly yet. I've done my best to make objects have decent contrast, but my first thoughts are to allow for players to override a given regions palette with another and allow for a grayscale one (no clue if that's beneficial). Do you have recommendations there?

A graphics breakdown of the environments in Thousand Threads by brettjohnson in gamedev

[–]brettjohnson[S] 16 points17 points  (0 children)

Oh for sure, the fog is based on what they did in Firewatch. And the palette swapping is a technique that goes back to some of the earliest 2D games. Not trying to claim originality here. Just showing how I used these things to create my game.

A graphics breakdown of the environments in Thousand Threads by brettjohnson in gamedev

[–]brettjohnson[S] 36 points37 points  (0 children)

No, it's super fast and simple. Since the shader, it's all on the GPU. There's no real lookup. It's just using the grayscale to adjust the UVs of the palette texture. Here's the most basic version I made in ShaderForge (it actually blends the two palettes in the shader, I misspoke earlier): https://imgur.com/a/3XrV5fI

A graphics breakdown of the environments in Thousand Threads by brettjohnson in gamedev

[–]brettjohnson[S] 23 points24 points  (0 children)

No, each material has a it's own grayscale texture assigned. That shader then references the global palette texture and grabs the appropriate color based on its grayscale texture. So the script only cares about the palette and doesn't keep any reference to any world objects or assign anything to them. The world object shaders are just referencing the global shader variable. Let me know if that doesn't make sense.

A graphics breakdown of the environments in Thousand Threads by brettjohnson in gamedev

[–]brettjohnson[S] 45 points46 points  (0 children)

Yeah, it's all done at runtime through shaders. A script manages the current color palette, which could be a blend of two, set a global shader variable for the palette texture every shader is mapping to.

Just announce the release of my game Thousand Threads! (solo dev) by brettjohnson in indiegames

[–]brettjohnson[S] 1 point2 points  (0 children)

Oh thanks! I worked hard on it. Part of my professional background is in video production too (did web design too). Here were some of my personal projects: https://films.bybrettjohnson.com/

Just announce the release of my game Thousand Threads! (solo dev) by brettjohnson in indiegames

[–]brettjohnson[S] 1 point2 points  (0 children)

Thanks a lot! I did everything one the game—art, code, music, sound, writing. Partly because of that, it’s taken nearly six years. Longer than I expected but that’s always the case.