香雨站

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 108|回复: 0

给AI打工,2小时开发一款3D小游戏可行么?

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-4-26 10:35:28 | 显示全部楼层 |阅读模式
体验链接:http://learncocos.com/aigcsnake/
商店地址:https://store.cocos.com/app/detail/4775
**小游戏地址(新版本还在审核): **


最近科技发展是日新月异。。
如果说 Stable Diffusion和Mid Journey只是卷死了美术,我们还在庆幸研发不能被替代。
那么3月份出来的GPT4 就让我感到危机了!!。。
那么很多同学就说,大不了我当UI崽,让GPT4给我写Shader么,对此,我同时持怀疑和焦虑。
本文从实践出发,从程序,Shader,美术,到音乐均由AIGC,二喵全程负责当UI崽,来探索AI的上限和下限,缓解焦虑。
写在前面
老习惯,先做思维导图,确定要做那些内容,游戏玩法是AI熟悉的贪吃蛇,这次要升级到3D贪吃蛇并加入新玩法和复杂地形。


为啥要先写思维导图呢,因为功能点比较多,中间改来改去怕影响GPT4的上下文。同时功能也会尽量拆开,避免相互干扰。


1.0 代码功能开发
第一次沟通
GPT4的API还停留在Cocos 3.3版本,这次是使用3.7.2 最新版本开发,先粘贴第一个需求,居然没有报错!


然后运行就翻车了!初始化直接报错,我发现直接空指针报错,检查后发现是_moveDirection 蛇的方向向量为空(猜猜为什么跑不起来?)


经过沟通后,小G很快修复了问题


运行一切正常。
然而加入水果的逻辑,第3次运行,发现蛇的方向错乱,作为1个老UI崽,很快意识到是蛇头的坐标被污染了,这时候已经开始打退堂鼓了,不会每次都需要我修改吧?




于是我开始CPU小G,在接下来的5个功能点上,一切正常。




小G和我的配合也渐入佳境


大概花了50分钟把全部的游戏逻辑写完了一切正常。
总结如下
在这次对话中,我们一起完成了一个基本的 3D 贪吃蛇游戏。您提出了一些问题和需求,我对代码进行了修改和补充。以下是您提出的修改和补充要求:

  • 添加使用键盘 WASD 控制蛇移动的逻辑。
  • 修正 _moveDirection 没有初始值的问题。
  • 添加吃到水果后蛇身增长的逻辑,水果在地图上随机出现。
  • 修改 _checkCollision 方法中不应使用 this._snakeHead.position.subtract 的问题。
  • 添加游戏边界逻辑,超过边界游戏会重新开始。
  • 在地图上添加一个坤坤,碰到坤坤后游戏会重新开始。
  • 碰到水果后,坤坤的位置会随机改变。
  • 吃到水果后有 30% 几率生成一个大西瓜,吃到大西瓜会增加 3 个长度。
  • 吃到水果后有 10% 几率生成一个响雷果实,吃到响雷果实会增加速度 20% 并增长 2 个长度。
  • 要求提供 randomRange 方法。
  • 添加地图上每隔 10-20s 会随机生成一个缓慢果实,吃到缓慢果实会减速 20% 并减少 1 节身体。
  • 优化生成特殊水果的逻辑,判断之前的节点是否存在,如果存在则重新设置位置,而不是重新生成。
  • 添加上下左右四个按钮,按钮按下可以控制蛇的移动。
  • 在电脑上运行时隐藏按钮,在手机上运行时显示按钮。
  • 使用 touch down 的方式控制按钮。
  • 添加一个 label 计分板,显示蛇身子的长度,每次增加和减少时会变化计分板。
  • 添加一个 暂停 按钮,每次点击可以切换暂停和继续。
  • 重新输出完整的代码,添加中英文注释。
  • 添加摄像机跟随蛇头移动的脚本。
  • 修改摄像机脚本中获取蛇头节点的问题。
  • 添加摄像机阻尼,让摄像机跟随更平滑。
下面到了比较难地形的部分,这里新开了一个对话
这里需要小G在terrain上随机生成植物,跑起来是没问题的,但的生成的位置明显偏了一半的位置


不断提醒小G


快速修复


再拿这个写好的方法和之前对话沟通,
给蛇头和物体生成逻辑也加上,一切顺利!
程序部分就这样有惊无险的完成了。
2.0 Shader 环节
接下来到了Shader了,心理是一阵炸裂,因为3.3 的API比较老
先从最简单的Blinn-Phong开始
VS 部分写了一半我就炸了


这个信息太老了


反复修改先把VS解决


FS部分先忽略API,这个光照模型没考虑摄像机的观察位置




然后各种向量计算问题,各种API和Global 变量问题
经过了1个小时的折腾(中间换了2次对话,太曲折了,目前还是建议大家参考为主)。。总算在3.7.2 跑起来了


#折腾为主
接下来是写1个草的风吹效果,也是很常见的效果,还好做了心理准备,这里GPT4上来就把Chunk漏了


为了面子,小G快速去Github抄了1个。


跑起来又出了问题!!
这里其实也不怪小G,用的是2.x的api


我们改成在透视的矩阵变换之前添加效果,这时候就可以看到风吹草动的效果了。


最后设置ok开启instancing 保证性能!


3.0 音乐
https://mubert.com/
音乐就不需要AIGC添加脚本了,直接使用引擎的AudioSource 组件, 音乐使用的是mubert
关键词 fun happy snake


4.0 天空盒 https://skybox.blockadelabs.com/
也是prompts+blockadelabs生成,关键词 Fantasy, Forest, Lake


5.0 图片
https://www.midjourney.com/ snake eating an apple, cyberpunk , in the space, hyper-realistic, surreal, fantasy, cinematic, extremly detail, 3D, manipulation, VFX, vivid background, cool --q 2 --v 5 -


Icons


写在最后
目前GPT 的数据库比较老,在Shader上遇到了很多问题,然后无论如何,用2个小时时间搞定一个小游戏还是很香。
最关键的是不用怎么动脑,CPU AI输出就好了。
总结:

  • 每次Prompts 需要要控制在2-3个,方便回馈和修复,比如一次把需求全部沟通完,如果报错,可能自己和AI都比较难定位
  • 需要的内容版本信息和语言信息要明确,比如版本是Cocos 3.3 (GTP4 2021 知道的最新的版本), 避免使用更老的API;语言需要要求是TS (不然可能抄到JS版本);Shader 要求尽量参考Webgl,语法是Yaml
  • 发现问题要尽可能详细的反馈,AI会学习这个问题
  • 尽量在一个对话中沟通一个大的需求,保持上下文连贯
  • 调整好心态,是AI在干活,你是老板,咖啡 Youtube 配鸭脖,发现AI有问题,CPU就好了,他改不好继续改,没事儿看看他打字
  • 复盘,这个很重要让AI每次输出完复盘下,也观察下这次Prompts能否更精简,那些沟通是不必要的
比如有时候过度沟通,AI反而开始摆烂


调整心态,态度要好一点 ( 调整好态度后,果然注释全了,开始也以为是 Prompts里加了仔细,结果不尽然,OpenAI会判断是否对AI带有恶意,过度CPU可能会导致对话提前终止)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|香雨站

GMT+8, 2025-9-14 23:16 , Processed in 0.132125 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表