NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Return of the Obra Dinn: spherical mapped dithering for a 1bpp first-person game (forums.tigsource.com)
m12k 1 days ago [-]
If you find this interesting, you might also be interested in this video of someone diving even deeper into how to make the dither surface stable: https://www.youtube.com/watch?v=HPqGaIMVuLs
pvillano 19 hours ago [-]
IMO, the holy grail of 3d dithering is yet to be achieved. runevision's method does not handle surfaces viewed at sharp angles very well. I've thought a lot about a method with fractal adaptive blue noise and analytic anisotropic filtering but I don't yet have the base knowledge to implement it.
Retr0id 10 hours ago [-]
My take on it is to use some arbitrary dithering algorithm (e.g. floyd-steinberg, blue noise thresholding, doesn't really matter) for the first frame, and for subsequent frames:

1. Turn the previous dithered framebuffer into a texture

2. Set the UV coordinates for each vertex to their screenspace coordinates from the previous frame

3. Render the new frame using the previous-framebuffer texture and aforementioned UV coords, with nearest-neighbor sampling and no lighting etc. (this alone should produce an effect reminiscent of MPEG motion tracking gone wrong).

4. Render the new frame again using the "regular" textures+lighting to produce a greyscale "ground truth" frame.

5. Use some annealing-like iterative algorithm to tweak the dithered frame (moving pixels, flipping pixels) to minimize perceptual error between that and the ground truth frame. You could split this work into tiles to make it more GPU-friendly.

Steps 4+5 should hopefully turn it from "MPEG gone wrong" into something coherent.

whtrbt 22 hours ago [-]
Very cool! The dither is no longer in screenspace though, which kills the retro charm.
m12k 22 hours ago [-]
Fair point, though I think that when it's low rez enough, it becomes less apparent that it's not in screenspace, and it gets closer to a retro look: https://youtu.be/EzjWBmhO_1E?t=102
dpatterbee 23 hours ago [-]
This really is a fantastic video. I don't think I'd considered many of the ideas behind dithering before seeing how it could be extrapolated to this degree.

The video ends in a place where I suspect even further advances could still be made.

m12k 22 hours ago [-]
There's a follow up video with variations of the technique (some of them with color) demonstrated in a game: https://www.youtube.com/watch?v=EzjWBmhO_1E

But yes, there's still the issue of oblique angles looking different that still remains open AFAIK.

femto 14 hours ago [-]
Discussed on HN in January 2025: https://news.ycombinator.com/item?id=42808889
tesseractcat 23 hours ago [-]
If anyone finds this interesting, I'd like to plug my post analyzing a similar technique, but generalized for perspective pixel art: https://tesseractc.at/shadowglass
ZeWaka 23 hours ago [-]
Thanks!

As a retro game dev and pixel artist, this is a lot more more preferable than the constant shimmering of other recent techniques such as Texel Splatting (https://dylanebert.com/texel-splatting). Love how stable it is, reminds me of billboarding but is clearly 3D.

Edit: Ah, I didn't finish reading the blogpost - didn't realise splatting was based on yours. I actually like your variant a bit better, but perhaps that's just due to the choice of textures/models.

schnitzelstoat 11 hours ago [-]
One of the best games I've ever played. I might play it again now that it's been a few years and I can't remember the solutions.
augusto-moura 7 hours ago [-]
My greatest curse, and greatest bless, is that I have really good memory. I could never re-experience this game the same way I experienced it first. It is a shame really, since games like this are not very common.

If you want to experience another great investigation/puzzle/story game, check out Outer Wilds [1]. It is a much bigger game (expect 60+ hours), but you can play it at your time. The ending is mind-blowing, and, similar to Return of the Obra Dinn, the whole universe story is weaved perfectly, everything falls into place at the end.

It is also very spacey for the space-nerds like me

[1]: https://en.wikipedia.org/wiki/Outer_Wilds

disillusioned 11 hours ago [-]
It's truly the perfect detective game. There are so many original ideas brought to life here: the blending of a single frame of a scene, rendered in 1-bit 3D, that you can navigate around to forensically examine... coupled with the incredible voiceover work, such that the audio itself becomes a huge clue (listening for accents to try to determine origin!), and just... how layered and fantastical the story itself is, and the Memento-style reverse reveal.

Absolutely LOVE this game. Lucas Pope is brilliant.

If only they didn't break into that ark...

tietjens 9 hours ago [-]
My thoughts exactly.
cdelsolar 6 hours ago [-]
same here! Incredible game, I am saving it for a few years from now. I was obsessed with it for several days during the pandemic and solved all the puzzles but still remember a little too much of it.
vagab0nd 20 hours ago [-]
This is great from a technical and artistic perspective. But for me personally, the visual style ruined a great game. I love detective/deduction games. I'm listing some of my all-time favorites in this genre. I'd love to finish Obra Dinn, but god it just makes my eyes hurt so much.

The Case of the Golden Idol

Chants of Sennaar

Her Story

IMMORTALITY

The Painscreek Killings

The Roottrees are Dead

Type Help

throwawayk7h 16 hours ago [-]
Outer Wilds is the best in class for this genre, IMO.
cdelsolar 6 hours ago [-]
I really regret ruining Outer Wilds for myself, I had to look up a few solutions because I was very stuck, but I should have kept trying. Part of the issue, which I vow to never have again, is that I kept underestimating the creators, since it was an indie game, I figured that there was some parts of it that might have inelegant solutions, but no, don't make this same mistake! Outer Wilds is perfectly designed. Everything is solvable with in-game clues, but you're going to die many times in the meantime.
cdelsolar 6 hours ago [-]
also another issue is that I accidentally (spoilers) got into the final vault very very early in the game, completely by accident (I didn't realize how accidental it was until I was actively trying to get back in later in the game). That was a bit unfortunate, because all the end-of-game exposition mostly confused me!
h4x0rr 13 hours ago [-]
An experience i will never forget
julesie 14 hours ago [-]
Chants of Sennaar is my absolute favourite and I also really enjoyed The Case of The Golden Idol.

I haven't found anything close to scratching that Chants of Sennaar itch so far but I will check out the other games you mentioned as I haven't played any of them.

I also loved the conceit of the Obra Dinn but the visual style made me feel physically ill to the point I couldn't continue with the game. I'm useless with any first person POV stuff in general though.

schnitzelstoat 11 hours ago [-]
I really liked the unique style.

Golden Idol and Chants of Senaar are incredible as well though.

shmeeed 9 hours ago [-]
I'll throw Heaven's Vault in there as well.
smallerize 16 hours ago [-]
Have you at least played with the other color schemes?
progforlyfe 24 hours ago [-]
I grew up on the small 6 inch 1 bit Mac SE display so the art style has a special place in my heart. Sadly I'm too "dumb" to fully enjoy the game as it requires a lot of attention to detail -- amazing if you enjoy detective style puzzles! I still highly respect it.
teaearlgraycold 23 hours ago [-]
I got half way through but honestly just don't enjoy the core loop enough to finish. And it's the kind of game you need to finish in one sitting else you're shit outta luck and need to start over.
rokkamokka 1 days ago [-]
I gave this game a shot but honestly the art style got in the way of the gameplay for me. Fun to read how much effort went into it
rags2riches 1 days ago [-]
Interesting. I was really impressed by the art at first, taking joy in exploring that as much as the scenes themselves. But it soon faded out of focus as I was engrossed in the story and gameplay.
GuB-42 21 hours ago [-]
Same thing for me, I love the technical aspect in the same way I love the demoscene. The visuals are original and very well done, so much that it is now almost impossible to talk about dithering without mentioning the Obra Dinn at some point.

I am also a fan of puzzle/detective games, and this is an excellent one.

Truly a masterpiece in both visual and gameplay, but together... not so much. For a game where understanding every detail of the scenes is critical, it felt I was fighting the game engine. Many times I wished I could turn off the dithering effect and see the underlying models with more standard shading. At no point it felt unfair, they really did a good job making it functional, but it was a distraction.

Not enough of a distraction to stop me from completing and enjoying the game and art. But hadn't the art style been unique, I would have enjoyed it much less.

vova_hn2 1 days ago [-]
Yeah, I also loved the idea, but found that playing it require me to strain my eyes too much and abandoned it. One of those games that is more fun to read about than to actually play.
Waterluvian 1 days ago [-]
Yeah. I’ve wondered if the game could be a total hit on some possibly-not-yet-real eink display that can reproduce the intended effect at 60fps without such eye strain.

As a kid I imagined playing Cosmic Osmo on actual magical paper at my desk at school.

bombcar 1 days ago [-]
Some of the examples in the post are really bad, but even the last one has "flickering" not of the dithering pattern but of the edges, which feel "off".
mattmanser 1 days ago [-]
Have you played it?

In the game it's pretty great.

bombcar 24 hours ago [-]
I have and wasn't terribly bothered by it, but that may have changed if I had done it on large screen (TV).
ngokevin 1 days ago [-]
Mostly enjoyed it but the art style gave me motion sickness during and after each session where I had to stop (playing on a TV).
mblode 14 hours ago [-]
I built a mini game with this technique [1][2]

[1] https://dither.blode.co

[2] https://github.com/mblode/dither-3d

surfsvammel 24 hours ago [-]
I absolutely loved this game. I still think about it often, the story and the characters. I wish there was more games like it.

Interesting read!

duncanscomments 23 hours ago [-]
Agreed. The game is tied together so well with its deductive gameplay, art, and music. I also appreciate how difficult it is, I was banging my head against it frequently during my playthrough - but the "aha" moments are so worth it.

I picked up Blue Prince after - completely different game in most respects but hits some of the same satisfying puzzle-solving/deduction notes.

teamonkey 21 hours ago [-]
Some other good ones based around deduction:

The Case of the Golden Idol

The Roottrees are Dead

The Seance at Blake Manor

Chants of Sennaar

car 20 hours ago [-]
When the Mac and Atari ST first hit the market in the 80's, there were Comics created in this 1-bit "ordered-dither" style. For error-diffusion dithering (Floyd-Steinberg etc.), you needed more bits per pixel, to carry the error.

SHATTER:

https://imgur.com/gallery/shatter-1984-was-first-commerciall...

Robot Empire:

https://www.reddit.com/r/atarist/comments/xgs4rh/comicbook_c...

skrebbel 9 hours ago [-]
This is so cool! Excellent writeup also.

I feel like I understand it all except the last step:

> I could feel the closeness, and a very simple fix for this kind of aliasing is to supersample: apply the dither thresholding at a higher resolution and downsample.

Here he shows a dither pattern that isn't monochrome, but has grays (cause it's downsampled). But the picture in the end is monochrome again. How does this work? How does he downsample the dithered result while staying monochrome?

HelloUsername 1 days ago [-]
Previous discussion of "Stabilizing the Obra Dinn 1-bit dithering process (2017)" on 08-nov-2024 https://news.ycombinator.com/item?id=42084080 114 comments
jay_sar 1 days ago [-]
Actually saw a great youtube video about this recently - very cool how they were able to accomplish this. https://www.youtube.com/watch?v=_3qzyAHMoUU
thaumasiotes 45 minutes ago [-]
> Finding this particular spherical mapping took some time. There's no way to perfectly tile a square texture onto a sphere. It would've been possible to redefine the dither matrices in terms of a hexagon grid or something else that does tile on a sphere.

Hexagon grids are flat and can't tile a sphere. Nothing can tile a sphere without knowing some specifics about the sphere, and even then you're pretty much limited to "orange slices", pole-to-pole longitudinal sweeps.

abetusk 23 hours ago [-]
I keep feeling like there's a set of fundamental assumptions that can be optimized for, or relaxed and optimized for, in order to get at what a better method might be.

For example, stability of dithering under rotation and or some type of shear translation. What about stability under scaling?

There's been some other methods that essentially create a dither texture on the surface itself but, to me at least, this has a different quality than the "screen space" dithering that Obra Dinn employs.

Does anyone have any ideas on how to make this idea more rigorous? Or is the set of assumption fundamentally contradictory?

bob1029 10 hours ago [-]
One of the biggest issues with dithering stability in screen space is attributable to perspective projection. The division operation is what screws everything up. It introduces a nonlinearity. An orthographic or isometric projection is much more stable.
paultendo 1 days ago [-]
What a fascinating deep dive. 2x with sphere mapping is my favourite - it starts to take on a sort of pointillism-like quality which gives all the objects (or maybe my brain) a sort of understanding of their texture.
aqme28 21 hours ago [-]
One of my favorite games of all time. An incredible kind of puzzle, oozing with its own weird style.
martinknopf 1 days ago [-]
I remember following dukope‘s well-written devlog back then. Even tried to reproduce his edge detection for a game jam. Thanks for digging this out.
QuaternionsBhop 20 hours ago [-]
The final dithering effect appears to be mis-sampled and is no longer 1 bit per pixel
antics 21 hours ago [-]
> It feels a little weird to put 100 hours into something that won't be noticed by its absence. Exactly no one will think, "man this dithering is stable as shit. total magic going on here." I don't want to give people problems they didn't know they should have though so it was worth fixing.

I mean maybe it's just me, but that is literally the first thing I noticed and I appreciated it so much I instantly bought the game. I don't even play video games much!

pmarreck 21 hours ago [-]
These techniques were all the rage on early Macintosh things
WhitneyLand 21 hours ago [-]
“The output is no longer 1-bit”

I thought that constraint was the whole idea?

monkpit 16 hours ago [-]
(2017)
self_awareness 12 hours ago [-]
Never seen such a stable dithering before. Very nice!
unleaded 20 hours ago [-]
lovecg 19 hours ago [-]
(2017)
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 20:02:34 GMT+0000 (Coordinated Universal Time) with Vercel.