cocos / cocos-engine

Cocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.
https://www.cocos.com/en/creator
Other
8.21k stars 1.94k forks source link

希望提供按模块单独开关wasm的能力. #16993

Open finscn opened 5 months ago

finscn commented 5 months ago

Use Case

实际需求: 希望spine运行库 使用 ts版本 (因为在运行时 为了性能 , 要做hack 和 重写某些方法), 但是其他模块还是希望能尽量使用wasm来提升性能.

Problem Description

但是目前 cocos 3.8.3 只支持整体 关闭wasm.

Proposed Solution

希望提供按模块单独开关wasm的能力.

How it works

No response

Alternatives Considered

Additional Information

No response

minggo commented 5 months ago

你指的是纯的 ts 版吗?spine 现在不会提供纯 ts 版本。

finscn commented 5 months ago

你指的是纯的 ts 版吗?spine 现在不会提供纯 ts 版本。

不支持 wasm 的平台 你们用的不还是 ts版本吗? 如果我希望所有平台一致, 想都使用ts版本怎么办呢?

minggo commented 5 months ago

不支持 wasm 的平台 你们用的不还是 ts版本吗?

这个是 asm.js,是 js 版本。这个没办法,平台不支持。相当于是 fallback 方案。

如果我希望所有平台一致, 想都使用ts版本怎么办呢?

对于支持 wasm 的平台,也是有选项可以强制使用 asm.js。

finscn commented 5 months ago

"对于支持 wasm 的平台,也是有选项可以强制使用 asm.js。" 这个怎么实现 只让spine强制使用 asm.js ?

minggo commented 5 months ago

平台构建有个选项,不过这个是针对所有模块的,不是单独控制某个模块。

finscn commented 5 months ago

平台构建有个选项,不过这个是针对所有模块的,不是单独控制某个模块。

针对所有的这个我知道. 希望能提供各个模块单独的.

另外 如果我要使用 其他的第三方 asm.js/wasm 版本的 物理引擎 要怎么整合呢? .

minggo commented 5 months ago

针对所有的这个我知道. 希望能提供各个模块单独的.

这个暂时没有计划。能说一下为什么有这个需求吗?

另外 如果我要使用 其他的第三方 asm.js/wasm 版本的 物理引擎 要怎么整合呢?

这个暂时不支持,得改引擎自己处理,等后续完善。

finscn commented 5 months ago

这个暂时没有计划。能说一下为什么有这个需求吗?

其实主要还是为了 运行时 hack . spine的性能太低了. 它用性能来换取更强大的功能 ,但是很多功能并不需要.