程序猿的进化!
先上效果:
内容一目了然,基础的流场寻路demo。
重要的是…
一行代码都不是我写的!
纯AI生成!
纯AI生成!
纯AI生成!
怎么样…神秘武器了解一下?
程序的进化之路开启!
首先安利当前用的工具:Cursor(这只是其中之一)
<-------------------->
vscode的fork版,支持vscode配置一键导入(部分插件需要重新登录)
可以保留vscode的所有操作和快捷键,直接联动creator调试断点完全不成问题。
目前发现的槽点是chat久了以后出现比较严重的卡顿,卡顿到什么程度呢…
卡到网易云音乐都崩溃了= =…
不过我用的mac版本,所以不确定windows上有没有这个问题。至少对于我来说新启一个对话就好了。
接下来讲讲整个demo的制作过程。
首先,我们对于RTS的算法是有个大致了解的,如果当下脑子的知识库里没有它的内容,也可以直接问AI。
在了解了基础的流程和算法细节后,就要开始和AI谈恋爱了。
1> 明确自己的需求
在对话框中输入: “制作一个RTS流场寻路的Demo”
很快,非常快,快的不能理解的速度AI生成了一整套…Python的代码= =
咳咳…于是进入第二步
2> 明确项目环境
"我需要使用cocosCreator3.8.4的版本,参考AIP和使用手册@Cocos Creator 3.8 用户手册 | Cocos Creator ,@Cocos Creator 3.8 用户手册 | Cocos Creator "
具体如图,因为对话内容很长,尽量只描述我方的描述过程。
结果就是AI直接生成了管理寻路的基础代码FlowFied.ts 和 移动单位unit.ts 点击Apply以后 代码会直接添加到项目工程目录。
下一步呢?当然是运行啊。
3> 生成demo.scene场景 并且绑定你生成的脚本。
OK 这里就顺利执行了…个锤儿。可能是因为生成顺序问题或是绑定后的uuid问题 demo.scene并不能直接运行。于是这里我手动拖动了一下。这也是我唯一手动处理了的地方…(可辛苦了)
场景运行以后,我才发现FlowField中 直接还生成了graphic组件 去绘制网格以及绘制向量场的箭头。实在是的贴心(强大)
然而真实运行却有些差强人意,我看不到unit对象,也就是我抽象的移动单位并没有显示出来。
于是开启调试瞟了一眼inspect。发现unit节点其实正常创建了,不过layer不对。
接下来开启亲切的问候
4> “new Node(‘Unit’) 似乎不可见 是layer问题 还是没有设置纹理问题 请修复”
也不知道AI是哪里开了窍 甚至直接使用了引擎内置的资源
然后尝试运行,向量场和unit节点都正常显示了,点击也能移动,不过还有不少问题。我们一个个来。
5> “使用RVO或者物理引擎 实现unit尽量不要重叠。采用相对简单的办法”
虽然只是测试demo但是我们诉求不能轻易放弃,基本的对对重叠处理还是有必要的。
这里AI小小的惊喜了一下:
虽然我限制了RVO或者简单的物理去解决重叠问题,但是AI显然不吃锚定效应这一套,所以说咱们千万别以为自己比AI知道的多。
点击应用AI的代码后,发现代码量已经开始变多了,阅读起来有些理解困难。
6> “请补全相应代码注释,并且在必要的地方加上日志,并且用开关控制。”
很快AI就补全了每个方法的注释头,以及内部相对复杂逻辑的描述,并且为网格渲染和向量场渲染和日志打印都增加了开关。
这个时候我发现,我点击的位置和实际目标寻路的终点始终有一定的错位,并且这些错位呈线性的相对关系,于是扫了一眼TOUCH_START内的实现。
经常在这里犯迷糊的朋友可能反应过来了,这里需要使用event.getUILocation();
当然秉承着能让他动手,我就绝不动手的原则。只能好言相劝。
7> “请检查setupInput的实现,当前的点击计算有误。”
然后AI加上了一揽子坐标转换和坐标检验,还有一大堆日志打印,那么解决了么?我开开心心按下F5,结果错的更离谱了。于是我把官方API里,关于touchevent的链接再次贴给他,让他分析使用getLocation还是getUILocation()。
这一次他很快的否定了之前的自己,修复了代码异常。
接下来继续运行,部队已经能相对正确的移动到点击位置区域。然而运行帧率已经下降到40帧左右。因为没有完全通读代码,所以我一下子也给不出明确的优化方案,只能靠他自己了。
8> “太卡了 无法正常运行 请进行优化”
AI列出了他的优化方案,包括1.节点复用 2.分帧处理 3.绘图优化 4.按需更新 5.内存优化。
并且同时修改了unit.ts和flow.ts内的大量new vec3()的逻辑。
然而加上这些优化后,掉帧依旧十分严重,于是开始了漫长的优化路程…
后续AI又补充了空间哈希,map代替array,广度遍历等等逻辑。
然而苦恼的是,依旧掉帧严重。
迫于无奈,我去瞅了眼update里的逻辑。因为纯粹的算法问题掉帧,大概率是计算量过大,比如update里有"愚蠢"的方式。
然而事实上update中并没有什么“憨憨”的写法。while循环里也有进行相应的次数保护。事情变得扑朔迷离起来。
老天还是眷顾AI的,就在我即将暴走换另外一个模型的时候,赶巧有需求我需要开启另外一个工程检查一些内容。当我用cursor切换到其他项目进行运行的时候,真相大白了。
所有的项目基本都在30~40帧。同时网易云音乐也暂停了。这时候我才意识到,是电脑性能出问题了。那当下长时间使用的应用只有cursor当然首当其冲就将其抹杀…然后重启。
才发现,在AI的坚持不懈优化下,真实的执行效率其实是稳定在60帧的。(不过这个时候还并没有进行大量unit的测试)。错怪了AI- -是贫穷没有用上m4的我有问题。
接下来还剩下最后一步,一个demo的雏形就完成了。
9> “请添加障碍物,渲染出障碍物的位置,向量场中增加对障碍物的处理。”
“今日Claude token已耗尽,可以切换到cursor_smart免费使用”
???
好哥哥,最后一步一定出岔子是吧。为了尽快解决问题,干脆切换到cursor_smart 继续完成接下来的步骤,虽然生成速度要慢一点,依旧还是输出了代码修改。怀着忐忑的心情运行项目,成功的绘制了蓝色区域的障碍物,然而向量场并没有正确对障碍物进行识别和重定向。
接下来和cursor_smart耳鬓厮磨了足足十分钟,依旧没有达到我的诉求,甚至代码越改越魔怔了。
总不能在这个时候放弃吧。
于是我打开了在仓库里哭泣已久的vscode…轻声唤醒通义插件 “宝贝…起来帮我看个问题不?”
“哼…这个时候想起宝宝了。”
“宝,你搞得定不”?
“宝?”
“喂?”
“喂!!”
“喂!!!”
“……%……%¥!&&……”
<----------------------------------------->
“已超时…”
“已超时…”
“已超时…”
通义也能正常分析flow和unit的逻辑,并且回答的十分正确,但是到解决实际变码问题的时候,就开始装睡了。这里无意褒贬任何插件和模型,只是当下确实没有解决我的需求,也可能是我使用不当吧。
接下里又使用了vscode+Cline | vscode + codeium 成功…的把向量场改的一塌糊涂。甚至连正常移动逻辑的报废了。
按住狂跳的手臂肌肉,总不能对AI发火,毕竟我也打不过。
最后关头想起了别人推荐的trae工具。幻想着Claude留下的坑,还是得由Claude解决。
冲冲忙忙下载trae,友好的让人心颤,上来就支持Cursor以及vscode一键导入。然后导入cocos工程。
引用代码文件,提出问题,一气呵成。
第一轮修改后,向量场成功出现了,不过只有地图边缘和障碍物边缘的平滑向量成功计算了,其他区域的数值都没能正常维护。再给一次机会…
这一次修正了其他区域向量场未正常初始化的问题,也就得到了全文开头的视频效果。
虽然总对话很长,啰嗦了太多,但是有个结果还是不错的。文中出现的工具和插件各位都可以自行体验一下,这里没有绝对的标准答案,甚至交替用会收益更高。
事实上知道整个算法的大概逻辑,这个demo我们自己当然也能做出来,但是预估也要一到两天,这还是调试顺利的情况下。然而刚刚那一揽子对话和拉扯,这个demo基本耗时只用了一上午。这还是我不太熟练的情况下。想想都惶恐…
总结:
身处当下,AI 的浪潮正以汹涌之势席卷而来,其冲击力远超想象,这股力量并非你我这些个体能够轻易抗衡。AI 的发展宛如一场势不可挡的变革,随着技术的持续迭代,它在未来还将释放出更为惊人的能量。回顾历史,每一次重大的科技变革都带来了生产力的飞跃,而 AI 无疑会成为又一次生产力进化的关键驱动力。
在这场前所未有的进化浪潮中,有人凭借敏锐的洞察力和果敢的行动力,精准抓住机遇,顺势而上,实现人生的华丽转身,成为时代的弄潮儿;但也无可避免地,会有一些人在浪潮中迷失方向,一些传统行业因无法适应这种快速变化而逐渐走向衰落。就像工业革命时期,手工制造业在机器大生产的冲击下遭受重创。
这是时代发展的必然进程,我们无力阻止,却可以选择积极拥抱变化,不断提升自我,学习新技能,培养创新思维,在这股洪流中找准自己的位置,以适应新的社会需求,从而在这场 AI 引发的生产力进化中,寻得属于自己的发展空间
(以上内容…是AI写的)








