《龙舟竞渡:茶峒惊桨》游戏设计,记我的第一个游戏
写在前面
我本学期报了计算机游戏设计这门公选课,《龙舟竞渡:茶峒惊桨》为此公选课的期末作业,也是我制作的第一个游戏,此前我制作的游戏均为照着教程做的。此游戏加上我一共三个人制作,在此称负责美工的同学为美工A,负责程序的同学为程序B,在该游戏的设计中我负责游戏策划和程序设计。本篇文章用于记录我的一些收获,感想与反思。
一,关于游戏策划。
1,关于游戏制作安排。
这是作为游戏策划首先要关注的一个点,只有将游戏分工的足够明确,组员才知道需要干什么。在这一点上我没有做好,我的分工非常笼统,只是划分了A负责美术,我负责模拟经营部分的制作,B负责划龙舟部分的制作。此处为后面的失败埋下了很大的隐患,一是B没有完全了解需要制作一个怎样的游戏,二是没有提前考虑到我和B的程序对接问题。
2,关于制作时间安排。
本游戏总共制作时长一个月。此处有两个问题,首先,我在策划的时候没有明确写出各个时间段的任务安排,导致A在进行绘制工作时时间仓促。其次,我在策划时没有考虑到时间不足和效率太低问题,导致很多功能没有实现,游戏有一定割裂感。
二,关于程序设计。
1,使用工具。
本游戏使用unity引擎制作,我使用Trae CN这一AI智能体进行辅助。AI智能体相比于豆包,Kimi等常见AI的最大优势是它可以读取我的游戏项目并直接进行修改,大大提高了工作效率。不足是只能够以文件的形式读取,这意味着它不能够读取到我的场景中具体有哪些内容。尽管如此,这一工具对我进行程序设计有很大的帮助。
2,代码的优美程度。
我认为优美的代码一定要是功能清晰明确的代码,即将每一个功能封装成单独的类。此处以主角举例,主角有以下几个功能,首先,移动功能,主角读取键盘WASD输入并处理成上下左右移动,同时播放相应动画。其次,交互功能,主角要与游戏中的其他物体进行交互,如制作食物,和NPC对话。正常来讲这两个相互独立的功能应该封装成两个不同的类,而我却将其放在了一个类里,导致后期修改相对复杂。
3,代码的可扩展性。
代码的可扩展性指的是我需要在原有的代码上添加新的功能是否容易,此处以我的背包系统为例,这个背包系统就是典型的钉死了,一点东西都加不了,其中多一个少一个物品槽都不行。这使得后期有新想法,想要添加新物品近乎无法实现。
4,程序之间的对接。
这个是最重量级的一个问题,耗费了我和B大量的时间和精力,甚至导致我最后不得不重写B的程序。此处的核心问题是我没有在策划时提前敲定在哪里对接,在程序设计期间,我的想法是将龙舟等级传给B,让B来决定龙舟各个等级所对应的速度。而B的想法是我直接将龙舟速度传给他。这就导致需要做出大量修改,耗时耗力。程序之间的对接我认为也是游戏设计的一个难点,如果程序之间的联系少,可能意味着游戏的割裂感强,各个模块各玩各的。如果程序之间的联系多,意味着程序员之间的交集就更多,而游戏设计又不同于传统的计算机项目,传统的计算机项目之间的对接相对明确,前后端之间有很成熟的对接体系。而游戏设计取决于你的游戏需要怎样的功能,这就意味着程序之间的对接是少有先例可以遵循的,需要策划提前构思好对接处。
三,关于游戏中的一些问题。
1,缺乏提示。
在试玩时我发现试玩者在很多地方出现了不知道要干什么的问题,这是由于提示不够好,我的新手教程主要体现在与爷爷的对话上,而如何触发爷爷对话却没有明确提示。此外,在一些按钮上没有明确的反馈,如向顾客出售粽子时如果背包里没有足够的粽子,没有相应的“缺少粽子”提示,而是直接无事发生,这会大大影响游戏体验。
2,割裂感强,
制作及出售粽子这一模拟经营玩法和划龙舟这一玩法除了共用一套货币系统外没有任何联系,这主要是因为时间仓促及程序之间的对接问题。
3,爷爷对话有时无法正确触发,
这在试玩中是一个非常致命的问题,大大影响游戏体验,且难以定位到问题所在。
最后附上游戏链接:
我用夸克网盘分享了「DragonBoatGame」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:https://pan.quark.cn/s/8e558bb9a668