游戏程序员撸码心法
程序架构
这张图几乎说明了所有的游戏程序。
游戏代码
GameApp app;
if(app.Init(param))
{
app.Run();
}
ServerApp
ServerApp就是游戏运行时候的最大的一个对象,代表整个游戏程序。
DBManger
DBManger 数据库模块
CacheManager
CacheManager缓存管理器
DataManager
DataManager 游戏业务配置管理器,策划配置
ConfigManager
ConfigManager 程序配置管理器。
GameManger
GameManger 游戏业务管理器
SceneManager
SceneManager 场景管理器
PlayerManager
PlayerManager 玩家管理器
FactionManager
FactionManager 帮派管理器,某种玩儿法的代表。
Service
Service是抽象不管什么游戏都会用到的必要部件,就如房子里面的水电暖一样。
EventManager
EventManager事件管理器,很多种实现方式,典型的就是Win32消息循环.
TimerManager
TimerManager定时器管理器
LogManager
LogManager 日志系统
NetManager
NetManager 网络模块
最后
有的程序把所有的Manager都抽象成单例,典型的Cocos2dx。有的程序把所有的Manager都声明一个全局变量,也是单例的意思。
左边的Manager是需要某种机制更新的部件。右边的Manager是程序初始化的时候初始化好就可以了,惰性部件。
撸码的时候认清楚自己在看那个部分就会有事半功倍的效果。手里存上几份典型的代码,不停的撸。工作中需要实现某个部分的时候会速度找到应该存放的位置,如果有借鉴代码就可以思考一下看看别人是怎么实现的。
举例
比如突然策划来了一个需求说加一个好友系统的玩儿法,我们知道他是一个游戏业务相关的模块,就可以对应的加入到PlayerManager里面。至于还需要往下细分吗,就看自己的实现了。但是终究是属于游戏业务,不应该出了GameManager。
有了这张图,也就可以在网络上看各种小知识点的实现最后用到自己的项目,轮子还是得造,不过尺寸还得自己掌握呀。