临近2022还有人选cocos2dx、cocos2d-lua、cocos2d-js吗?

如果是绕过引擎,额外写自己的逻辑然后提供接口给js调用,这种方式还算相对简单的。如果是让你去在引擎的基础上去处理引擎在原生上的bug和未实现的一些功能,这种我觉得大多数都只能呵呵

正常不会去动引擎原生,甚至在原有架构上去改什么多线程。 没必要。

面试官问的多线程是看你怎么封装代码。
例如a场景代码:
resources.load(‘icon/spriteFrame’, SpriteFrame, (err, spriteFrame) => {
if (!err && spriteFrame) {
this.node.getChildByName(‘icon’).getComponent(Sprite).spriteFrame = spriteFrame;
}
})
还没加载完就切换到b场景,由于load不能取消,所以这段代码会在b场景中执行。然而b场景没icon节点,崩溃。
还有网络请求,和加载资源一个道理,都需要二次封装以避免代码混乱调用。

看了laya的代码,是封装了bullet的btKinematicCharacterController.理论上这个东西cocos也带有只是没有导出…稍微改一下应该就可以用.但仅限于用bullet的物理系统

使用开源引擎的主程就需要具备引擎修改的基本功。

这里可能我在前面没有怎么说清楚。我面试的职位是cocos creator主程,在boss直聘上和hr聊的时候,hr说是要做一个老项目的h5版本。我认为我可以撑的住,就去面试了。结果,面试后半段问的问题都是与优化引擎有关,比如问"creator中不用自带的spine,自己接入spine官方的接口可以吗?"。这种问题,你说他是在考验我什么呢?
而且,前面说到的那个加载资源的问题,后面他就直接问我做过没有了。意思很明显。你做过了,就过来上班。没做过,那就抱歉了。
最后,我也问了他一些关于公司战略的问题,得到的信息就是,他们有这个意思转到creator上来,但要先解决一些性能和功能上的问题后,再转。这个意思,可不就是先优化引擎,先把坑填了,再陆续用到各项目上吗?
此外,我是冲着开发项目去的,准备的都是creator和JS相关的知识,没有想到他会问到优化引擎方面的问题,这不是又回到修改c++了吗?心里没准备啊!只能说是公司实际需求和职位需求的错配。

我觉的稍微大点的项目招主程级别的程序员最终都会问道c++上来,因为这个是个保证遇到问题可以自己造轮子遇水搭桥只会写脚本终究是停留在表面,不然项目遇到问题很可能整个项目组的人都在懵逼

是这个道理,但是具体也要看米有没有给到位

我觉的稍微大点的项目招主程级别的程序员最终都会问道c++上来,因为这个是个保证遇到问题可以自己造轮子遇水搭桥只会写脚本终究是停留在表面,不然项目遇到问题很可能整个项目组的人都在懵逼

  • 你说的这个情况,不同的公司、不同的时间、不同的项目,各不相同。
    比如,一个公司用的引擎,已知的坑都已经填了,招一个主程进来,就大概率不会问优化引擎的问题了,而更多的应该会问对引擎的应用方面的问题了。因为他此时需要的是项目开发方面的人才。
    又比如,一个公司开发的项目是中小型的,招一个主程进来,也大概率不会问优化引擎的问题了。因为没那个必要。
    再比如,一个公司恰巧CTO离职了,没有更有水平的人来面试了,也大概率不会问优化引擎的问题了。因为面试你的人也不会。
    而我的情况是,一个公司的高层感觉creator这个引擎不错,可以导出到多个平台,于是CTO先研究一下,发现遇到一些问题,自己解决有点烦,叫hr招个人进来,面试一下,看能解决不,能解决就招人进来,让他把问题解决了。不能解决,通过面试也可以获得一些有用的信息,也不错。于是招人继续。CTO研究也继续。
2赞

遇到问题不应该马上想着动引擎,不是有libcurl嘛,用这个就行了,顶多原生平台需要交叉编译一下libcurl到目标平台。

https://www.npmjs.com/package/node-libcurl
https://typescript.hotexamples.com/zh/examples/node-libcurl/Curl/-/typescript-curl-class-examples.html

1赞

我觉得这种一方面看个人技术,另一方面也看薪资吧。重庆这边工资偏低,按你这种面试情况我是觉得低于16我直接转身走人,低于20可以考虑

重庆这边我找工作的时候前端主程差不多是15左右,不过有个几年没关注了,最近也没怎么看

插件和代码库永远是别人的。 你拿来用,谁知道里面有多少坑, 填一个引擎坑就够呛, 还要去研究填第三方库的坑。 有这个时间还不如专注一项不好么。

看情况吧,如果是引擎的坑或者功能短时间内我解决不了,我会考虑使用第三方还有人维护的方案,第三方有问题直接找作者,不然啥轮子都得自己造的话可太累了

目前cocos引擎集成的就是liburl :joy:

广州这边招cocos creator的大概情况:
初级8k左右(1-2年),中级1.4左右(2-3年),高级1.8左右(3年以上),主程2.2左右(5年以上)
感觉今年明显是小游戏的行情不行了,再加上政策打击,许多公司都转向大型手游出海了。所以,cocos2dx的职位会相对多些,工资也普遍高些。最火的当属U3D的职位,是个公司都招,工资也挺高。

toPrecision() 一下就好
喜欢 Lua 的话可以关注 Defold
不是广告

不是这样的。。。应该是我用法问题吧,我很多地方判断都是常规的大于、小于甚至等于,并没有去考虑误差,然后最开始精度设的低,运算的时候会出现误差。后来精度位数设得高了,运算得到了一个数值大概是:-123.456789,但是我直接new Decimal(this.node.x) 这个值是-123.4567892,不知道是哪里出现的导致判断前者小于等于后者失效。这里我发现一个问题,decimal设置precision好像是包含了整数位数?假设我设为5,然后有个数:123.45678901我本意是想得到123.45679,但是实际得到的是123.46,不知道是我哪里处理的有问题
后来我是自己写了判断方法,把数字转成了字符串然后拆分成符号、整数、小数,然后对小数位做了精度处理再去做的判断

另外,我不是喜欢lua,我是以前做2d-lua的,16年qpwb,去年才转的creator。我对语言没什么偏好,c艹、oc、java、python都会一点点,只是单纯觉得js这种number设计太操蛋了

字符串多麻烦,参考下 3.x 引擎 vec3.equals,或者网上搜搜 fuzzy equal

:sweat:当时没找到方案,又急着要,就自己手撸的。。。。

浮点数判的都是近似相等,相减绝对值小于某个非常小的数就认为是相等,如果要那种绝对相等的,需要换底层的表示方式,有限制