今天跟大家伙儿唠唠我最近在做的回合制单机游戏,纯属个人爱边学边做,磕磕绊绊,也算有点眉目了,就来分享一下。
就是想搞个自己喜欢的类型,小时候玩的回合制游戏挺多的,像什么吞食天地、仙剑奇侠传,那都是回忆!所以一开始就定了方向:回合制,单机,还得有点自己的特色。
第一步:选引擎!
- Unity和Unreal Engine我都考虑过,但考虑到我个人美术功底约等于零,Unreal Engine那套PBR流程我估计hold不住,而且Unity上手相对快一点,资源也多,所以就选了Unity。
第二步:搭框架!
别看是单机,框架也得搭不然以后代码乱成一团麻,改都没法改。我参考了一些开源的回合制框架,也自己琢磨了一些,核心就是把战斗流程拆解成一个个状态,比如:
- 玩家行动选择状态
- 敌方行动选择状态
- 伤害计算状态
- Buff结算状态
- 胜负判断状态
状态机这玩意儿,理解起来简单,用起来是真的香。每个状态负责自己的事情,状态之间切换,逻辑清晰多了。
第三步:战斗系统!
这是重头戏!回合制的核心就是战斗。我一开始想搞复杂的,又是属性克制,又是各种技能效果,搞得头都大了。后来想想,单机游戏,没必要那么卷,简单点,快乐点。我的战斗系统主要包括:
- 角色属性:生命值、攻击力、防御力、速度等
- 技能系统:每个角色都有几个技能,技能有伤害、回复、Buff等效果
- 行动顺序:根据角色的速度决定行动顺序
- 伤害计算:攻击力 - 防御力 = 伤害,再根据一些技能效果进行调整
伤害计算这里我偷懒了,直接用的减法,简单粗暴。技能效果也比较简单,就是加减属性,或者是一些概率性的效果,比如眩晕、中毒之类的。
第四步:AI!
单机游戏没有AI怎么行?我的AI很简单,就是根据敌人的血量和技能,选择一个合适的技能释放。比如:
- 如果敌人血量低,就优先使用高伤害技能
- 如果自己血量低,就优先使用回复技能
- 如果没有合适的技能,就使用普通攻击
是不是很简单?没错,我的AI就是这么简单。毕竟我不是专业的AI程序员,能让敌人动起来就不错了。
第五步:UI!
UI这块儿我直接用的Unity自带的UI系统,简单拖拽,改改颜色,能用就行。主要就是显示角色信息、技能信息、战斗日志等。UI方面我没花太多心思,毕竟重点是游戏性。
第六步:美术!
说到美术,这就是我的短板了。我不会画画,也不会建模,只能在Asset Store里找一些免费的素材,拼拼凑凑。人物立绘、场景、特效,都是免费的,质量嘛就那样,能看就行。
第七步:测试!
自己做的游戏,自己玩,测起来也挺有意思的。我主要测试的是战斗的平衡性,看看有没有哪个技能太强,或者哪个敌人太弱。测试过程中发现了不少Bug,也慢慢修复了。
目前进度:
现在游戏已经有一个简单的战斗流程了,可以创建角色,选择技能,和敌人战斗。但是还有很多东西要做,比如:
- 更丰富的技能系统
- 更智能的AI
- 更多的角色和敌人
- 剧情和对话
- 地图和场景
路漫漫其修远兮,吾将上下而求索!慢慢来,反正就是自己瞎折腾,能做成什么样就什么样,最重要的是享受这个过程。
总结
这回做回合制单机游戏,对我来说是一次很大的挑战,也是一次很好的学习机会。我学到了很多东西,包括:Unity的使用、C#编程、游戏设计、AI等等。虽然做的东西很粗糙,但是很有成就感。希望以后能做出更好的游戏!
也欢迎大家给我提一些建议,或者分享一下你们做游戏的经验,一起学习,一起进步!