Pokitto is on the way, what games should I make?

The back button is a possibility? I didn’t think of that. That would be the solution. The combo suggestion for menu could also work. Thanks!

Floors are up:



  • For simplicity/performance/memory reasons I allow only one height level to be textured. You can still use different textures at that level. If you hack around a bit, you may find ways to approximate texturing on different levels and ceiling as nothing is preventing you from drawing textures anywhere (just the texture coordinates are only explicitly computed for one level).
  • X-resolution is halved here again because floor is demanding.
  • Feature-wise this will probably be it. My focus will now be on polishing and getting to demo release.
  • I haven’t addressed the floor inaccuracy bug yet, but it can’t be seen here anyway.
  • Discovered a GIF pro tip: don’t scale the gif up (as I used to do it), upload it in native size and scale it via Markdown – it saves a lot of space and loading will be faster.


view into outer space:



Thanks! That first script could be useful even in my current, optimized, palette system. I should make a test how the game would look with your fixed palette.

1 Like

the minecraft one is really neat, I had to delete the other two when they were on the memory card I couldn’t scroll down the list for some reason

1 Like

Hmm I never tried loading from the SD, can’t tell if it’s my problem or the loader’s, I gotta check.

Unfortunately some versions of the loader will only show a certain amount of files in the list. Make sure you are running the latest version by adding the ready made game disk to your sd card.


I was initially in 2048 and couldn’t scroll down then changed to 101 asteroids since it was the top of the list and couldn’t scroll then I deleted number 1&2 and could scroll.

That’s the one I’m using. The 2 gig card from @jonne

Yes but that has the old V4 loader. Go get the new gamedisk and unzip all that stuff on the SD card. Then go to loader and let it update


Idea for another demo:

Port this or something similar to Pokitto. I think there’s a Python implementation somewhere. It’s fun to play around with, here are some pictures I generated:

The good thing is that each picture is completely identified by a short string, so people can easily share them. The demo could be able to save the picture on the SD card, where it could for example be used as a wallpaper for the new loader.


Oh my gosh. Customizable/skinable loader pages??? That would be pretty fun: D

How did I miss this?? Wow!! I’m so blown away by all this.


Will be releasing this soon.

I’m think about taking a break by creating a simple game that would be rendered with ray casting – e.g. a “3D” snake. Or tetris or chess, …

Actually maybe I could port my Arduboy tower defense to Pokitto, and render it with this library – I specifically separated the game logic so that I could do this. Could look interesting.


@drummyfish Would it be possible to do a FP light bike game, using this technique…where the walls are drawn by player movement? Or do they need to be fixed?

Like Tron? I guess it could be done, the walls can change however you like – that’s the advantage of raycasting over the Doom engine. If you wanted to use the rendering functions I currently have, the walls would have to be “thick” though – it would be more of a glorified snake. But if you want “thin” walls (for the light beam), then that’s possible too, you’d just need to write a custom rendering function.

Nice idea BTW, especially once we have multiplayer.

1 Like

:open_mouth: incredible! Please don’t fall off your chairs:

Reminds me of Mandelbulber, except this is realtime with a great amount of added awesomeness.

I wanna squeeze Pokitto to render 3D fractals :frowning:


Given we have a formula that defines the 3D set which makes up the fractal – basically we have a function:

bool fractalOccupiesPoint(float X, float Y, float Z)

How could we render it?

The traditional way is to raytrace/raycast it (on Pokitto we would definitely only raycast it, which just means one ray per pixel, so no shadows or reflections, just fog). This raycasting would keep going along the ray in fixed steps (typical raymarching, unfortunately things like these for quick intersection finding can’t probably be used) and check at each point if it hit the fractal with the above formula. If it hits, compute the distance and shade the pixel accordingly.

Since the fractal is static, you could accelerated this with cleverness. You might for example voxelize (octree) the space and precompute which voxels only contain empty space – then when tracing the ray you could skip these portions of space. The problem might be zooming in to details on smaller scale. Also the precomputation could take a long time, quite a lot of memory and the rendering would most likely not be 100% realtime either (I imagine it would look like in the Mandelbulber where the image is pixelized at first and keeps sharpening).

Or try other rendering methods? Like voxelize the fractal alone around the viewer? Or something like splat rendering of a point cloud? Don’t know.

Still could be worth a try though, fractal exploration on Pokitto is a dream.


I made a little 2d mandelbrot explorer (on the gamesdisk already) and it quickly gets slow to even just calculate the values (due to the iterative computation). I think the floating point performance of the MCU is simply not up to it. I did a featureful fractal explorer long time ago on the amiga (Fractal Universe) and also there invested quite some time to make things fast, but in the end there is the core computation that can’t be speed up.


I’ll take a look at it. Does the iterating computation be floating point though? Maybe 32 bit fixed point would be enough?

1 Like

Yes it is floating point. Initially you can get away with integer but after zooming in a little you need floating point. I was sometimes thinking that the madelbrot images only exist due to impreciseness of the IEEE number representation :slight_smile:

1 Like

I’ve seen a lot of fractal explorers actually doing a very low resolution (e.g. 2x2, 3x3, 4x4 or more “super” pixels) then refining it if you stayed on place, that could be an intermediate solution ?