首页 > 解决方案 > C ++如何编写并行游戏具有相互对抗(共享内存)

问题描述

需要与玩家 A(可能通过输入,但为了简单起见仅限于自动化代码)和玩家 B 一起编写游戏。

A 和 B 在共享数组上说

int Map[100][100]

一种方法是编写顺序代码,这根本不有趣。尤其是键盘输入,可能会出现“卡住”和“漏击”的情况。

一种充分考虑计算能力和同时更新的想法是对玩家 A 和玩家 B 使用并行进程,例如 while 循环内的 parallel_for 循环或 parallel_for 循环内的 while 循环。

但是,这带来了另一个关于如上所述的共享内存使用的问题。绕过它的一种方法是使用 fstream 设置更长的延迟时间并写入和读取磁盘。但这显然会导致麻烦和可能的崩溃,以及延迟的计算效率。(如果同时访问内存,数组引用也会造成麻烦吗?或者 CPU-Memory 桥的硬件设计是否考虑到了这一点?)

如何编写具有并行性的游戏具有共享内存/阵列的相互对抗?


须藤语言:

player_script(indices, ){while(condition){}}

main(){
parallel_for(ix){player_script(ix, );}
}

标签: c++memory-managementparallel-processing

解决方案


推荐阅读