Estoy escribiendo un sistema de partículas. (para un juego y un editor de partículas) En este sistema hay un 0 a n modificadores. Aquellos modifican las partículas en el sistema de partículas en cada cuadro.¿Qué enfoque debo usar para el script de C#?
Por ejemplo, podría tener un modificador predefinido llamado "GravityModifier" que solo hace lo siguiente para cada partícula de cada fotograma: "particle.Velocity.Y + = 9.81" o algo así.
Ahora quiero que el usuario pueda escribir modificadores adicionales en el tiempo de ejecución (en el editor). Me gustaría poder usar C# solo para esto. Y dado que los sistemas de partículas se escriben en archivos JSON, los scripts de modificación personalizados deben escribirse como código fuente (tal vez codificado en base64) en el archivo.
-
Mi pregunta es: Supongamos que el juego quiere cargar un archivo de sistema de este tipo de partículas. ¿Cómo compilo los modificadores personalizados en código ejecutable?
Otra cosa muy importante a considerar al responder a esta pregunta: Tenga en cuenta que este será un sistema de partículas para un juego. El código compilado será llamado más de 3000 veces en cada cuadro. (principalmente a 60 fps) Por lo tanto, es muy importante que el código compilado no tarde mucho más tiempo en ejecutarse que otras funciones del juego. Sería bueno tener los scripts de modificación compilados en los delegados de la forma: delegate void ModifyParticle (ref Particle p);
¿Esto es posible? ¿Si es así, cómo?
También puede obtener algunas buenas ideas al buscar este tema en [gamedev] (http://gamedev.stackexchange.com/). Pero, creo que sigue siendo una buena pregunta para este sitio. – jadarnel27
Creo que hay algunos juegos comerciales (Second Life) que usan Mono como motor de scripts: http://www.mono-project.com/Scripting_With_Mono –