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