Writing games for the Atari 2600 must have been amazingly finicky and difficult. The console didn't even have any video RAM (video RAM is an area of memory where you create the screen image (and it's contents) that you want to show, and the console automatically copies the contents of the video RAM to the real TV screen). Instead you had to keep track of what part of the TV screen was being written to at that particular tiny fraction of a second, and manually change the colour that was being written when the update 'cursor' was at the parts that you wanted to show a different colour.
Add that to the tiny amount of actual RAM (128 bytes), a not too fast processor, and games that had a very severe size limitation imposed by the cartridge formats of the day (usually 2 or 4 kb, though later games had more), and it's amazing that the 2600 had games as good as it did.
The most impressive program feat I can remember from those days though, was on the 1 kilobyte version of the ZX81, where someone has written a full Chess program (more or less). The ZX81 read it's programs from cassette, and used part of it's 1kb of RAM for screen memory and the system variables (unless you didn't need the latter, and so could overwrite them with your own code), so the Chess program wasn't even a full kilobyte in length, amazingly. It had no graphics, just a letter for each chess, and [to quote Wikipedia] "1K ZX Chess's code takes up only 672 bytes in memory, but implements chess rules except for castling, promotion, and en passant, including a computer opponent."
Utterly amazing.