Questions tagged «c++»

C ++是一种静态类型化,自由格式,多范例,已编译的通用编程语言。

22
游戏的STL,是还是不是?[关闭]
每种编程语言都有其标准的容器,算法和其他有用的库。对于C#,Java和Python之类的语言,使用没有标准库的语言实际上是不可想象的。 但是,在我从事过的许多C ++游戏中,我们要么根本不使用STL,要么只使用其中的一小部分,要么使用我们自己的实现。很难说这对我们的游戏是一个明智的决定,还是仅仅由于对STL的无知而做出的决定。 那么... STL是否合适?
145 c++ 

9
在游戏开发中有用的编程设计模式有哪些?[关闭]
我有几本关于“设计模式”的书,并且阅读了一些文章,但是无法直观地指出哪种编程设计模式对游戏开发有用。 例如,我有一本名为《 ActionScript 3》(带有设计模式)的书,其中详细介绍了几种设计模式,例如“模型视图控制器”,“单例”,“工厂”,“命令”等。 作为对此不熟悉的人,我无法弄清楚其中哪一个有用,或者实际上,如果其中任何一个是我应该学习并尝试使用的设计模式。也许还有我什至不知道的其他针对游戏编程的设计模式? 如果您有在游戏开发中使用某种设计模式的经验,我很想听听。如果有理由说明使用它的原因,代码示例或在线资源也将非常有帮助。目前,我对ActionScript 3和C ++实现最感兴趣,但是一定可以从任何语言的经验和示例中受益。 谢谢!

9
为什么C ++游戏开发人员不使用Boost库?[关闭]
因此,如果您花任何时间在C ++标签下的Stack Overflow上查看/回答问题,您将很快注意到几乎每个人都在使用boost库。甚至有人说如果不使用它,就不是在编写“真正的” C ++(我不同意,但这不是重点)。 但是接下来是游戏行业,它因使用C ++ 而未使用boost 而闻名。我不禁想知道为什么会这样。我不在乎使用boost,因为我现在将游戏作为一种爱好来编写,而这种爱好的一部分是在能够实现我需要的东西时实现,而在没有能力的时候使用现成的库。但是,这只是我。 为什么游戏开发人员通常不使用Boost库?是性能还是内存问题?样式?还有吗? 我本想在堆栈溢出时问这个问题,但我认为这里最好问这个问题。 编辑: 我意识到我不能代表所有游戏程序员,而且我还没有看过所有游戏项目,所以我不能说游戏开发人员从不使用Boost。这仅仅是我的经验。 请允许我编辑我的问题,并问,如果您确实使用boost,为什么选择使用它?
81 c++ 

17
C ++低级优化技巧
假设您已经有了最佳选择算法,那么您可以提供哪些低级解决方案来从C ++代码中压缩出最后几帧呢? 不用说,这些技巧仅适用于您在事件探查器中已突出显示的关键代码部分,但它们应该是低级别的非结构性改进。我已经播了一个例子。
79 c++  optimization 

9
易于使用的跨平台3D引擎进行C ++游戏开发?[关闭]
我想尝试编写3D游戏。但是,我不想从如此低的水平开始绘制单个三角形并编写自己的3D对象加载器等。我听说过Irrlicht,Crystal Space 3D和Cafu之类的东西,但是我对它们没有任何经验。我正在从具有这些或其他引擎经验丰富的人那里寻求建议,这些引擎在其上写得很好,并且易于上手,而无需学习大量的3D数学理论以及GPU在内部的工作方式。
73 c++  3d  cross-platform 

10
在数据量大的实时游戏中,UDP是否仍优于TCP?
我知道对于高数据使用率的实时多人游戏通常建议使用UDP。 大多数文章都是有用的,并且由于互联网上传输的所有数据中约80%是TCP,因此必须对TCP进行很多优化。 这让我感到奇怪:UDP在速度和延迟方面是否仍然优越?最近的TCP优化是否可以使TCP的性能优于UDP?
71 c++  networking  udp  realtime 

