My personal project.
This is an attempt to create a game for the Nintendo Entertainment System, or NES.
At this stage, only a framework for a game has been completed, but it can be easily expanded.
Made in 6502 assembly, the MOS 6502 being the processor of the NES.
Basic Gameplay
The game is a simple space shooter. Dodge the attacks of the enemies from above while shooting at them yourself. While power-ups are not yet implemented, there are several levels of beam the player can use to attack.
Engine Design
Enemy and player attack interations are managed by a reliable collision detection system. Player, projectile and enemy data is stored in arrays within the zero page for improved performance. The state of these entities are tracked, including player power-up state, enemy type, animation progress, and HP. These can be altered at any time and the drawing routine will add or remove entities accordingly.
Randomness
Using a pseudo random number generator, some variety is added to the game experience. Enemies are initialised with random cooldowns on their attacks, as well as randomiser times between attacks. They also begin moving in random directions. Also, the stars in the scrolling background form a random pattern. The random numbers generated are tweaked to fit within a suitable range, to make sure the randomness is not to unpredictable.
Showcase
A short gameplay demo can be watched here.
Development Tools
Made using the 6502 assembly language, compiled by cc65. Code written using Visual Studio Code. Game tested using the Mesen emulator.
VSC, ASM, cc65.