首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游戏引擎上的FRP。值得吗?

游戏引擎上的FRP。值得吗?
EN

Stack Overflow用户
提问于 2011-12-01 03:50:39
回答 2查看 8.2K关注 0票数 18

今天,我读到了关于FRP (函数式反应式编程)的内容。然而,我不知道这在引擎本身中有多合适。

读完Gerold Meisinger's article后,我的问题是,是否值得使用FRP而不是基于组件的体系结构。这是游戏引擎架构设计不久的将来吗?这只是一种解决小问题的简单方法--基于组件的体系结构呢?我会感谢任何文章,解释,个人意见等。

想一想商业游戏的引擎,特别是射击游戏或赛车游戏(3D游戏)。不要考虑2D平台或其他更简单的(谈论引擎复杂性)平台。我会使用C/C++ (我注意到使用FRP的人依赖于Haskell,因为它的性质。然而,我看到了this document,并更喜欢站在C++上,将其作为“行业标准”)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-01 04:01:40

C++自然不适合FRP;您使用的任何库(Boost.Phoenix是一个很好的库)都会带来一些开销,这些开销很可能是您在商业3D游戏中不想处理的。

不仅如此,FRP对于游戏来说也不是一种非常成熟的技术,甚至在Haskell,afaik中也不是;你是想做一个游戏,还是想开发一种制作游戏的技术?

基于组件的实体系统已经存在了很长一段时间,并且是一个经过验证的概念。它们确实有其局限性,最值得注意的是,组件如何相互通信?-一种解决方案是有两种类型的组件,属性和行为;后者可以访问任何属性,但它们不能相互访问。

如果你想做一个游戏,那就去CBS吧。如果你想在游戏中帮助开发FRP,那么就去做吧。

顺便说一句,你说2D游戏只有简单的引擎是大错特错的。:)

2014更新

自那以后,一种新的语言出现了,它广泛使用了函数式反应技术,并针对web开发,称为Elm。它与Haskell非常相似,并得到了Prezi、afaik的支持。这位语言设计师有一个相当不错的presentation,他用FRP做了一个小游戏。任何对FRP应该如何处理感兴趣的人都可能想看看这个视频。

票数 19
EN

Stack Overflow用户

发布于 2012-03-12 05:54:18

简短的回答:可能没有一个!

然而,我不知道这在引擎本身中有多合适。

我不明白你这么说是什么意思,但是每一段涉及时间的代码(即使用update( float elapsedTime ))理论上通常都适合FRP。关于"fit in engine",也许HaskellWiki Yampa - Game Engine可以帮助回答你的问题(我的论文的一个精简的英文翻译版本,解释了整体架构)。从关于FRP的讨论和阅读一些FRP论文来看,总体理论概念似乎还存在一些未解决的问题,因此我建议在商业项目中使用任何FRP库之前做一些彻底的测试(特别是性能和内存问题)。看一看Frag video。这是一个用FRP编写的射手,也是当今最先进的例子。

考虑一下商业游戏的引擎,特别是射击游戏或赛车游戏(3D游戏)。

嗯,你的关注点是什么?你在开发一款商业游戏吗?然后使用一个现有的引擎,不用担心!你在开发一个引擎吗?那么FRP可能是一个有趣的概念。对于射击和赛车游戏来说,不同的游戏对象和组件不应该是必要的,因为它们只使用很少的不同游戏对象,并且过于关注架构可能是过度工程。没有重点?获得一个焦点!你不能自己开发下一个IdTech引擎和下一个末日游戏。

我看到了这个文档,我更喜欢站在C++上,把它作为“行业标准”

也有一些用于C++的库。搜索“反应式或时间编程”。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8332040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档