Hay varias aplicaciones como Blitz3D u otros tipos de herramientas de construcción de juegos que compilan scripts u otros datos del juego en un solo archivo ejecutable. ¿Cómo lo hacen?
fuente
Hay varias aplicaciones como Blitz3D u otros tipos de herramientas de construcción de juegos que compilan scripts u otros datos del juego en un solo archivo ejecutable. ¿Cómo lo hacen?
Las diferentes herramientas se acercan a eso de diferentes maneras, pero la forma en que Blitz3D lo hace es envolver el código y un intérprete en un paquete. Luego, cuando ejecuta el exe, se inicia el intérprete y se pasa el código incluido. Es casi lo mismo que, por ejemplo, Python funciona cuando se usa py2exe.
En muchas herramientas de desarrollo de juegos, el código que se incluye junto con el ejecutable es simplemente texto sin formato que el intérprete analiza. Sin embargo, algunos adoptan un enfoque de código de bytes como Java, donde el código fuente se convierte en una forma intermedia que utiliza la máquina virtual. Creo que Unity usa este último enfoque, pero no estoy seguro.
Fuera de mi cabeza, todas las herramientas de desarrollo de juegos que puedo pensar que los ejecutables del paquete se basan en este enfoque de un intérprete central / máquina virtual y luego lo empaquetan con el código, o son bibliotecas que compila en Visual Studio o lo que sea.
El flujo del programa, el manejo de variables y similares se compilan en código máquina puro, mientras que los comandos de alto nivel se implementan como funciones de biblioteca C ++ que se llaman desde la biblioteca de tiempo de ejecución compilada en cada ejecutable generado por Blitz. Ninguno de la familia Blitz Basic se interpreta como Python.
fuente