函数式编程适合游戏开发吗?(非服务端)

如题,Clojure或者类似的函数式编程语言是否适合开发游戏(非服务端)?

阅读 6.8k
3 个回答

简单答案是 Why not?

复杂答案是正在有不少探索,但离实用阶段还有些距离。例如Clojure-unity3d是探索用 Clojure 来作为 Unity3D 的脚本语言。这个看起来过分早期?也可以看看 play-clj,使用 libGDX 来做跨平台的开发。

它还处于萌芽阶段的原因有:

  • 函数式编程本身还不是广为接受。
  • 函数式编程所提供的好处在游戏客户端方面的优势不明显。
  • 游戏客户端开发者关心的其他问题如跨平台问题、性能问题远远在语言选择问题之上。

据我所知游戏客户端(PC)的开发是以C/C++ & Lua组合为主流的,其中前者负责图像、物理等引擎部份,后者负责关卡、剧情的DSL

函数式语言首先做不了后者(门槛偏高),然后如果要取代前者的话,物理引擎可能还行,图像引擎的话回避不开OpenGL和D3D等图像库亲C的问题。另外性能方面也有待具体考量

不过我知道Clojure和Scala是JVM语言,可以睡在安卓的dalvik上,取代Java做安卓游戏开发。不过高性能的部分还是需要NDK和C家族的语言支持

非游戏开发,请专业人士继续补充

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进