Cómo construir juegos de rol con programación funcional

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.

El desarrollo de juegos (especialmente para PC / consolas) se centra bastante en los lenguajes OOP.