While reading some of the tricks andre lamothe suggests that we keep in mind when developing games it seemed like assembly language would be the ideal tool for developing games. For instance he suggests that c++ should be used sparingly I guess because of the performace loss of using a lot of objects with multiple inheritance etc. He also seems to be fond of using global variables instead of passing parameters on the stack. Assembly language would be useful in this case because function parameters can be passed through registers. Another trick he mentioned was using the left and right shift operators to do multiplication and division. It seems like he likes to use C as an assembly language of sorts and I guess thats why C is sometimes called a mid level or high level assembly language. I understand the usefulness of a high level assembly language when a program is being written with portablility in mind but if a game is being written for windows only or for one specific platform wouldn't it just be better to use assembly instead of trying to emulate it with a high level language.
And in addition to this I think that having the instruction set of a particular processor at your disposal allows the programmer to be more expressive in the implementation of algorithms leading to sometimes a better implementation whether better means shorter or faster or both. A lot of people question whether or not assembly is a suitable development tool today but i think game programming may just be one area where it's a perfect fit. What do you guys think?