6
Lua如何在游戏中用作脚本语言?
我对Lua到底是什么以及用C ++编程的游戏将如何使用它感到有些困惑。我主要是问它如何编译和运行。 例如,当您使用使用Lua脚本以C ++编写的程序时:Lua中的代码是否只是调用以C ++编写的主程序中的函数,并充当未编译的类,等待被编译并添加到C ++的内存堆中程序? 还是像Linux中的bash脚本那样工作,它只执行与主程序完全独立的程序?
67 c++  scripting  lua 

9
如何将游戏中的所有图像都放入一个文件?
我刚刚完成了一个用C ++ SFML编写的基本RPG游戏,我在游戏中付出了很多努力,我想分发它,但是遇到了一个小问题。 问题是,我有200多个图像和地图文件(其中包含地图代码的.txt文件)都与可执行文件位于同一文件夹中,当我查看该文件夹时,这让我想哭一点如此众多的资源,我从未见过一款可以直接向您显示所有资源的游戏,相反,我相信它们会将资源打包在某个文件中。 好吧,这就是我要达到的目的:我希望将所有图像打包到1个文件(可能也包括.txt文件)中,然后能够从该文件中读取或轻松添加到其中。
67 c++  assets  sfml  spritesheet 

9
什么是实现灵活的增益/减益系统的方法?
概述: 许多具有类似RPG的统计数据的游戏都允许角色“ buff”,从简单的“造成25%的额外伤害造成的伤害”到更复杂的事情(如“在受到打击时造成15伤害的伤害回击攻击者”)。 每种类型的增益的细节并没有真正的关系。我正在寻找一种处理任意爱好者的方法(大概是面向对象的)。 细节: 在我的特殊情况下,我在回合制战斗环境中有多个角色,因此我设想了buff与“ OnTurnStart”,“ OnReceiveDamage”等事件相关联。也许每个buff是主Buff抽象类的子类,其中仅相关事件超载。然后,每个角色可以具有当前施加的增益向量。 这个解决方案有意义吗?我当然可以看到数十种事件类型是必要的,感觉为每个buff创建一个新的子类是过大的,而且似乎不允许任何buff“交互”。也就是说,如果我想对伤害提升设置上限,以使即使您有10个不同的增益都会造成25%的额外伤害,则您只会额外执行100%,而不是额外执行250%。 理想情况下,我可以控制更复杂的情况。我敢肯定,每个人都能拿出一些例子,说明如何以更复杂的方式以潜在的方式相互交互,而这可能是我作为游戏开发人员所不希望的。 作为一个相对缺乏经验的C ++程序员(我通常在嵌入式系统中使用过C),我觉得我的解决方案过于简单,并且可能没有充分利用面向对象的语言。 有什么想法吗?这里有没有人设计过一个相当强大的抛光系统? 编辑:关于答案: 我选择答案的主要依据是详细信息和对所提问题的扎实答案,但阅读答案可以使我获得更多见解。 也许不足为奇,不同的系统或经过调整的系统似乎更好地适用于某些情况。哪种系统最适合我的游戏,取决于我打算能够应用的增益类型,方差和数量。 对于像《暗黑破坏神3》(下文所述)这样的游戏,几乎任何设备都可以改变增益效果的力量,增益效果只是角色统计系统,只要有可能,都是个好主意。 对于我所处的基于转弯的情况,基于事件的方法可能更合适。 无论如何,我仍然希望有人能带上花哨的“ OO”魔法子弹,这会让我每转 buff 施加+2移动距离,对攻击者 buff 造成50%的伤害,并且一个由3层或更多的瓷砖掉攻击时自动瞬移到附近的瓷砖爱好者在一个系统中,而不转动+5强度的buff到它自己的子类。 我认为最接近的答案是我标记的答案,但是地板仍然空着。感谢大家的投入。

