J'ai un œil sur les langages de programmation fonctionnels depuis un certain temps, mais j'hésite vraiment à m'y mettre. Mais je pense qu'il est temps que je commence au moins à regarder dans cette direction pour m'assurer que je suis prêt à tout.
J'ai vu parler de Haskell, F #, Scala, etc. Mais je n'ai aucune idée des différences entre les langues et leurs communautés, et je ne m'en soucie pas particulièrement; sauf dans le cadre du développement de jeux.
Donc, du point de vue du développement de jeux, quel langage de programmation fonctionnel a le plus de fonctionnalités adaptées à la programmation de jeux? Par exemple, existe-t-il des bibliothèques / moteurs / frameworks de développement de jeux fonctionnels ou des moteurs graphiques pour les langages fonctionnels? Existe-t-il un langage qui gère mieux certaines structures de données couramment utilisées dans le développement de jeux?
Conclusion: quel langage de programmation fonctionnel est le meilleur pour la programmation de jeux fonctionnels, et pourquoi?
Je crois / j'espère que cette question déclarera un meilleur langage clair donc je ne l'ai pas marqué CW malgré sa tendance subjective.
la source
Réponses:
F # faisant partie de la famille Microsofts .net a accès à XNA, qui est une base fantastique pour construire des jeux. Un peu de recherche sur Google révèle des tutoriels, des vidéos et des articles. Les excellents documents XNA devraient également vous aider.
Il y a également eu un certain mouvement dans les jeux pour Haskell, voir ici . Vous utiliserez probablement des liaisons openGL.
Étant donné que Scala joue en Java, il s'intègre à tous les moteurs / liaisons Java disponibles, voir cet article SO .
Je pense que cela se résume à la préférence, alors que je n'ai joué qu'avec Haskell, j'imagine que chaque langage fonctionnel a ses propres particularités. Il peut être utile de préparer un petit jeu de test dans chacun et de voir lequel vous semble le mieux.
Comme je l'ai dit, je n'ai qu'une expérience minimale de Haskell, donc je ne peux pas faire de commentaire sur le meilleur, mais ces ressources devraient vous aider à démarrer, espérons-le.
la source
Je dirais Lisp.
Il a été utilisé dans les jeux comme langage de script, chez Naughty Dog au moins (ou c'était je pense), et est un langage très mature.
L'avantage de Lisp réside dans la désérialisation, qui constitue une partie importante de ce que nous appelons la gestion d'actifs. La désérialisation de lisp est triviale, le code et les données ne font qu'un. Cela rend plus facile d'avoir un format de fichier pour les actifs et les comportements. Ce n'est pas comme vous un fichier json / xml / yaml / bin et un fichier F # pour l'IA. Vous pouvez tout enregistrer sous forme d'expressions s, ce qui simplifiera beaucoup le pipeline d'actifs.
la source
Après avoir acquis une certaine expérience pratique avec lui, je voterais pour Clojure - déjà écrit un petit jeu dedans, et prévoyant d'en faire plus.
Les raisons:
La seule fois où je ne considérerais pas Clojure serait si j'écrivais un jeu graphique intensif de pointe où vous avez besoin de performances de pointe (où je pense toujours que vous avez besoin de C / C ++).
la source