一款战棋游戏的开发历程(01 - 03)

作者:游小熊
2023-11-03
10 4 2

编者按

本文为站内开发者就战棋游戏项目的开发历程分享,经集合整理后发布。在作为日志记录的同时,希望也能为其他开发者带来参考和提示。

开发历程 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. 做完后,发现还是漏了掉落系统,只有做道具时再补上了。


(本期开发进度分享到此结束)

本文为用户投稿,不代表 indienova 观点。

近期点赞的会员

 分享这篇文章

游小熊 

单打独斗的游戏开发者 

您可能还会对这些文章感兴趣

参与此文章的讨论

  1. ACrow 2023-11-05

    挺不错的,但是战斗画面,我觉得要是可以,没必要刻意模仿《火焰纹章》搞一个单独的战斗画面,因为现在玩火纹很多人都是会去关掉这个,直接跳过这个步骤的,除非是《Engage》那么流畅的战斗演出。所以不妨直接在棋盘中展示出来棋子之间的战斗,哪怕是《炉石传说》那样的对对碰我觉得都行。特别是当你的创作重心不是在这上面的时候,遮丑也是需要的,别因为这点导致整体的重心偏移,合理的分配资源我觉得或许会更有帮助

    • 游小熊 2023-11-11

      @ACrow:倒不是为了模仿《火焰纹章》,主要是为了表现战场上的一个单位能代表实际多个单位的小队,这部分参考《梦幻模拟战》更多一些(o゚v゚)ノ

您需要登录或者注册后才能发表评论

登录/注册