
Making a game in C++ using parallel processing我想用 C 语言"模拟"流行的 Flash 游戏 Chrontron,需要一些帮助才能开始。 (注:不是为了释放,只是为自己练习)
所以,这可以解释游戏的运作方式。你应该玩一下 我在想一个解决这个问题的好方法是使用链表来存储每个状态, 实际问题: 现在我有了一些粗略的规范,我需要一些帮助来决定使用哪些数据结构,以及为什么。另外,我想知道我应该使用什么图形 API/图层来执行此操作:SDL、OpenGL 或 DirectX(我目前的选择是 SDL)。我将如何实现并行状态?使用并行线程? 编辑(澄清更多): 未回答问题:SDL:OpenGL:Direct X
附加问题,我以前主要使用过 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库电脑。 |