Thanks for your thoughts. Based on my design, I can assume some nice things like axis-aligned polygons, so that should help with some of it. But it's good to keep in mind that it's going to be the main "feature" of the game: there won't be much room for else. So thanks for pointing this out. I should mention that this is my first J4k project, so I don't have any intuition about how much room something will take: thanks for providing some!
I'll consider polygon sorting instead of a z-buffer. Any good algorithms to suggest? If not, I can certainly work out the math myself, but if there are ones that clearly work well for 4k games, then I'd love to hear about them.
bysse, thanks for the info about functions. I'm primarily a C++ programmer, so it hurts to not have macros: that would allow for function-like operations without the overhead of passing parameters. Or even inline functions. So maybe I'll sort of take your advice: write some functions that I need, then consider hand-inlining them when it comes down to the final builds. (I already have a compression script set up, and am using Mercurial to both preserve version and also keep track of the size, which I record to a file)
moogie, generated textures should work fine for my game, so that's what I was looking at anyway. I imagine that a full raytracer would be challenging to squeeze into 4kB (while still having something interesting to play), so best of luck with that! Me, I'll keep it simpler.
Alan_W, I am using pack200, and am pleased by how well the whole compression process works. It's quite the satisfying experience, actually. Unfortunately, I'd prefer to have 3D movement in the game, so isometric isn't really an option. I'll keep it in mind, though, if I decide to change things up.
Anyway, thanks everyone for your thoughts. Please feel free to share any other considerations. I have confidence that I could work out some of these things on my own, but thought it prudent to see if others were willing to share their knowledge and save me the time and trouble. So thanks again!