Building a Tiny 3D Renderer for a Tiny Handheld
210 points by g0xA52A2A 4 days ago | 16 comments

busfahrer 10 hours ago
For anyone who enjoys this sort of thing, I found this postmortem of an Alone in the Dark clone for PICO-8 highly informative:

https://www.lexaloffle.com/bbs/?tid=3804

reply
alex-moon 12 hours ago
What an excellent example of designing for the medium instead of trying to make the medium do something it's not good at! Your whole approach shows a real love, like a delicate respectfulness, that I think characterises early games and is less apparent as the systems get better (though I am sure it is still there).
reply
bdickason 8 hours ago
Agreed - I expected someone trying to render a simple object or scene and was pleasantly surprised.
reply
wewewedxfgdf 9 hours ago
reply
aras_p 8 hours ago
Way, way too slow for Playdate though. I tried implementing it, including lots of simplifications, and it is still not really practical: https://aras-p.info/blog/2025/02/09/Surface-Stable-Fractal-D...
reply
bdickason 8 hours ago
I love this post because it goes well beyond "can I render 3d graphics on this device" and into "how can i play with the combo of art and rendering tech to get a nice looking scene on this device.

Very cool, thanks for sharing!

reply
tslmy 4 hours ago
This is breathtaking. I did something similar[1] porting a 3D dice roller I wrote to a $60 GBA clone, and I _thought_ that was hardcore already. This is next level.

[1]: https://blog.myli.page/rolling-dice-on-a-60-handheld-08be278...

reply
mkirsten 4 hours ago
Thanks for sharing both an amazing topic - engineering with significant constraints, a great medium - handheld game devices, as well as some wisdom - If you want to make actual progress, try to aim for "good enough".
reply
cmovq 2 hours ago
+1 for TrenchBroom, it’s amazing software.
reply
hahahaa 9 hours ago
Amazing. I never get over the 2 bit colour illusion of scale.
reply
vkaku 7 hours ago
Actually done a good job - talks about dithering, perspective correct mapping and the artifacts seen in the PS1 era etc. Pretty good start.

Add more lighting and shadows to the game before that dithering pass and then see how far you can push this, and write about it. Cheers! :)

reply
agys 7 hours ago
LCD 1 (2022) is an ASCII art project on the same display (by Sharp) of the PlayDate.

https://lcd.ertdfgcvb.xyz

reply
xyzsparetimexyz 11 hours ago
Does the upscaling from 200x120 happen pre or post dithering?
reply
TazeTSchnitzel 44 minutes ago
If my eyes don't deceive me, the upscaling is happening post-dithering, which I think is a shame.
reply
ant6n 8 hours ago
Given the 168MHz ARM, the real innovation here is the way stable dithering and a cell shading look was used to make the graphics good looking. Very well done!
reply
chronogate_op 3 hours ago
[flagged]
reply
Panzerschrek 8 hours ago
Looks nice for such wimpy hardware.

But using 16-bit Z-buffer for 1-bit display seems to be an overkill. Sorting polygons works mostly fine if done right, especially if BSP tree is already used.

reply