编者按
本文为站内开发者就战棋游戏项目的开发历程分享,经集合整理后发布。在作为日志记录的同时,希望也能为其他开发者带来参考和提示。
开发历程 01
1. 最近开始尝试战棋游戏的研制,先用 Tilemap 做了地形系统;
2. 通过识别鼠标所在格子 Tile 的名字来识别当前的地形;
3. 地形进行了分层,做了地块层,地物层和角色层,识别到地物则以地物的地块属性为优先;
4. 设计了角色属性和地块属性,可以在 UI 上显示出来;
5. 顺便做了拖动查看地图的功能;
6. 发现一个设计漏洞,UI 会挡住部分地形,下一步考虑做成动态 UI:在地图边缘时把 UI 移动到另外一边。
开发历程 02
1. 上期完成地形查看功能后,首先尝试了左右移动 UI 以避免挡住选择框,但改动成本太大,UI 要适应换边的工作太多,所以最终改为不再让摄影机受地图边界的限制;
2. 为了可以选择移动功能,先写了一套指令系统,然后又做了指令操作的 UI;
3. 指令系统中做了行动点,每条指令都要消耗行动点,行动点用尽则无法再接受指令。每个角色的行动点消耗会有差异,或可以一回合中多次行动,增大游戏的设计空间;
4. 移动系统:设计了多种移动方式可以选择;
5. 移动逻辑有确认和取消的设计,可以一定程度避免玩家误操作;
6. 移动格子计算参考了 A*算法;
7. 角色在移动时有动画。依据角色动画设计了一套通用动画系统,不同角色只需替换贴图即可,省去编辑每个角色动画的工作量;
8. 考虑将驾云和瞬移这样的移动方式作为法术,还需要先写一点法术系统的设计,使用法术扣除法力;
9. 因时间关系,少写了条件不足时无法使用指令的处理和不可移动地形相关的处理。此外,忘了使用法术还会增加经验值的设计,会在下一期做攻击系统、升级系统时再加进来。
开发历程 03
1. 攻击与伤害系统总是一个有战斗内容的游戏的关键核心,涉及到的相关系统很多,流程也有多种分支,最好还是画个流程图先考虑好攻击的流程;
2. 画完后照着流程做,结果发现流程图还是太粗糙了,许多细节和分支没有考虑进去,于是做了更详细的战斗流程;
3. 设计攻击系统需要实现的要点;
4. 设计一些武器系统需要实现的要点;
5. 大致规划一下战斗的画面;
6. 粗略设计一下元素属性的配置;
7. 准备一些武器、角色(前章已有)、地形(前章已有)、等级和职业的配置,目前是单机版,所以都用 ScriptableObject 来做;
8. 其中,职业所需的美术量比较大,要把各个职业的角色动作都画出来。制作时,还追加了影响移动消耗的气力和可持道具的空间;
9. 角色方面追加了群体敌人的设计,地图上的单个敌人可能代表的是一群人,此时,Hp 变化代表增加或减少人数,或考虑攻击力也随人数变化;
10. 之后就是依照设计,按部就班地把系统一点一点写出来,每个单元都做好测试;
11. 画一些攻击特效、地形,做一些受击死亡动画,找找游戏的感觉;
12. 做完后,发现还是漏了掉落系统,只有做道具时再补上了。
(本期开发进度分享到此结束)
挺不错的,但是战斗画面,我觉得要是可以,没必要刻意模仿《火焰纹章》搞一个单独的战斗画面,因为现在玩火纹很多人都是会去关掉这个,直接跳过这个步骤的,除非是《Engage》那么流畅的战斗演出。所以不妨直接在棋盘中展示出来棋子之间的战斗,哪怕是《炉石传说》那样的对对碰我觉得都行。特别是当你的创作重心不是在这上面的时候,遮丑也是需要的,别因为这点导致整体的重心偏移,合理的分配资源我觉得或许会更有帮助
@ACrow:倒不是为了模仿《火焰纹章》,主要是为了表现战场上的一个单位能代表实际多个单位的小队,这部分参考《梦幻模拟战》更多一些(o゚v゚)ノ