Hola de nuevo!
Hace una temporadilla que no me meto en el foro porque el curro me absorbe demasiado tiempo. Pero bueno, vamos al tema, que tampoco os voy a contar mis penas :P .
Mi idea inicial de crear una API de alto nivel me sigue pareciendo interesante como proyecto experimental, pero estoy completamente de acuerdo en que no sería factible a la hora de programar un juego real, por muchas de las razones que ya habeis expuesto entre unos y otros. De modo que voy a modificar la propuesta, a raiz de una de las respuestas que he visto y que me ha parecido especialmente interesante (que nadie se piense que la idea ha sido mia).
La intención de crear una API multi-engine es la de establecer un mecanismo para distanciarse de la implementación real del juego y centrarse en la definición. Pero como la idea de la API no ha triunfado, una alternativa es definir el juego mediante un lenguaje (XML por ejemplo). Este lenguaje tendrá una sintaxis tal que permita establecer todos los aspectos del juego (igual que se haría con un lenguaje imperativo), pero será totalmente independiente de todo lenguaje de programación. De esta forma, y una vez definido el juego, se podrá usar el archivo (o archivos) XML como entrada para un transformador que lo traduzca a un lenguaje de scripting determinado (Lua, por poner un ejemplo) o directamente a código fuente ejecutable. De esta forma una única definición de juego podría producir mediante procesos automáticos varias implementaciones en distintos motores.
Por supuesto, y dada la complejidad de cualquier juego, harían falta editores y herramientas de alto nivel que permitan definir el juego sin tener que escribir el código XML a mano; de lo contrario, y ya que un juego sencillito podría facilmente ocupar varios archivos enlazados con cientos de líneas de código, escribiendo todo esto a mano sería una tarea tan costosa como programarlo directamente, y no estaríamos avanzado mucho.
Además un lenguaje así podrá ser fácilmente extensible a medida que surjan nuevas posibilidades en los motores de juego. Y si este lenguaje consiguiera ser aceptado como estándar por algún organismo oficial (esto ya es puramente fantasear, claro), los propios desarrolladores de motores (en especial los comerciales) fabricarían los traductores para sus productos.
Esto me lleva a plantearme como evolucionaria el mercado de videojuegos en general si existiera realmente un estandar de definición de juegos (como lo es HTML para la WWW). (¿O existe y no estoy enterado, que podria ser?) Pero no creo que sea este el hilo para hablar del tema.
Bueno, que empiezo a desvariar. Este es el nuevo planteamiento a grosso modo, aunque con el mismo objetivo inicial: olvidarse de programar juegos para dedicarse únicamente a diseñarlos. Espero con cariño un nuevo aluvión de críticas. :P :P
Hace una temporadilla que no me meto en el foro porque el curro me absorbe demasiado tiempo. Pero bueno, vamos al tema, que tampoco os voy a contar mis penas :P .
Mi idea inicial de crear una API de alto nivel me sigue pareciendo interesante como proyecto experimental, pero estoy completamente de acuerdo en que no sería factible a la hora de programar un juego real, por muchas de las razones que ya habeis expuesto entre unos y otros. De modo que voy a modificar la propuesta, a raiz de una de las respuestas que he visto y que me ha parecido especialmente interesante (que nadie se piense que la idea ha sido mia).
La intención de crear una API multi-engine es la de establecer un mecanismo para distanciarse de la implementación real del juego y centrarse en la definición. Pero como la idea de la API no ha triunfado, una alternativa es definir el juego mediante un lenguaje (XML por ejemplo). Este lenguaje tendrá una sintaxis tal que permita establecer todos los aspectos del juego (igual que se haría con un lenguaje imperativo), pero será totalmente independiente de todo lenguaje de programación. De esta forma, y una vez definido el juego, se podrá usar el archivo (o archivos) XML como entrada para un transformador que lo traduzca a un lenguaje de scripting determinado (Lua, por poner un ejemplo) o directamente a código fuente ejecutable. De esta forma una única definición de juego podría producir mediante procesos automáticos varias implementaciones en distintos motores.
Por supuesto, y dada la complejidad de cualquier juego, harían falta editores y herramientas de alto nivel que permitan definir el juego sin tener que escribir el código XML a mano; de lo contrario, y ya que un juego sencillito podría facilmente ocupar varios archivos enlazados con cientos de líneas de código, escribiendo todo esto a mano sería una tarea tan costosa como programarlo directamente, y no estaríamos avanzado mucho.
Además un lenguaje así podrá ser fácilmente extensible a medida que surjan nuevas posibilidades en los motores de juego. Y si este lenguaje consiguiera ser aceptado como estándar por algún organismo oficial (esto ya es puramente fantasear, claro), los propios desarrolladores de motores (en especial los comerciales) fabricarían los traductores para sus productos.
Esto me lleva a plantearme como evolucionaria el mercado de videojuegos en general si existiera realmente un estandar de definición de juegos (como lo es HTML para la WWW). (¿O existe y no estoy enterado, que podria ser?) Pero no creo que sea este el hilo para hablar del tema.
Bueno, que empiezo a desvariar. Este es el nuevo planteamiento a grosso modo, aunque con el mismo objetivo inicial: olvidarse de programar juegos para dedicarse únicamente a diseñarlos. Espero con cariño un nuevo aluvión de críticas. :P :P