I’ve now spent some time with Sludge, which means that text now comes in different colours (though it may be a bit too bright – will test some more), speech stays on the screen (I don’t know when I happened to introduce that bug, but now I’ve fixed it), mixOverlay works properly (it was ridiculously easy), and I fixed a small problem that was remaining with pasted sprites.
This means that the following small test programs work as they should (unless I’ve missed something):
- Scrolling Credits
- Small Example
- Bouncing Object Demo
These programs are also part of my test suite, but still have some issues:
- Parallax Scrolling Demo (I haven’t implemented parallax scrolling at all yet)
- Verb Coin Demo (Only Z-buffer and lighting left to do. Oh, and the darkBackground function used when bringing up the inventory. I think that’s all.)
- The Interview (Z-buffer, Save/load, darkBackground)
- Cross-Fade Demo (Music won’t play. Odd since sound in general works. Even the music in the VC Demo, which is in the same format, so I think it’s the fading routines that has the problem. Will have to investigate some more.)
- “Mathias”, my unfinished game that I was working on before I started on Frasse. (Z-buffer and Save/load.)
- Frasse (Most things work, but Frasse uses most of the functionality available in Sludge, so basically everything will have to work before Frasse runs properly.)
Those are all the programs I have been testing. As you can see, things are looking good! The remaining big issues are: Z-buffer, lighting, save/load and music. The HOTSPOT lighting mode will be easy (I’ll simply use the same technique that works fine for colouring the text). PERPIXEL will be more complicated (i.e. I currently don’t have a clue how to implement it). The music thing requires investigation. Save/load shouldn’t be a big problem (I hope), but I’ll probably have to write platform specific code. The Z-buffer… well, that’s another area where I don’t really know how to do it. (But that was true for most things when I started this project, so I’m still optimistic.)
A search for “TODO” in the source return 30 occurrences. There is still work to be done. Besides the things I have already mentioned, TODOs are in: Snapshots, Background Effects, getPixelColour (has that function ever been used, I wonder? if so, for what?), launch (if we add a setup screen like other engines have, do we really need this one?), registryGetString (this one is going to disappear – the registry only exists in Windows, and since we’ve never been able to write to the registry, I don’t see much use for it anyway), showFloor, showBoxes, pixel perfect collision detection, proper error messages (right now, I simply print to stderr), burnString (right now, it duplicates pasteString). That’s it. Now you know how far along this is. (Or you should at least have some idea, if you’re familiar with Sludge. If you’re not, everything after the break was probably useless information to you.)
Btw, I have – like most Mac software – interpreted Ctrl+click as right-clicking. This is done automatically in the engine. The game doesn’t know, or care. It just works.