我正在考虑用纯 JavaScript 和 html5 开发游戏,而不使用任何第三方插件。我面临的问题是我找不到将游戏的不同“模块”分成单独线程的方法,例如渲染作业、游戏逻辑、资产加载等。
Web Workers 似乎能够将代码分离到不同的线程中,但它们的问题是我可以在它们之间传递的信息有限。例如,对于渲染作业,我需要为游戏的每次更新传递整个“世界”,包括所有实体、网格、纹理等,因为工作线程不能共享内存。它可以进行优化,例如仅在初始化时发送静态对象(网格、纹理),然后仅在更新时发送对象的状态(它是世界变换),但它仍然不是
有没有办法在它们之间发送大数据或让它们共享一些对象?还是有完全不同的方法来实现真正的多线程?我知道使用插件/齿轮有更简单的方法来实现这一点,但我只需要使用开放网络中可用的方法;