讨论:cocos 原生的出路

众所周知 Creator 的用户编程语言是 TS,而在原生只能使用 JS 引擎和引擎层连接,导致性能始终提不起来。

这里说下自己想到的解决方法:使用 Haxe 语言

大概一年前认识 Haxe,Haxe 是一种编程语言,但是它却可以把自己编译为多种编程语言,例如 C++,JS,Python,Java…

然后引擎提供 Haxe 层的引擎接口声明,类似于 d.ts 文件,用户使用 Haxe 语言进行编码,原生项目可以直接编译为 C++ 语言,直接和引擎层进行交互,大大增加性能

Web 用户也可以选择编译为 WASM 或 JS,Haxe 的 JS 模块支持热更(使用库)

为什么选择 Haxe?

  1. 可以编译为多种编程语言,适配各个平台

  2. Haxe 有自己的组件库,https://lib.haxe.org,目前大概有一千多的组件

  3. 没有 C++ 复杂。编译为 C++ 后有自己的GC管理器

  4. IDE 支持,VSCode,Sublime Text 等编辑器

本来自己想试试的,但奈何没那么多时间,就先把自己的想法说出来,让大家看看

3赞

好好好,就喜欢这种贴。感谢马赛克大佬,这个haxe我可能有大用。

或者把Cocos2d-x捡起来直接C++写,也没有中间商赚差价,小游戏和Web用WebAssembly

伪需求,完美的 creator状态是根本不需要用户去弄引擎层,不需要写原生代码,creator 比 unity 优势在于采用 js 语言,这是未来统治世界的语言 :blush: :blush: :blush:

1赞

换*****

2赞

原生是需要热更的,cpp 没法热更啊。回退到js就和cocos一样了,区别不大。

最好的方案还是直接不要现在的原生方案
直接webview+js+bridge,
然后把资源都调到搞webview内核, 专为游戏而做的浏览器内核

2赞

抛弃C++就是复杂+开发效率低

那请教你为什么现在是js,在phone上的性能连几十个刚体都卡?

我是基于 Haxe讨论

C++也可以热更,之前了解过,只不过好像比较复杂,而且Haxe是可以编译为Lua和C#的,别忘了都可以热更

之前想过,但是2dx太老了而且没有编辑器

cocosBuilder和cocosstudio

cocosstudio 只能算个UI编辑器,cocosBuilder没用过,最主要的是都停止维护了

是有很多的js开发,使用coco开发的才多起来,转成这语言,恐怕用的人会少了,我倒是第一次见到这语言

技术多一层,头发少一圈 :innocent:

1赞

之前不也是 lua?只是 ts 的生态比较好罢了,而且 haxe 也能用 npm 包

之前lua我是没碰过cocos,当时碰的是白鹭,laya

Haxe 看起来很棒,与 ECMAScript 的语法很像,但是又充满了现代化的特性,写 JS 的看起来估计几天就能上手。

但是有几个问题:

  • 并不热门,说来也奇怪,为什么看起来好的语言却不热门,可能很大原因是没有大厂背书吧,比如像 TypeScript 为何能击败多种 JS 方言脱颖而出,好语言还需要有个好爹。
  • 虽然可以编译成多种语言,但现在的趋势应该是多种语言编译成 Wasm 运行,相较于编译为多种语言这种特性,语言无关地编码的愿景看起来还是更兴奋点。

我觉得成本最低,最稳的方案还是完善对 WASM 的支持,跟着 Web 趋势走。
毕竟理想状态下,Cocos 将成为一个语言无关的游戏引擎,无论你使用什么编程语言都可以进行开发,只要那个语言可以编译为 WASM。

如果硬要选一个语言的话,现在为止还是觉得动态类型语言绝对的更好,所以肯定是 JS/TS,性能敏感的地方用 WASM 就行了。

即使要选一个静态类型语言,那 Cocos 有啥理由不选择大厂背书,政治又正确的华为仓颉,而选择一个冷门 Haxe 呢?

https://developer.huawei.com/consumer/cn/doc/openharmony-cangjie/cj-wp-abstract

因为选其他的都不能解决性能问题,但是 haxe 可以兼顾性能与效率及多平台支持,而且冷门是相对于国内,国外一部分企业都在招聘中包含了 haxe 为可选条件。就像 cocos 只有在国内是热门,国外还比不过 godot