He tenido un ojo en los lenguajes de programación funcionales por un tiempo, pero dudo en entrar en ellos. Pero creo que es hora de que al menos empiece a mirar en esa dirección para asegurarme de que estoy listo para cualquier cosa.
He visto hablar de Haskell, F #, Scala, etc. Pero no tengo idea de las diferencias entre los idiomas y sus comunidades, ni me importa particularmente; excepto en el contexto del desarrollo del juego.
Entonces, desde el punto de vista del desarrollo de juegos, ¿ qué lenguaje de programación funcional tiene las características más adecuadas para la programación de juegos? Por ejemplo, ¿hay bibliotecas / motores / marcos de desarrollo de juegos funcionales o motores gráficos para lenguajes funcionales? ¿Existe algún lenguaje que maneje mejor ciertas estructuras de datos que se usan comúnmente en el desarrollo de juegos?
En pocas palabras: ¿qué lenguaje de programación funcional es mejor para la programación funcional de juegos y por qué?
Creo / espero que esta pregunta declare un mejor lenguaje claro, por lo tanto, no la he marcado CW a pesar de su tendencia subjetiva.
fuente
Respuestas:
F # es parte de la familia Microsofts .net tiene acceso a XNA, que es una base fantástica para crear juegos. Un poco de google aparece algunos tutoriales, videos y artículos. Los excelentes documentos de XNA también deberían ayudar.
Ha habido algo de movimiento en los juegos para Haskell también, mira aquí . Probablemente usarás enlaces openGL.
Dado que Scala juega en tierra Java, se integra con todos los motores / enlaces Java disponibles, vea esta publicación SO .
Creo que todo se reduce a preferencias, aunque solo he jugado con Haskell, imagino que cada lenguaje funcional tiene su propia idiosincrasia. Puede valer la pena preparar un pequeño juego de prueba en cada uno y ver cuál te parece mejor.
Como dije, solo tengo una experiencia mínima de Haskell, así que no puedo comentar sobre lo mejor, pero estos recursos deberían ayudarlo a comenzar con suerte.
fuente
Yo diría Lisp.
Se ha utilizado en juegos como lenguaje de script, al menos en Naughty Dog (o eso creo), y es un lenguaje muy maduro.
La ventaja de Lisp está en la deserialización, que es una parte importante de lo que llamamos gestión de activos. La deserialización del lisp es trivial, el código y los datos son uno. Esto facilita tener un formato de archivo para activos y comportamientos. No es como uno en json / xml / yaml / bin y un archivo F # para AI. Puede guardar todo como expresiones s, lo que simplificará mucho la canalización de activos.
fuente
Después de adquirir algo de experiencia práctica con él, votaría por Clojure, que ya ha escrito un pequeño juego en él, y planea hacer más.
Razones:
El único momento en que no consideraría Clojure sería si estuviera escribiendo un juego de vanguardia gráficamente intensivo en el que necesita un rendimiento de vanguardia (donde todavía creo que necesita C / C ++).
fuente