I guess most of you don't know this but I'm a huge Sonic The Hedgehog fan (I'm talking about the classic games here, I don't care for anything since Adventure). And every time I learn to code for a new platform I start considering the possibility of coding a Sonic game for it (I have a NES engine in the works, but not really playable yet). With the 2600 I quickly gave up on that idea though, given how difficult it would be to scroll the screen and the fact that a screen-by-screen sonic game probably wouldn't be much fun.
But the other day I started thinking about the possibility of making a platformer with 8-way scrolling, and suddenly the idea didn't seem so technically impossible. I know that there are a couple of 8-way scrolling games for the 2600, but they don't seem to use the technique I thought of. Since I wanted smooth scrolling (not the 4-pixels-at-a-time that are possible with the playfield) I decided that it should be possible to have the level map constructed mainly by sprites. So, while player 0 would be used for the main character, player 1 (and its copies) would be used for both enemies and level blocks, and those two wouldn't be allowed to share the same scanlines.
Since a level made only of a few sparse floating blocks would be too dull, I decided that it should be possible to use the playfield to represent longer sections of ground, as well as longer platforms. I would only use solid colors for the playfield, and would use player 1 and/or the ball to smooth out the transitions from ground to empty space and empty space to ground to keep the scrolling smooth. There will of course be several limitations regarding the way in which objects and the terrain can be arranged in the level map, but I think it's still possible to come up with interesting results without making the limitations obvious to the average player.
So, just for the heck of it, I went ahead and made a few sprites:
And here are a few animations based on the sprites above:
Forgive me if I made any mistakes regarding resolution or color count, it's just that I use MS Paint to draw my sprites instead of a 2600-specific tool. Also, these sprites obviously need a black (or at least considerably dark) background to look good.
Anyway, you may have noticed that Sonic has half of the vertical resolution, this is so that he can "play nice" with all the mini-kernels, since he can be anywhere in the level. Player 1 is full resolution though. Sonic uses its missile to have 9 pixels across instead of 8. Both players can be stretched in case they need to represent wider pictures, but they can't mix different widths (except for the bosses, which would probably have their own kernel to accommodate that).
I did some math and it looks perfectly possible to come up with a combination of mini-kernels to accomplish what I want. The main bottleneck in a project like this would be storage, RAM and ROM.
Well, this is it I guess. I'm not sure I'll go through with this project, but I'm playing with the idea, and thought some of you would find it interesting. Any thoughts?
Edited by tokumaru, Wed Sep 29, 2010 8:47 AM.