Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Gallo en 21 de Marzo de 2012, 04:51:30 PM

Título: La tecnologia detras de Unreal/Unity en flash
Publicado por: Gallo en 21 de Marzo de 2012, 04:51:30 PM
Hola, cuando leí que Unity y Unreal eran capaces de deployar los juegos en flash gracias a Stage3D me entró curiosidad por saber cual era la tecnología que permitia esto. No me estoy refiriendo a la tecnología que permite los gráficos, que es como ya digo Stage3D, si no, mas bien, como "traducen" a flash.

La cuestión es que ambos motores funcionan con una "máquina virtual", Unreal para ejecutar el bytecode del unrealscript pre-compilado, y Unity la máquina virtual de Mono. Dicho esto, cuando hablamos de flash, este es una tercera máquina virtual, y a diferencia de las otras dos, no está incluida en el motor del juego, si no que el que juego en si se ejecuta encima de esta máquina (no solo su scripting, si no todo). Entonces, mi duda es, éxactamente, ¿que se ha portado a Flash? ¿que se ha reutilizado de lo que ya habia en C++? ¿Cual es la tecnología detras de todo esto? Como conozco un poco mas Unreal que unity, he sacado algunas conclusiones de como podria estar funcionando:

- El engine entero ha sido reescrito a ActionScript 3.0 y se aprobecha la máquina virtual de flash incluyendo un transcompilador que traduce de unreal script a action script.

- El engine entero ha sido reescrito a ActionScript 3.0, también la máquina virtual de unrealscript y esta ejecuta el bytecode (una máquina virtual ejecutada encima de otra).

- Algunas partes del motor como el rendering, el scenegraph, etc.. están escritas en ActionScript 3.0 y otras como la carga de packages están como native extensions, básicamente seria las que se usan durante la carga están en nativo, y las que se utilizan en tiempo real en actionscript.

- Solo la parte del render ha sido reescrita en ActionScript 3.0, otros modulos como el que carga packages, la máquina virtual o el scenegraph están como native extensions.

Yo apuesto mas por la cuarta, pero no estoy seguro. Se entiende que para PC, Mac, iOS etc, el engine sigue estando en nativo, lo que quiero decir es que se ha creado otra versión para flash.

Otra cosa que he visto por ahí son engines/frameworks que hacen lo del transcompiler para poder volcar a HTML5, nativo, etc... usando el mísmo código, ahí imagino que es si o si transcompiler a javascript seguro, por que en HTML5 ya no tienes la opción de utilizar algo parecido a las native extensions de flash (que yo sepa). ¿hay algo de documentación sobre este tema?

Parece que las únicas opciones para hacer un juego cross-platform para nativo/flash/html5/naci(chrome) sean comerciales, no busco algo gratuito que lo haga, aunque conocer una lista de motores o frameworks que hagan estas cosas puede ir bien, lo que busco es saber como se hace :S, saber la tecnología. A ver si alguien lo ha tocado o sabe donde encontrar documentación sobre esto.

Gracias.