Risposte:
Strumenti diversi lo affrontano in modi diversi, ma il modo in cui Blitz3D lo fa è racchiudere il codice e un interprete in un pacchetto. Quindi quando esegui l'exe, questo avvia l'interprete e passa il codice in bundle. È praticamente lo stesso di come, diciamo, Python funziona quando si usa py2exe.
In molti strumenti di sviluppo del gioco, il codice in bundle con l'eseguibile è semplicemente un testo non elaborato analizzato dall'interprete. Tuttavia alcuni adottano un approccio bytecode come Java, in cui il codice sorgente viene trasformato in una forma intermedia utilizzata dalla macchina virtuale. Penso che Unity usi quest'ultimo approccio ma non ne sono sicuro.
Dall'alto della mia testa tutti gli strumenti di sviluppo del gioco che mi viene in mente che gli eseguibili del pacchetto sono basati su questo approccio di un interprete principale / macchina virtuale e quindi impacchettati con il codice, o sono librerie compilate in Visual Studio o altro.
Il flusso di programma, la gestione variabile e simili sono compilati in puro codice macchina, mentre i comandi di alto livello sono implementati come funzioni di libreria C ++ che vengono chiamate dalla libreria di runtime compilata in ogni eseguibile generato da Blitz. Non appartenente alla famiglia Blitz Basic viene interpretato come Python.