ECE 476 Final Project
While we achieved most of our goals (pun intended), there were a few extras that we would have liked to implement.
It would have been nice to be able to render the game in colour. Doing so would require an external RGB-to-NTSC encoder, as the Atmel Microcontroller does not have the speed to generate the complex waveform required for NTSC colour. Another issue is that this would drop the available resolution of our screen, since the colour data would take up more space in memory. Between the 1600 bytes used for the display, as well as a lot of space consumed using static strings (to avoid time-expensive sprintf's), we came very close to filling up the Mega32's entire 2kB of RAM, with barely enough left over for program stack space.
We had originally planned for the teams to consist of two players and a goalie. The logic for this was not too complex - most of the player control logic could have been duplicated and used as-is. Unfortunately, the extra time required between each frame to draw two more players, as well as handle the AI for movements, causes serious artifacts to appear on the screen. It might be possible to fix this by painstakingly optimising all our routines, possibly rewriting some of the player drawing code in assembly. But we felt that the time to do so would be prohibitive, and would prevent us from creating a polished game.
Overall, however, we are very pleased with how the game turned out. Considering the time allotted, there isn't much more that we could have done with the game - at least not from what we originally planned to do.