This book spoke about optimisations, and while the code doesn't necessarily apply, the general principles do:
One of the first points it makes is: there is no use optimising in assembler an algorithm that is no good to begin with. Don't ever go to that level until you are 100% sure you've squeezed as much juice as possible out of the fastest algorithm, as quite often that's where the biggest speed increases come from. In addition, it has some really good techniques for graphics. You can download the whole thing for free from some sites as well, although I think byte.com charge something so you might want to search google.
You may want to check out
www.gamedev.net as well - they have a lot of tutorial style articles that I found really useful.