9
OpenGL的GUI好吗?[关闭]
我开始使用Superbible和我从基本图形中学到的知识来学习Free技巧来学习FreeGLUT的技能。 为了从这种经验中获得更多收益,我想集成一个GUI来覆盖FreeGLUT所使用的一个,现在的问题是:这可能吗?我应该使用哪个库? 该库的一些特征: 开源的 多平台(Linux和Windows) C / C ++ 如果您有任何其他建议,请随时将其与您的答案一起发布给我。

10
游戏状态“堆栈”?
我在考虑如何在游戏中实现游戏状态。我想要的主要内容是: 半透明顶部状态-可以通过暂停菜单查看后面的游戏 面向对象的东西,我发现这更易于使用和理解其背后的理论,以及保持组织规范并添加更多内容。 我打算使用链接列表,并将其视为堆栈。这意味着我可以访问下面的状态以获得半透明性。 计划:将状态堆栈作为指向IGameStates的指针的链接列表。顶部状态处理其自己的更新和输入命令,然后具有成员isTransparent来决定是否应绘制下面的状态。 然后我可以做: states.push_back(new MainMenuState()); states.push_back(new OptionsMenuState()); states.pop_front(); 要表示播放器的负载,请依次转到选项和主菜单。 这是个好主意,还是...?我应该看看别的东西吗? 谢谢。

9
面对浮点非确定性,确定性游戏怎么可能?
为了使游戏像RTS网络游戏一样,我在这里看到了许多答案,这些建议建议使游戏完全具有确定性。那么您只需要彼此转移用户的操作,并稍微延迟所显示的内容,以便在呈现下一帧之前“锁定”每个人的输入。这样,诸如单位位置,健康状况之类的事情就不需要通过网络不断更新,因为每个玩家的模拟都是完全相同的。我也听到过建议进行重放的同一件事。 但是,由于浮点计算在机器之间,甚至在同一机器上同一程序的不同编译之间是不确定的,真的可以这样做吗?我们如何防止这一事实在整个游戏中引起波动的玩家(或重播)之间产生微小差异? 我听说有人建议完全避免使用浮点数int来表示小数的商,但这对我来说并不实用-例如,如果我需要取一个角度的余弦值怎么办?我是否真的需要重写整个数学库? 请注意,我主要对C#感兴趣,据我所知,在这方面,C#与C ++存在完全相同的问题。

7
进行原型制作时,我如何能更轻松地探索游戏行为?
我自己创建独立游戏,但是一旦我将新开发的游戏开发到可以玩行为的水平时,我通常就精力不足,因此我选择精打细算而不是探索。结果很糟糕。 (图片来自对讲博客) 例如,我发现调整行为(即链接和重新启动C ++应用程序)的迭代周期很长,以至于它们扼杀了所有创造力。我正在建立一个工具来处理这个问题。 还有哪些其他方法可以快速探索游戏行为?我对独立开发人员以及大型公司使用的方法感兴趣。


2
如何为RPG升级要求创建可调公式?
我正在尝试创建一个可以简单地通过更改两个值来修改的公式:number_of_levels和last_level_experience。这是为了使人们能够改变游戏的水平要求。 我已经知道了,以便可以指定上一级升级所需的XP数量,但是我希望能够控制上一级升级所需的XP,在这种情况下,它们可能会有很大差异。例如,如果我有40个等级,最后一个等级为1,000,000 XP,则第一个等级要求为625。但是,如果我将等级更改为80,则第一个等级变为156。在两种情况下,最后一个等级都需要1,000,000。 仅通过这两个基本值,就必须有某种方法使计算机绘制出合适的曲线。 #include <iostream> int main() { int levels = 40; if (levels < 2) levels = 2; int experience_for_last_level = 1e6; float fraction = 1.0 / levels; { int i = 0; float fraction_counter = fraction; int counter = levels; int total = 0; for (i = …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.