一、游戏介绍
这是一个基于龙与地下城(Dungeons & Dragons)世界观的魔幻 RPG 游戏。玩家扮演一位失忆的圣骑士,曾是一个强大且受人尊敬的英雄,但由于某种神秘的原因,失去了全部记忆。玩家需要通过冒险找回自己的记忆,同时面对新的挑战与敌人。这个世界充满了各种奇幻生物、神秘的魔法力量以及隐藏在历史中的秘密。玩家所遇到的 NPC 也不了解主角的过往,只能根据主角现在的表现进行互动。
二、开发前景
这个游戏的想法来源与我初中同学Shark,有一天他发微信说手头有没有正在做的项目,当时刚好完成了WebServer的开发,所以手头并没有什么活,然后听他讲了一些关于这个项目的想法,他先是提到dnd这个游戏,然后提出玩家随意发挥文本并通过大模型处理玩家输入的文本并与玩家互动。我当即表示很感兴趣,于是参与进来。因为项目组里其他同学都不熟悉编程,所以我的主要工作就是编程。
三、开发日志
第一步
按照Shark的构想,我选择了最熟悉的qt框架,但是一切的一切都需要自己手写,然后转向使用godot,学习了几天godot后,因为没有指针不习惯,也为了加快进度,还是回到了qt。
先设计了大致框架,包括二维数组表示地图,一个角色基类,一个游戏主逻辑,还有一个处理对话的类。大致框架设计好便开始编码。大概花了四天时间完成框架的搭建。因为素材绘制工作还没完成,所以编码工作暂时告一段落。
第二步
进一步补充框架内容,也收获Shark的素材,按照原来的设计继续完成。技术上没有太大问题,主要是对框架api不够熟悉,需要用到的时候上网搜索基本都能完成。
记录为数不多的一个问题,就是QTextEdit不支持更换背景图,只能用原始的输入框,为了解决这个痛点,封装了QLabel和QTextEdit,实现了QTextEdit加入背景图。实现代码经过修正后会上传
第三步
再解决了一个qt的c++代码调用大模型的问题,这个会开一期博客单独讲。然后就是简单的逻辑拼凑,在编写过程中才发现有些问题,多次的调整让项目变得臃肿,每次更改都很费劲。这主要是自己水平不够,设计的结构不合理,贪图方便,省略了许多步骤,导致项目不易于扩展。
但也不是一无所获,至少在这次项目中,亲身体会到程序设计的难点,这是一门取舍的艺术。到现在为止,项目已经很难再继续下去了,只能经历一次彻底的结构调整,但这需要一些时间,至少最近是不行了。