这次的主题是【Re】,我很直觉的联想到:轮回,再一次的意思。 比赛的节点正好也是我事情最多最慌乱的一段时间,我会一直问自己:【如果能重来来一次,是不是会做的更好?】,不停在为每一个选择后悔。所以很自然的把这样的想法一股脑倒进去。
这个游戏被设定成玩家与过去的自己进行对话,每个NPC被设计成不同时期的【我】。玩家的目标是避开危险顺利走到每个NPC位置,帮助后悔的【我】再次选择。 在玩家前进的过程中,有希望】意向的星星追着玩家走,碰到星星就会进入【死亡结局】
然后就要引入这个游戏的核心玩法:随着BGM的重拍【在第5拍按下鼠标或空格就能发波驱逐星星】
除此之外,在玩家遇到对话选项时,也需要在第5拍点击才能正常进行对话。 游戏开始时第一段跟自己的对话,有两次选择,正好当新手教学了。教学完才会有星星过来,这样离开选项后玩家也能尝试着在5拍按下。希望能通过这样的设计让玩家自己发现【5拍按下可以发波攻击】,能更有成就感。
【重拍攻击】这个玩法来源我一个不好的习惯:我每次做决定的时候总会怀疑自己,所以经常通过当下时间的尾数来确认选择,会对自己说:【如果是双数我就选这个】【如果的双数我这次的选的就是对的】。我现在已经过度依赖这个习惯了,以至于时间不是双数的时候就会焦虑甚至崩溃。
虽然帮每个【我】的从新选择有好有坏,会触发不一样的结局,最后一个对话里也有【C/B/A//S】这样的结算,但就算拿到最高评价,最后给玩家结算的【我】也是不会满意的。不管怎样选择还是会进入Boss战斗,这个S评价目前的文案:
Boss战会触发新的机制玩法机制,在这里就不剧透啦,只有在Boss战中胜利,主角突破了心魔才会进入【TrueEnd】。失败后则根据玩家选择进入不同的【FakeEnd】(共有6个假结局)
用五拍是因为第五拍也是第2个循环小节的第1拍,我给的音符强度也是这拍最重,虽然根据游戏玩法他有5这个名字,但更像是1.2.3.4. 1.2.3.4,这两个小节里的第二个1。
后面3拍我是空出来的,两个8拍是这样的:1.2.3.4.5.空.空.空 1.2.3.4.5.空.空.空 空拍的存在其实应该在音乐上给出暗示比较好,但因为我编曲水平太烂,这次还没有实现这样的效果。本来很重要的Boss战变奏也受制于自己的能力迟迟没有实现。
实在没有搭建场景的心力和时间,整个游戏只有几张图片和一个小幽灵建模的美术资产,主要还是通过码Shader来提升画面质感。对我来说编写渲染是创作的一部分,夸张点来说是一种艺术手法。这些代码里除了技术融入很多我自己的创意和审美,也试着拿渲染画面表达氛围和内心的感觉。
小幽灵的模型是Blender建模完成,UI和立绘是PS快速手绘或者贝塞尔曲线拉出来的,角色设计玩了日本漫画《五等分の花嫁》的梗,似乎并没有玩家看出来233333 。
因为写Shader用VSCode实在是干净和方便,我以前在明知没有代码补全的情况下也一直用VSCode来编写逻辑(甚至希望通过这种方式来让自己牢记API。 这次终于换成用Studio来写C#了,效率疯狂提升。看来还是不要过度相信自己的码感为好。
经历了1年断续的自学和疯狂单刷Jam锻炼。慢慢对框架和设计模式有一丢丢自己的认知。这次的项目用到事件管理器、对象池等经典技术。GameManager脚本控制整个流程,但它只负责发命令和记录数值(干净到只有237行)。具体执行逻辑放在【敌人】【玩家】【节奏管理】等脚本里,也算是实现了亲近性原则?
这是我首次尝试写大段对话,和有不同分支结局的作品。文本量对比以前可以说是断崖式升高。对话系统是和Excel绑定的。对话还是选项、选项后修改什么游戏参数等功能都直接在表里用符号标记,代码再用逻辑判断,很方便就能编写和修改剧情。
值得一提的是整个游戏没有用到任何动画组件,像是Boss战演出、攻击受击等动画都是代码+Shader编写完成的。因为有大佬感兴趣,我具体讲一下波攻击效果实现:
首先我们需要把角色位置实时传入Shader。然后用顶点世界位置算出与角色的距离,距离+-一定区间值是波的范围。因为顶点数不多,所以在VS里计算距离本来就有一棱一棱的效果。根据这个算出来的权重向上偏移顶点。最后把权重传入PS叠加一个波的颜色就OK了。
非常感谢游玩【幸运5】这个游戏的每一位!感谢每一份评价!你们对这个游戏的建议和鼓励都给了我很多很多勇气,也是让我坚持做自己游戏最重要的动力~谢谢你们!
这个游戏玩法既不巧妙也不独特,但还算在符合题目的同时恰好倾诉了我最近问自己的问题:我这个看时间做决定这个习惯,说到底是不是因为自己的懦弱。这个逃避选择的习惯一开始带来了轻松轻松,最后反倒变成了我对时间的偏执,对所谓【正确の选择】的偏执。
这是我想对自己说的话,也是这个游戏最想表达的东西。
评论区
共 6 条评论热门最新