首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在游戏开发中使用clutter

在游戏开发中使用clutter
EN

Stack Overflow用户
提问于 2010-08-26 17:25:30
回答 3查看 3.2K关注 0票数 3

我是一个相对较新的开发人员,我希望学习C++。我有过用java、javascript、actionscript和python编写代码的经验,但我想要一些足够快的东西来做一些高性能的2D和3D游戏。

当我最终学会基础知识(控制结构、类等)时,我想开发一个2D游戏。我已经探索了各种2D图形库(cairo,sdl,openframeworks,clutter),但clutter似乎是最适合加速图形和矢量绘图的。

杂乱无章的东西适合2D游戏吗?我意识到它与其他库不同,它维护着自己的场景图,但我过去开发过一款flash游戏,所以我应该已经习惯了。

有没有我应该注意的性能问题?还有没有人有过用杂乱处理大量图形的经验?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-26 18:12:33

我必须承认我以前从来没有听说过Clutter,可能是因为它不是一个Windows库,而大多数游戏开发人员都在Windows平台上工作。同样,大多数游戏开发人员(即使是独立/业余爱好者)也不考虑Cairo或Openframeworks。到目前为止,更常见的是使用SDL,尽管这不是完全硬件加速的,因此对于现代游戏来说不是一个很好的选择。SFML是一种越来越受欢迎的选择,但现在大多数游戏开发人员可能都是在像SDL这样的东西上滚动他们自己的OpenGL渲染。

从外观上看,Clutter可能是一个很好的选择,而且它看起来肯定功能齐全。但有时较大的框架的问题是,它们变成了一个有围墙的花园,很难集成您可能需要的额外部分-例如,我不知道输入可能工作得有多好。

使用不太知名的引擎的另一个问题是,如果您访问https://gamedev.stackexchange.com/http://www.gamedev.net并提出问题,社区将无法提供太多帮助,因为他们不熟悉您正在使用的技术。你必须权衡这样做的成本和使用一个不受欢迎但实际上非常有能力的库所带来的潜在收益。(以及其他人知道一些你不知道的事情的可能性…)

票数 1
EN

Stack Overflow用户

发布于 2010-11-11 10:26:00

我已经用Clutter做了很多嵌入式系统的工作,现在正在用它做一个桌面项目。对于基于桌面的2D游戏来说,它可能很棒,但需要注意以下几点:

工具包上的

  1. 主线开发在很大程度上是面向Linux的。我不确定Windows,Mac,或者iOS (“水果”)的端口有多好maintained.
  2. Documentation是稀疏的,而afaik没有书。(我正在考虑写一个。)
  3. 它是用C编写的,并且本机公开了C语言绑定。虽然有许多语言的混乱绑定,包括C++,但您仍然需要了解C语言绑定。
  4. 它本身并不使用C++对象。相反,它使用基于C的GObject系统处理单继承对象,即使你在写C++绑定,你也需要了解GObject。
  5. 如果你想在线程上使用它,你必须使用它的线程系统--而不是POSIX线程、Boost线程或其他任何东西。
  6. 它真的可以击败图形处理器的焦油,所以如果你在做一些奇特的事情,在一些用于廉价笔记本电脑和上网本的低端英特尔芯片上,帧速率可能是平庸的。

也就是说,你可以用它做令人惊叹的事情。我真的很喜欢使用它,一旦你了解了如何使用它,与C++的混合和匹配是非常有趣的。

此外,还有一个非常震撼的开源会议,叫做GUADEC,Clutter的人在那里闲逛。如果你在2011年7月带着一款非常有趣的基于Clutter的游戏出现在柏林,人们会给你买很多饮料。

票数 7
EN

Stack Overflow用户

发布于 2010-08-26 18:39:42

Clutter相对较新,目前使用它的应用程序还不多。尤其是游戏。所以为了游戏的目的,你将很难找到一个有经验的人。

也就是说,clutter确实有一些有趣的特性,这使得它看起来很吸引人,我甚至可以断言,对于许多类型的游戏来说,内部场景图甚至可以成为游戏开发人员的优势。

我想向您推荐另一个有趣的2D游戏图形选项:来自诺基亚的Qt。

虽然它主要是一个通用的GUI工具包,但它的比例很好,并不是每个游戏开发人员都会首先意识到的。事实上,它有一个完全成熟的OpenGL绘图后端,可以用来绘制任何小部件,并使用Qt的任何画布绘制操作。

一旦你开始明确地使用QGLWidget,事情就会变得疯狂起来,它不仅强制执行GL绘图模式(这不是默认模式),还允许你在相同的上下文中将自己的GL绘图与Qt的绘图操作混合使用。您不仅可以使用简单易用的高级绘图操作,还可以使用强大的事件队列和有效的输入处理;此外,您还可以自由地在未来内置更高级的低级图形。

参见this example。请注意,您可以自由地混合原生GL绘图与Qt的Painter功能(如果您照顾GL矩阵堆栈)。

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

https://stackoverflow.com/questions/3573753

复制
相关文章

相似问题

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