在游戏开发中使用函数式编程的良好资源?

Mik*_*kka 43 lisp erlang haskell functional-programming

我对那个函数式编程范例很陌生,但到目前为止我喜欢它.自从我进入游戏开发以来,我想尝试用纯函数编程风格编写一些游戏.我不介意语言 - 无论是Erlang,Haskell,Lisp,还是Ruby(我发现它支持函数式编程特性).

嗯,很明显,要学习函数式编程(事实上,任何事情),最好的建议就是学习函数式语言和编程.但我正在寻找的是在游戏和游戏引擎(2D或3D)中使用函数式编程的一些资源.

那么,你知道任何函数式编程文章/书籍/博客/在实际游戏中使用它,或者用函数式编程语言设计简单的游戏引擎,以及在这个功能环境中游戏和游戏引擎之间的所有交互吗?

请不要建议像"只是开始编写功能简单的东西,然后它会逐渐出现".正如我之前所说,很明显,但我在这里要求的是关于这个主题的一些资源,如果有的话.谢谢!

Sim*_*ael 23

好吧,你可能比研究一些这些哈克尔游戏的代码更糟糕.

其中一些使用FRP(功能反应式编程),有些人正在将其作为游戏和其他东西的纯粹,高级技术.但大多数是有效和纯功能代码的典型混合物.

有相关内容的博主包括James Hague.

注意FunGEn在第一个链接 - 尽管没有主动维护它是一个带有工作示例的2D游戏引擎.

还有Clean语言,它的游戏库和漂亮的截图.


小智 7

好吧,我主要是一个Haskell程序员,所以我只能建议尝试Haskell库,如Gtk2hs.它主要用于2D应用程序和用户界面,但它很适合你入门:)一个更简单的库是HGL,但它略有漏洞和过时.如果你想尝试更混乱(但更酷!)的东西,那么去Haskell的OpenGL库,可以在这里找到.我从来没有尝试过使用Haskell和OpenGL,但是如果你查看Simon Michael提交的答案,Hackage的Game Section中有使用OpenGL的示例游戏.

很抱歉没有链接所有库,但我是新用户,我不允许超过一个超链接.如果你谷歌他们,他们应该很容易上来.


Tho*_*asH 7

如果您对游戏的网络化方面感兴趣,Joel Reymont已经写过他编写在线扑克服务器的经历.我认为他至少做了三种不同的实现(Lisp,Erlang,Haskell).不幸的是,他的材料分散在互联网上.以下是您可能会发现有用的两个指针:

编辑:

以下是一些后续指针和上述文档中已更改的链接.

编辑二:

乔尔显然已经卖掉了自己的扑克代码,因此它不再是开源代码.