Los juegos y la programación funcional son difíciles de casar juntos. He jugado con el desarrollo de juegos en varios idiomas, incluyendo una o dos veces en un lenguaje de programación funcional.
Muchos juegos, los juegos de rol en particular, tienen algo que la programación funcional parece odiar: un estado de juego global grande y complejo. A los programas funcionales les gusta dividir todo en pequeñas composiciones elegantes de funciones, y tener que pasar una gran parte del estado del juego a cada pequeña función se vuelve bastante difícil de manejar. A las funciones les gusta preocuparse por el menor estado posible, lo que hace que sea difícil programar un juego a gran escala idiomáticamente en un lenguaje funcional. Podría haber algunas ventajas para un enfoque funcional si el juego depende en gran medida de la generación de procedimientos y los estados de juego de corta duración.
Dejando de lado el estilo de programación funcional, está el problema del soporte de la biblioteca. A menos que tenga la intención de construir su motor desde cero (desaconsejado para un recién llegado al desarrollo de juegos), querrá construir su juego sobre una biblioteca multimedia como SDL, o un motor precompilado como Unreal o Unity. La mayoría de los marcos solo tienen unos pocos lenguajes de programación que admiten. Los más comunes son probablemente C # y C ++. A la unidad también le gusta Javascript.
Hay algunos ejemplos interesantes de juegos escritos exclusivamente en lenguajes funcionales (me viene a la mente Monadius) pero no muchos.
- ¿Qué puedo hacer si estoy familiarizado con Unreal Engine y tengo un año para desarrollar, es decir, para programar, un juego interesante y considerable?
- ¿Qué son los juegos de rol?
- ¿Cuál es su opinión sobre la legalización de jugar juegos en línea como Rummy en India?
- ¿Cuál es tu opinión de No Man’s Sky?
- ¿Puedo usar legalmente una versión modificada de la mecánica de batalla de Undertale en mi juego gratuito?
El desarrollo de juegos (especialmente para PC / consolas) se centra bastante en los lenguajes OOP.