大家好啊,这里是一个想做游戏但是由于没什么做游戏的经历导致没有公司愿意要我去实习只能一个人蹲在寝室里做游戏的苦逼大学生,过了一周,我又来记录一下目前的开发状况了。
现在已经开发了一个月左右了
最近的一周是一个相当折磨人的日子,因为开学已经一个多月了,沟槽的课程又开始多起来了,加上大部分都是小课,所以不敢带电脑去,所以用Claude编程的时间越来越少了,这还不是最关键的,目前的开发工作开始逐渐接触到了AI开发的关键瓶颈,也就是因为这两个原因的互相影响,导致我这一周的技术开发几乎没有突破性进展,人都要给干傻了,可以说是开发目前以来遇到的最大困难,如果对这个感兴趣的话可以往下看看。
除此之外,由于最近上课时间比较多,所以我只能在课上干美术了,课少就专门找Claude编程,课多就专门做美术,后面也会发一些目前正在制作的人物立绘图。
目前的开发进度以及遇到的最大难题:
1.复杂集成性系统对AI编程的极大挑战
在上一个日志当中,我正在制作一个可以完全替代RPGMAKERMZ原始主菜单的集成性背包系统,它不仅要求有类似生化危机4原版的背包功能,还需要起到集成其他所有必要菜单状态的功能,比如可以直接查看角色的信息状态,给角色更换装备等,让玩家只需要靠一个菜单场景就可以接触到他们需要的功能,这也是我制作一个集成性背包界面的初衷。
最终要实现的UI演示图
然而,虽然背包系统在上周就已经完成,但是这个背包之外的集成系统却是一块非常难啃的骨头,系统设计上的逻辑套环过于复杂,导致AI已经很难通过一次性代码就能完成全部任务了,必须通过多次且少量的代码逐步试错才能缓慢推进项目进度,甚至因为目前需要阅读的插件信息实在太多,导致AI也会因为过长的前置对话内容而耗费太多的Token,所以必须采取和之前编写小型功能插件不一样的方法才能实现目标了。
2.尝试减少对话需要获取的代码信息
由于先前光是编写背包代码就已经差不都有了4000行左右的代码,这还只是背包插件的核心部分,因此如果直接交给AI,让AI一次性读完这些插件,了解插件的调用方法,就已经会消耗过多的对话token了。
恐怖的代码量
因此需要采取说明文档的手段,尽量减少不必要的代码信息,在这里我主要用了ChatGPT来整理插件内容,将它们里面功能的主要调用方式以及功能都列举出来,这样只要不涉及到和背包核心代码直接相干的地方,都可以让AI直接引用对应的部分,比如背包的场景名,以及背包的功能API,都可以在说明文档里快速获取,这样就可以让一个4000行的大型代码文件被缩短精简成一个只有四五十行的插件说明文档,可以大大提高AI对话的利用率,这在编写和原插件相关而不涉及核心代码的其他功能插件来说,是一个比较实用的方法。
AI总结代码
3.拆分插件功能,一步一步实现
上面的这个插件编写方式,并没有那么全面,因为很多时候插件文档的说明并不完善,特别是在编写和主要插件核心息息相关的功能插件时,这么去编写是很容易发生错误的,因此最需要做的就是分段编写插件,将一个功能庞大的插件分成几个部分,让AI一步一步编写,确保每次只会调用最核心的插件即可,这样也可以省去很多不必要被读取的代码部分。
如果实在不会分模块,可以让AI负责
这个最需要注意的就是在编写主插件时就一定要让AI把API什么的都开放好,确保主插件的可拓展性,这样后续的插件就可以很轻松地对主插件进行增强和修改,如果AI在编写主插件的时候犯蠢给你套了硬编码进去或者某个关键部分没有被开放,那后续修改起来简直就是难上加难(我因为这个问题,重写了好几遍主插件,真的一定要注意这个问题)
当然分模块也分为好几种形式:
一种是编写一个拓展性好、功能差不多完整的核心功能插件,然后让AI每次只需要根据核心功能插件编写附属插件即可,这是一种比较简单的方案,唯一需要注意的就是这个方案要求附属插件管理的内容不能过于复杂,不然很容易出现一直犯错然后附属插件写不完的情况。如果任务比较轻的话用这种方式是可以的。
第二种是将整个大型插件分为好几个模块,通过主入口进行集成调用(如上面ChatGPT写的一样),这种一般针对于各个模块都比较复杂,且层层交错的插件,这些插件由于内容庞大,因此为了防止AI每一次修改都要重写大量代码,确保其稳定性,就把其分为好几个小块,这样AI在实现功能时只需要重写某个模块即可,对不是很想亲自改代码的人很有帮助,我就是靠这个勉强实现了角色卡片的初始效果。
第二种在使用时也需要时刻注意给自己的源代码进行备份,因为如果出现大型问题需要推倒重回来的话要把每个模块都还原是很困难的,所以一定要备份,这样如果要重来,直接把备份的代码拿出来用就好。
4.充分利用对话
实际上我这一周使用Claude时总是会出现AI还没说几句话就提示我到上限了要等三个小时才能继续的情况,气了我好几次,后来我专门跑到外网reddit上去看有没有和我相同的情况,同时还看到了一些如何充分利用Claude的方法。
1.在对话出现持续性问题时,从开头修改对话。也就是说,如果你发现AI没有很好地理解你的指示,写了一大堆很奇怪的代码时,不要尝试和AI进行任何理论,这是因为Claude对话计算token的方式很不一样,每一次AI和你说话时,都需要扫描一遍你们先前的对话记录,这些信息每被输入进一次,就被算作一次token,所以如果你和AI之间越说越多,那么每一次说话时消耗的token也就越多,这样很快就会消耗完你的对话次数,因此如果AI出错了,如果没有必要,就不要尝试和它进行理论,只需要返回上面的对话,修改你的对话,在对话里让AI注意这些问题就可以了,也可以防止AI对话堆砌过多。
2.每次对话AI都只专注于解决一个问题。上面也说了,Claude的计数方式非常容易消耗token,特别是又大又长的代码,所以不要让AI每次都试图解决太多问题,每一次对话只让AI解决一个问题,AI不擅长编写逻辑复杂的代码,但很擅长写完善的小型功能。
说实话,我在第二点这里栽了不少跟头,很多时候都是因为实在是太心急了,导致AI写出来的代码完全不能用,又要重写。
以上差不多就是我目前编写程序的心得体会,也算是受到了不少的教训,真的是吃一堑长一智,也算是成长了。
至于本周实现的功能真的不多,详情可以直接看视频演示,实现背包集成菜单估计还得再花上不少时间。
第四周视频演示:
目前的美术进度:
差不多完成了四位主要角色的立绘,以及一些队友的立绘(并不算全部完成),我不是很明白怎么改图片大小,发出来的图片都又大又糊,你们别介意,还有大部分角色我都没给下半身,是因为游戏里下半身基本看不到(其实是我太懒了不想画下半身而已)。
舞女(分为礼服和常服)
舞女(礼服)
舞女(常服)
侦探(有点黄不拉几的)
侦探
骑士
骑士
教徒(雇佣兵)
若干队友立绘:
口袋猫变成的手枪
艾尔莎
木桶人
这个木桶人我还没完成哈,就是发出来玩一玩的
剑歪的有点离谱
银色骑士也是一个未完成的角色,我知道你们肯定觉得这个剑太歪了,主要是明天要考试了,没时间画了,等之后有时间就会继续完成
这周的进度汇总就这样,我们下周再见,之后估计更新的内容就比较少了,毕竟每周能做的不多。
更多游戏资讯请关注:电玩帮游戏资讯专区
电玩帮图文攻略 www.vgover.com