When switching between optimised (-O2) and non-optimised (-Od) builds, the -O is usually all that Casey will change.
In %CommonCompilerFlags% we also specify -MTd, which tells the compiler to produce a debug multithreaded executable. However, in the linker flags for the game DLL, we specify -LD (not LDd, which is the debug equivalent). The compilation of the game DLL actually has both -MTd and -LD but I assume LD overrides it, as we get a .dll as output.
1) Is the -O flag the only thing which will make a significant difference in performance? Does a debug build built with -O2 run comparably to a non-debug build at -O2?
2) Are we deliberately making a debug version of the .exe and a non-debug version of the .dll for a particular reason?