Kind internet strangers
A few people online asked what I was building, which is a better reason to start a devlog than any amount of planning. So: this is it.
Setting expectations
I am first and foremost a programmer. I love and adore pixel art, and own books on how to make it (I helped kickstart Pixels Forever volume I and II). As such I will do my best to make beautiful art – but do not know if I will succeed.
Specifically I’m making this disclaimer because the place where people started asking about about what I was building… was in the comments on a video MVG made on Mark Ferrari’s work with color cycling.
Mark’s work has been a great inspiration for me. While I grew up playing games where his work was on display, I did not know his name until I saw the following excellent interview with him on YouTube.
What I’m building
The game I’m working on is a dragonsweeper clone (go play it if you haven’t yet!) with a day and night cycle. That’s where the pallet swap / color cycling will come in.
There is one DOS game in particular that did a day night cycle really well through palette manipulation: the original DUNE game by Cyro. It also had an amazing sound track by Stéphane Picq (RIP). The game is worth playing just for the pixel art and sound track.
I don’t have a whole lot to show yet. To prove all the sub-systems were working
I initially made a basic minesweeper.


You can download it and run it in DOSBox. ESC to quit, space to restart. Note that I took one of the .imf songs from Wolf3D and some placeholder sound effects.
Once that was done I wanted to work on designing the day / night palettes… but as I had very little art to make these palettes for, I ended up not continuing down that path. Instead I chose to first make art assets in gray-scale (something “Pixels Forever” recommends regardless). And so I’m slowly building up a sprite-sheet:
![]()
Then once I have all/most of my art assets my plan is to make my day and night palettes, and of course also the transitions between them. A nice sunrise and sunset is where the real payoff is going to be!
While I was making assets I figured I should also build game logic to use them. And so, I’m currently on my way to making a gray-scale feature parity version of dragonsweeper.

It’s coming along nicely. The most interesting thing for this phase will be tuning it so that it is somewhat fun / balanced to play. Since this isn’t an exact 1:1 clone I don’t get the benefit of taking the balance Daniel Bermergui already found. But because it’s not going to be the final product, I’m not going to spend too much time on it either – we have the day / night cycle to add!
Animations
Mark Ferrari makes excellent little animations with palette tricks as well. Initially I was just planning on making a ‘marching ants’ tile selector (you know, just like when you select something in a paint program). So that the game could also be played with a keyboard or controller.
But seeing how people might actually be coming to look at my work because of the MVG video I commented on, perhaps I should try my hand at a scene with some water or rain animation for my game as well. I know just the place that might benefit from it.
I can only hope to come close to what Mark does with his day and night cycle as demonstrated in his GDC talk. By the way, continue watching from that time-stamp and you’ll see some truly amazing tricks that Mark did with just palette changes!
Technology
I am building a 32-bit DOS game in assembly because I wanted to improve my knowledge of x86 assembly, and low level DOS fundamentals. DOS games are what I grew up with. Knowing how to make them, down to the assembly level, is deeply satisfying.
Also, once you move into Windows / Linux the environment is much more C/C++ focused (ABI calls), while DOS was still really setup for assembly programming. And programming for DOS is just fun, it’s you and the machine, not a whole lot else in between.
This is not my first attempt… I tried in the past, but was never able to get my hands on all the documentation I needed. Last time (2019) I got stuck on how to make OLP2/Adlib work. But now in the age of AI that’s not really a problem anymore.
And so, yes, AI is being used for this game. But primarily to help me figure things out. Every assembly instruction is still written by me, by hand. That’s the whole point! Learning after all, is all about doing. I am not going to rob myself of the experience. Similarly every pixel is hand placed by me as I’d like to become a real pixel artist when I grow up! (It’s funny because I’m well into my 40s, one day I’ll get there!)
I did use an AI agent to put together the tooling pipeline from Aseprite to my own custom image file format. Because, although I could research and write the conversion routine myself, I just don’t care. I’ve similarly also used an AI agent to do some code clean up. Again, not a lot of learning there, just tedious moving stuff around.
1 comment
Love it!!