fra*_*ees 18 c++ architecture components game-engine frp
今天,我读到了有关FRP(功能反应式编程)的内容.但是,我不知道这适合发动机本身.
阅读Gerold Meisinger的文章后,我的问题是,如果使用FRP而不是基于组件的架构是值得的.这是游戏引擎架构设计的不久的将来吗?这只是解决基于组件的架构的小问题的一种简单方法吗?我很欣赏任何文章,解释,个人意见等.
想想商业游戏的引擎,特别是射击游戏或赛车类型(3D游戏).不要考虑2D平台或其他更简单(谈论引擎复杂性)的平台.我使用C/C++(我注意到使用FRP的人依赖于Haskell,因为它的性质.但是,我看到这个文档并且更喜欢站在C++上,作为"行业标准").
Pau*_*nta 19
C++自然不适合FRP; 你使用的任何库(Boost.Phoenix是一个很好的库)都会带来一些你很可能不想在商业3D游戏中处理的开销.
不仅如此,FRP并不是一种非常发达的游戏技术,即使在Haskell,afaik也是如此; 你想制作一款游戏,还是想开发制作游戏的技巧?
基于组件的实体系统已经存在了很长一段时间,并且是经过验证的概念.它们确实有其局限性,最值得注意的是,组件如何相互通信? - 一种解决方案是拥有两种类型的组件,属性和行为; 后者可以访问任何属性,但是它们不能相互访问.
如果你想制作游戏,请选择CBS.如果你想在游戏中帮助开发FRP,那就去做吧.
顺便说一句,你说二维游戏有简单的引擎是非常错误的.:)
2014年更新
从那以后出现了一种新的语言,它广泛使用功能反应技术,并且针对网络开发,称为Elm.它与Haskell非常相似,并由Prezi,afaik 支持.语言设计师有一个非常好的演示,他使用FRP制作了一个小游戏.任何对如何处理FRP感兴趣的人都可能想看看那个视频.