Regular compiler (hereafter VM) compiles your code to bytecode, a list of instructions that is then handed off to the interpreter that executes your program. On the other hand, YYC compiles your game directly to C++ and to machine code which the computer can execute all on its own without the use of an interpreter. YYC is much faster making your game run a lot better computationally wise, since it compiles the game to native code for the target platform and processor. The catch is that it is very strict. It will complain over bad syntax and will not like it if you do something a bit incorrectly. Games compiled using YYC will usually act weird due to the differences between languages that the source code and destination code are written in. VM will always let you skip semicolons and won't care if you write a mess of a code, it will execute it the best it can until a lethal error is found. It's reliable, but very slow. If your program isn't computationally heavy, you probably don't need YYC at all.