1234567Basics:
Player has a time machine. On e"/>

关于 opengl:使用并行处理在 C 中制作游戏

关于 opengl:使用并行处理在 C 中制作游戏

Making a game in C++ using parallel processing

我想用 C 语言"模拟"流行的 Flash 游戏 Chrontron,需要一些帮助才能开始。 (注:不是为了释放,只是为自己练习)

1
2
3
4
5
6
7
Basics:
Player has a time machine. On each iteration of using the time machine, a parallel state
is created, co-existing with a previous state. One of the states must complete all the
objectives of the level before ending the stage. In addition, all the stages must be able
to end the stage normally, without causing a state paradox (wherein they should have
been able to finish the stage normally but, due to the interactions of another state,
were not).

所以,这可以解释游戏的运作方式。你应该玩一下
了解我的问题是什么。

我在想一个解决这个问题的好方法是使用链表来存储每个状态,
它可能是基于时间的哈希映射,或者是迭代的链表
基于时间。我仍然不

实际问题:

现在我有了一些粗略的规范,我需要一些帮助来决定使用哪些数据结构,以及为什么。另外,我想知道我应该使用什么图形 API/图层来执行此操作:SDL、OpenGL 或 DirectX(我目前的选择是 SDL)。我将如何实现并行状态?使用并行线程?

编辑(澄清更多):
操作系统——Windows(因为这是一个爱好项目,以后可能会在 Linux 中这样做)
图形——2D
语言——C(必须是C——这是下学期class的练习)

未回答问题:SDL:OpenGL:Direct X
问:避免并行处理
Q-Answered:使用 STL 实现时间步操作。

1
2
3
4
5
So far from what people have said, I should:
1. Use STL to store actions.
2. Iterate through actions based on time-step.
3. Forget parallel processing -- period. (But I'd still like some pointers as to how it
could be used and in what cases it should be used, since this is for practice).

附加问题,我以前主要使用过 C#、PHP 和 Java,所以我不会将自己描述为能手程序员。哪些 C 特定知识可以帮助我更轻松地完成这个项目? (即向量?)


n


n


我以前玩过这个游戏。我不一定认为并行处理是要走的路。您在游戏中共享了需要在进程之间共享的对象(杠杆、盒子、电梯等),可能与每个增量共享,从而降低了并行性的有效性。

我个人会保留一个动作列表,然后为每个后续迭代开始将它们交错在一起。例如,如果列表的格式为 [iteration.action],则第三次通过将执行动作 1.1、2.1、3.1、1.2、2.2、3.3 等。


除非您迫切希望将 C 用于自己的教育,否则您绝对应该将 XNA 用于您的游戏


并行处理不是答案。您应该简单地"记录"玩家的动作,然后为"之前的动作"回放它们

因此,您创建了一个包含动作的向量(单链表)。只需存储执行该操作的帧号(或增量),然后在该特定实例中代表玩家的"虚拟机器人"上完成该操作。您只需遍历状态并一个接一个地触发它们。

当状态悖论仅仅因为下一个动作失败而发生时,你会得到很容易"破坏"游戏的副作用。


一个非常有趣的游戏创意。我认为你是对的,并行计算将有利于这种设计,但不比任何其他高资源程序。

这个问题有点模棱两可。我看到你打算用 C 来写这个,但是你在为什么操作系统编写代码呢?您是否打算让它成为跨平台的,您想要什么样的图形,即 3D、2D、高端、基于 Web。

所以基本上我们需要更多的信息。


在简要地掩盖了描述之后,我认为您的想法是正确的,我将拥有一个保存状态数据的状态对象,并将其放入链表中……我认为您不需要并行线程。 ..

至于图形API,我只用过opengl,可以说它很强大,有很好的C/C API,opengl也可以跨平台,你可以使用*Nix上的messa库电脑。


推荐阅读

    miui模拟器电脑版|MIUI模拟器

    miui模拟器电脑版|MIUI模拟器,,1. MIUI模拟器笔记本电脑没有办法刷MIUI系统。MIUI系统是小米为手机研发的,基于安卓系统的手机用系统,笔记本

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高

    拍拍模拟器电脑版|拍拍猴模拟器

    拍拍模拟器电脑版|拍拍猴模拟器,,1. 拍拍猴模拟器爬猴,5173,淘宝,拍拍,慧聪,易宝,送宝挺多的!我比较信任爬猴的 2. 拍拍拍模拟器游戏ppsspp还是相

    模拟器设置vt|模拟器设置VT

    模拟器设置vt|模拟器设置VT,,模拟器设置vtwin7安卓模拟器vt开启步骤如下:1.开启VT需要进入BOIS进行设置。首先重启电脑,在电脑启动时不停地

    流行木马软件五横向评测报告

    流行木马软件五横向评测报告,,五流行木马测试软件横向评测报告: 木马软件层出不穷,相信对于广大用户来说也带来了不少困惑,今天,壳带来安全性