Respostas:
Diferentes ferramentas abordam isso de maneiras diferentes, mas a maneira como o Blitz3D faz isso é agrupar o código e um intérprete em um pacote. Então, quando você executa o exe, inicia o intérprete e passa o código incluído. É praticamente o mesmo que, digamos, que o Python funcione ao usar o py2exe.
Em muitas ferramentas de desenvolvimento de jogos, o código que acompanha o executável é simplesmente o texto bruto que o intérprete analisa. No entanto, alguns adotam uma abordagem de bytecode como Java, onde o código-fonte é transformado em uma forma intermediária que a máquina virtual usa. Acho que o Unity usa essa última abordagem, mas não tenho certeza.
Em primeiro lugar, todas as ferramentas de desenvolvimento de jogos que eu consigo pensar nos executáveis de pacotes são baseadas nessa abordagem de um interpretador / máquina virtual principal e depois empacotam com o código, ou são bibliotecas que você compila no Visual Studio ou qualquer outra coisa.
O fluxo do programa, manipulação de variáveis e similares são compilados em código de máquina puro, enquanto os comandos de alto nível são implementados como funções da biblioteca C ++, chamadas a partir da biblioteca de tempo de execução compilada em todos os executáveis gerados pelo Blitz. Não da família Blitz Basic é interpretada como Python.