6

我正在考虑将游戏移植到 HTML5,但遇到了一些问题。

游戏大量使用多线程,渲染在主线程上运行,脚本在工作线程上运行。多个脚本可以(并且经常)同时运行。它有相当数量的全局数据,任何脚本都可以访问,主要是读取,但偶尔也会写入。有机制确保线程安全不是问题。

看起来 HTML 5 Web Workers 可用于设置多线程,但让全局数据工作将是一个大问题,因为似乎没有任何简单的方法可以在工作人员之间共享数据。理论上,我可以将所有全局数据放在一个共享工作程序中,并让每个脚本工作程序向它发送消息以获取和设置数据,但是访问很常见,消息传递开销会完全破坏性能,特别是因为简单的读取会很远比写入更昂贵,并且可能需要某种 CPS 实现才能使其工作。

有什么好的方法可以将这样的架构移植到 HTML5 和 JavaScript 上吗?

4

0 回答 0