Hi again. I've uploaded a new ROM, showing what I've worked on the last couple of days. The demo shows 6 levels from the original game. My development strategy now is working on successive levels from the game, and implementing the necessary features as I go. Here's what and what's not working as well as some notes about each level:
- Level 1 ("Lesson 1"):
This is pretty much complete. I haven't noticed any bugs in this level. The only thing I had to implement in order for this level to work was the doors. A rather simple (and boring) task.
- Level 2 ("Lesson 2"):
Finally got the bug code to work. I noticed that the bees, bugs, tanks, fireballs, gliders and balls pretty much work the same way. They only differ in what move they take when free to do so. E.g. the bees always want to go left when possible, if not straight ahead, then eventually right and as a last resort backwards. The only difference with the other monsters is how moves are prioritized.
- Level 3 ("Lesson 3"):
Everything works as expected here too. Moving on ice is no longer glitchy.
- Level 4 ("Lesson 4"): When trying out this level, you don't have to collect more than the available chips to finish the level!
I'm currently working on the features necessary to implement in order for this level to be playable. As mentioned, I noticed that the tanks really just work the same way as the bees in Level 2. The only difference is that the tank only knows one move -- go straight ahead. The same code that controls the bugs also takes care of the tanks, it just uses a different list of direction priorities. The green buttons and toggle walls is a bigger problem. In order for them to work, my engine needs to be able to update several single tiles in one bite. Far back when I coded the part of the update engine that does this, I didn't think that this would be necessary. It seems I'll have to do a rather large rewrite of the whole nametable update system.
- Level 5 ("Lesson 5"):
This is just an early test to show that clone machines work! Whatever object is placed on this tile will be cloned when another object touches the red button. This feature is still very early in development. I have not yet implemented mapping between individual buttons and their respective clone machines. In order for that to work, I'll also need to extend my map format and figure out how it should most effeiciently be implemented.
Also note that the bomb graphics used in the windows version has been replaced by my brother with a TNT-tile. It would look too ugly trying to mimick the bomb (on a floor tile background) using the available red palette, and it would be impossible to use an object (metasprite) for this purpose, as there are lots of levels with many, many bombs.
- Level 6 ("Lesson 6"): A rather straight forward level to get working on this engine. However this level also shows the same shortcoming as described over here -- my engine can't update several individual metatiles in the same frame (it can only update whole lines of tiles when scrolling.) This is seen when trying to pick up a chip and at the same time touching one of the blue walls beside. Only the wall tile will be updated, since it was touched after stepping on the chip.
- Level 8 ("Lesson 8"): Still haven't worked any more on the monster AI. It's just lazyness really. I have to focus on the larger issues first...
The issue I will concentrate on now is getting the tile updating system fixed. I'll do something like what I wrote about a few posts over here.
Also, I guess those who've tried it have noticed some graphical sprite glitches when scrolling. This is something I'll look into when the tile updating issue is resolved.