Ich habe eine Weile ein Auge auf funktionierende Programmiersprachen geworfen, zögere aber, mich darauf einzulassen. Aber ich denke, es ist an der Zeit, zumindest einen Blick in diese Richtung zu werfen, um sicherzugehen, dass ich zu allem bereit bin.
Ich habe gesehen, wie von Haskell, F #, Scala und so weiter gesprochen wurde. Aber ich habe keine Ahnung von den Unterschieden zwischen den Sprachen und ihren Gemeinschaften und kümmere mich auch nicht besonders darum. außer im Rahmen der Spieleentwicklung.
Welche funktionale Programmiersprache eignet sich aus Sicht der Spieleentwicklung am besten für die Spieleprogrammierung? Gibt es zum Beispiel funktionale Spieleentwicklungsbibliotheken / Engines / Frameworks oder Grafikengines für funktionale Sprachen? Gibt es eine Sprache, die bestimmte Datenstrukturen, die üblicherweise in der Spieleentwicklung verwendet werden, besser handhabt?
Fazit: Welche funktionale Programmiersprache eignet sich am besten für die funktionale Spielprogrammierung und warum?
Ich glaube / hoffe, dass diese Frage eine klar beste Sprache darstellt, daher habe ich sie trotz ihrer subjektiven Tendenz nicht als CW markiert.
quelle
Antworten:
F #, das Teil der .net-Familie von Microsoft ist, hat Zugriff auf XNA, eine fantastische Basis zum Erstellen von Spielen. Ein bisschen googeln bringt einige Tutorials, Videos und Artikel. Die großartigen XNA-Dokumente sollten ebenfalls helfen.
Auch für Haskell hat sich einiges getan, siehe hier . Sie werden wahrscheinlich OpenGL-Bindungen verwenden.
Da Scala im Java-Land spielt, integriert es sich in alle verfügbaren Java-Engines / Bindings, siehe diesen SO- Beitrag.
Ich denke, es kommt auf die Vorlieben an, obwohl ich nur mit Haskell gespielt habe, würde ich mir vorstellen, dass jede funktionale Sprache ihre eigenen Besonderheiten hat. Es kann sich lohnen, in jedem ein kleines Testspiel auszuprobieren und zu sehen, welches sich für Sie besser anfühlt.
Wie gesagt, ich habe nur minimale Haskell-Erfahrung, daher kann ich nicht die besten kommentieren, aber diese Ressourcen sollten Ihnen hoffentlich den Einstieg erleichtern.
quelle
Ich würde Lisp sagen.
Es wurde in Spielen als Skriptsprache verwendet, zumindest bei Naughty Dog (oder wie ich finde), und ist eine sehr ausgereifte Sprache.
Der Vorteil von Lisp liegt in der Deserialisierung, die ein wesentlicher Bestandteil des sogenannten Asset Managements ist. Das Deserialisieren von Lisp ist trivial, der Code und die Daten sind eins. Dadurch wird es einfacher, ein Dateiformat für Assets und Verhaltensweisen zu haben. Es ist nicht so, dass Sie eine in json / xml / yaml / bin und eine F # -Datei für AI haben. Sie können alles als s-Ausdrücke speichern, was die Asset-Pipeline erheblich vereinfachen wird.
quelle
Nachdem ich einige praktische Erfahrungen damit gesammelt hatte, würde ich für Clojure stimmen - ich habe bereits ein kleines Spiel geschrieben und plane, mehr zu tun.
Gründe dafür:
Das einzige Mal, dass ich Clojure nicht in Betracht ziehen würde, wäre, wenn ich ein hochmodernes, grafisch intensives Spiel schreibe, in dem Sie Spitzenleistung benötigen (in dem ich immer noch denke, dass Sie C / C ++ benötigen).
quelle