Just thought I would rather post them here instead of letting them die in my hard drive without them ever seeing the light of day.
These are small test games I made a while back, when learning to program for the NES. They kind of show my progress in learning better ways to program a game engine on 6502.
Ninja1
Download link
My first attempt at making a platformer. The idea is that this little cute ninja found a secret path through the sewers, that would eventually lead him to the inside of a corrupt shogun's palace, where he would fight to save his people.
- Object engine is based on a dynamic table that accomodates newly created instances, which is something that I found to be nice, and stuck with me to the later games.
- Stage engine based on fixed-screen rooms, since I hadn't given much thought about a scrolling engine.
- Player starts at the top of the screen for whatever reason. You can attack with the B Button. Lots of enemies on the first screen, as a kind of stress test. There is a room of an even older version to the left. Other rooms are empty.
Ninja2
Download link
My second attempt. I finally understood how to program a scrolling level: dealing with column tile loading and updating nametables (figuring out how to update the tile attribute table dynamically was quite a chore).
- Metatile engine actually uses meta-meta-tiles (they describe entire elements, such as those pink walls with the little roofs).
- Object engine is still the same, but dynamically loading enemies that enter the camera view, and destroying those that leave.
- Sprite engine is not perfect, as clipping sprites at the borders doesn't work very well, but it already implements a kind of sprite multiplexing.
- Next to the start of the game, lots of enemies come raining down, as a stress test. At the end of the level, a more challenging enemy is found (but unfortunately cannot be defeated). You can perform a cool attack with the B Button, as well as climb walls! There is some leftover level tests to the right. If you go through the rightmost border (after 16 screens), crazy things happen.
- Also, crazy things happen when you manage to trigger object overflow (the later challenging enemies use double the data space of the regular enemies, and thus trigger overflow more easily -- of course, due to my faulty engine ), like duplicating the player character and confusing the camera controller.
Ninja3
Download link
My latest attempt. Features updated graphics, a scrolling camera engine, fade-in/out effects, and index-based stage loading capabilities. Unfortunately, there is no sound and no enemies nor attacks you can perform. You can still climb walls, though. If you exit your house, there is a climb test area after the forest. Also, jumping height is proportional to the time you hold the A Button.
- If you keep pressing the B Button, the next stage index is immediately loaded, but most are from garbage data, which I find really cool. (Some stages might have a totally black or gray palette, but the game should not hang)
- Sprite engine is pixel-perfect at clipping sprites at the borders, which you can check with the dummy ninja at the forest.
- Collision engine has some quirks and bugs at specific spots, which is kind of a nice secret to find out.
So, this is it. I really had fun programming these little games, and I felt that people should see them. What good are (*small* *test*) games that people can't play?
These are small test games I made a while back, when learning to program for the NES. They kind of show my progress in learning better ways to program a game engine on 6502.
Ninja1
Download link
My first attempt at making a platformer. The idea is that this little cute ninja found a secret path through the sewers, that would eventually lead him to the inside of a corrupt shogun's palace, where he would fight to save his people.
- Object engine is based on a dynamic table that accomodates newly created instances, which is something that I found to be nice, and stuck with me to the later games.
- Stage engine based on fixed-screen rooms, since I hadn't given much thought about a scrolling engine.
- Player starts at the top of the screen for whatever reason. You can attack with the B Button. Lots of enemies on the first screen, as a kind of stress test. There is a room of an even older version to the left. Other rooms are empty.
Ninja2
Download link
My second attempt. I finally understood how to program a scrolling level: dealing with column tile loading and updating nametables (figuring out how to update the tile attribute table dynamically was quite a chore).
- Metatile engine actually uses meta-meta-tiles (they describe entire elements, such as those pink walls with the little roofs).
- Object engine is still the same, but dynamically loading enemies that enter the camera view, and destroying those that leave.
- Sprite engine is not perfect, as clipping sprites at the borders doesn't work very well, but it already implements a kind of sprite multiplexing.
- Next to the start of the game, lots of enemies come raining down, as a stress test. At the end of the level, a more challenging enemy is found (but unfortunately cannot be defeated). You can perform a cool attack with the B Button, as well as climb walls! There is some leftover level tests to the right. If you go through the rightmost border (after 16 screens), crazy things happen.
- Also, crazy things happen when you manage to trigger object overflow (the later challenging enemies use double the data space of the regular enemies, and thus trigger overflow more easily -- of course, due to my faulty engine ), like duplicating the player character and confusing the camera controller.
Ninja3
Download link
My latest attempt. Features updated graphics, a scrolling camera engine, fade-in/out effects, and index-based stage loading capabilities. Unfortunately, there is no sound and no enemies nor attacks you can perform. You can still climb walls, though. If you exit your house, there is a climb test area after the forest. Also, jumping height is proportional to the time you hold the A Button.
- If you keep pressing the B Button, the next stage index is immediately loaded, but most are from garbage data, which I find really cool. (Some stages might have a totally black or gray palette, but the game should not hang)
- Sprite engine is pixel-perfect at clipping sprites at the borders, which you can check with the dummy ninja at the forest.
- Collision engine has some quirks and bugs at specific spots, which is kind of a nice secret to find out.
So, this is it. I really had fun programming these little games, and I felt that people should see them. What good are (*small* *test*) games that people can't play?