讨论:cocos 原生的出路

ts/js缺点性能上应该算是最大短板
不过我来列下Haxe这类的考量会带来的问题
1.生命周期可能不同步问题,对象映射问题
2.热更(如果热更要用c++来搞,那小团队基本不会考虑)
3.当项目开始复杂后,编译为其他语言我猜一定会碰到很多坑(未知数…)
我想说的是 ts这种理论上也应该能做到编译成其他语言吧,为啥大家不从这里着手

1赞

性能并不是首选项

1赞

那么请教你怎么解决iphone几十个刚体就卡的局面?

1赞

不是首选项的前提是不能差,只是不是顶尖 :sweat_smile:

1赞

说起来,以前在android上做过cpp热更,但是ios是不支持的。
简单来说,就是分2个so,update so 和主引擎so,update so 专门做下载工作,下载主引擎so(以及自己)到writeable目录里面。然后java层加载新的so,除了java层以外,update so和引擎so都可以热更。不过要判断好abi下对so的架构版本。 java层如果想热更,也可以用微信他们开源的java的hotfix方案。
不过就是麻烦,而且ios没办法做。

1赞

伪需求,你选这语言不如选rust

1赞

所以就可以编译为 lua 和 C#

1赞

说出原因?rust 的多平台支持有 haxe 好?热更?学习成本?开发效率?

1赞

性能不达标,意味着大点的体量不会考虑
不就是现在的困境么
尽管它也是cocos creator活下来的原因,没有重点转h5 cocos就没了

1赞

我都没听过haxe这语言,直接忽略

1赞

你没学 TS 之前也不认识 TS

1赞

现在来看的话,WASM 正好能满足所有需求,支持了 WASM,可以使用 Haxe 或其它任何语言进行开发。

你这么觉着也行,即使我们都同意它不算冷门,但还是没理由不选择 WASM 或者国内的仓颉,它也是兼顾性能与跨平台的。

1赞

其实haxe这个还是挺有名的,因为是flash那时候延伸出来的后续代替方案之一,flash死了以后,就有人做了haxe,承接了as语法和一些as的库(的写法)。
不过后来没承接住flash流失的程序员,因为转语言也相对方便,不需要太守旧。再加上那时候haxe还不成熟,就没起来。

2赞

没学过TS之前,至少听过,因为毕竟大厂背书

1赞

有跨平台说明文档吗?看了下你说的没找到,而且学习成本和开发效率如何? 还有最重要的问题,和其他语言的对接及效率?

1赞

白皮书和其它一些渠道能得知它明确了对跨平台编译的支持,学习成本和开发效率我看着挺好,基本照抄 C# 和 Swifi。

但是,现在只是个饼,所以我觉得还是先完善 WASM 的支持,成本既低,又能立竿见影。

这个暂不清楚,我觉得这不算游戏开发里最重要的吧。

1赞

如果遇到不支持 wasm 的平台直接 gg,而且用户的 wasm 代码和引擎的 wasm 代码怎么结合,以及结合后的效率都需要考量,如果只是编译用户的代码为 WASM,那么性能提升并不大,论坛里之前有人做过测试

1赞

王哲: 这位朋友的建议很有道理,下次不要建议了

2赞

webview打包h5才是原生的出路…

1赞

看趋势的话这种问题应该不需要担心,毕竟 Web 亲儿子,有浏览器的地方就可以有 WASM。

Box2D 的性能不是提升挺大吗?从 WASM 理论上看我相信你说的这些具体问题最终都能解决,既然我们是对一个起码要支撑引擎至少十几二十年的技术选型,我个人主要看它的愿景是什么,有没有实力可以达到,而不是现在都有什么问题,至少 WASM 已经在前端和后端 Serverless 里都有很多应用,并且社区热情很高。

1赞