In the summer of 2010 after the completion of Jetpack Paladin I began work on a new project. Hammernaut was to be a flash game tailored to abide by the technical and aesthetic limitations of the NES.
Through my research I arrived at the following restrictions:
- No scaling or Rotating
- Only four sets of colours for sprites
- Only four colours per set, minus one if you want transparency
- Only four sets of colours for tiles
- 256 x 240 resolution
- 8 sprites per scanline, 64 onscreen sprites (often circumvented by flickering)
- Horizontal OR vertical scrolling (only certain games managed both at once)
With these in mind I began construction of the game’s backend. I created the basic structure of the game – a 256 by 240 pixel movieclip scaled up to 768 by 720, a level editor, enemy spawners which carefully chose when to respawn offscreen enemies – then I created the player, the next most crucial element. I made enemies, ladders, conveyor belts, and harmful tiles, I implemented flicker to simulate the sprite limitations, and created an effective system for room switching. Hammernaut was coming along nicely all that remained was to progress into developing more enemies, tilesets, and levels.
Sadly though, this project was slowly pushed asside by university work during my first year at the University of Derby. I did return to it the next summer with a more object orientated approach, recoding almost the entire project to a higher standard, but after a few weeks I decided that it would be more pertinent to invest my time in university related work again. I worked on understanding OpenGL instead, replacing it’s depracted functionality and making it fully forward compatible. Given the help that that experience was in my second year, I think I made the right choice.
Hammernaut will live again, one day. It probably won’t be a flash game though – I have plans to implement it in an environment where I have more control over the rendering. Control in this way would allow me to actually build the required limmitations into the renderer, such as using colour palettes for sprites and tiles so I can pull off cool things like palette swaps through code rather than with assets.