Ordering table are pretty cool and fast but they also generate a lot of polygon fight and potential flickering. It's mainly because it uses a single value to evaluate the polygon (usually the average of the vertices). It can be especially bad when you have large polygons or models intersecting with each other.
But I think that would be a pretty good method for the Playdate.
I do think it would be suited to the low power of Playdate. Definitely interested to see.
My desire is to have one model/mesh (a golf course landscape) or at least multiple mesh that do not overlap (grass, sand, water, rock).
And maybe I would be able to control the size of triangles/polygons during export to optimise that aspect.
I also don't need realtime 3D, just the ability to render a view of the scene relatively quickly. Faster would be better, but it's not a deal-breaker for me.
Hey if it's not realtime, maybe having a C extension to draw a triangle with some Z-Buffer would be doable. Most likely slower that using the SDK function but fast enough to not have the user really wait for a render. I am sure that adding a bit of Gouraud shading would fit the bill too.
I looked at the 3D demo again, and it seems it should be possible for per-pixel z-buffer to be added to the drawing that is already there, fillTriangle would need to be aware of z-info and LCDBitmap_fillMonotonePolygon would also need to draw taking z-info into consideration.
Alternatively, it could be modified to use Ordering Tables. Or maybe both, with a preference!?
Then the code would still need a 3D mesh/model loader, but maybe with the Babylon JSON format I found that becomes less of a problem?
Nice very much like Horace goes skiing - just don’t make your character look like Horace ! Unless you want to have cease and desist letters. Love the super off-road , super sprint daily driver. Such great techniques for the graphics too
It's crazy to me that this thread is almost 2 years old. Where has the time gone? (Ed: down the pandemic drain, that's where)
What's next for me? I've been taking a break from Daily Driver but will be jumping back into it soon. I'm hopeful there'll be a Season 2 of games and I'll submit it for that. Fingers crossed!
I've also been keeping copious notes and a sort of dev diary which I will maybe turn into... a book? Or at least a really nice guide. It would feature topics like:
how to run at higher refresh rates than 50Hz (up to 200Hz!) with source code
I just played the playground demo for quite a while, and it was a lot of fun! I was surprised by how much stuff is in there. I really liked the smoothness of the car rotation, it actually felt like it was realtime 3D. My favorite car is of course the Trueno lol (my profile pic is from Initial D). My favorite stage was 42 because it looks really cool. I also liked the soccer and hockey stages. I didn't try the editor yet.
I know this is an old build, but my biggest "complaints" about the demo would be the sound and collision physics. I feel like the game would be much better with audio samples instead of generated noises. Every car kinda sounded the same. As for the collision physics, I found myself constantly getting stuck on cones, walls, etc. It kinda kills the flow of the game when you instantly lose all your momentum from hitting a cone. Anyways, that's just my thoughts from the demo. It looks really awesome so far!
Thanks! Great feedback. I had to check what level 42 was in this old demo (ripped from Badlands arcade game graphics)
I agree in this old version cones are too problematic. Collisions are something I keep improving. I want there to be some danger to cones and scenery, but not too much to be annoying and stop it being fun. Thankfully all of this is easily changeable. But finding the best balance is a real challenge!
Engine noise varies a little here (eg. electric and hover cars) but, yeah, in the final game it will be digital, same for music.
At this point, I can't see any further optimisations in the rendering part of the workflow.
So my attention will turn to the post-processing (resizing, stitching, recolouring) where I already have some ideas for optimisations. But writing imagemagick commands is my least favourite thing in the world, so I may never get around to it. We'll see!