前言
以下是个人经验,仅供参考。
其次:框架不是人事先想出来的,是代码经过一次次迭代、重构、解耦的出来的通用解决方案
当前日期:2020年11月14日
2020年9月13号正式下载游戏至今2020年11月14日,已经过去两个月了。
已经换了两次代码了,等级终于到了7级。
如果是新手玩家建议先自己体验一边我的流程。
尽量不要抄别人代码,抄代码玩这游戏我觉得就失去游戏的乐趣了。
但是轮子不一样,轮子是经过多人测试的代码,建议用。
其次,我最多公布一些轮子,并不会公开游戏内完整代码!
最后,只有你玩的久了,你才能考虑到之后的事情。
只有你熟悉了API,你才能抽象解耦代码。
第一次代码
刚开始玩,相当于熟悉了代码的最基本的接口。
- 状态机
- 角色系统
- 基础行动逻辑(建筑|creep)
从官方教程到单房间的。
从最简单的状态机,一个爬一个状态机开始,
勉勉强强的到了6级,找了群里大佬要了新手礼包。
直到要扩展第二间房间,突然发现一个很致命的问题。
那就是,无法扩展第二间房间,本质没有对房间进行解耦。
第二次代码
第二次代码做了
- 外矿
- 将房间作为管理基本模块
- 栈任务状态机模式
- 初级战斗逻辑
- 初级全局逻辑
这次代码将房间作为模块剥离了出来,每个房间独立管理。
但是对于游戏内的资源的API不熟悉导致我的代码问题很多。
然后加了外矿代码,让我在前期快速发展,建议新手前期也写一点外矿代码。
最重要的问题是cpu硬占比太低了,之占了50%左右。
主要是寻找任务上导致的,后面我会专门将如何找到性能异常点。
原因是我做任务系统的时候是自上而下的,每个爬都要计算一边任务信息。
最后导致cpu占用率过高。
定义:硬消耗,爬执行一个动作固定消耗0.2 cpu的动作叫做硬消耗
当前为什么要重构
- 要用LAB
- 要扩展更多房间
- 需要更灵活的结构来扩展代码
- 需要更稳定,更节省cpu的任务模式
- 需要跨shader