我不是整个游戏的设计者,而是后来的维护者。基本工作就是开发新功能,解决老bug。那三年的时间是怎么过来的呢?
1.首先要熟悉服务器架构,看了好几个月的库代码,能了解协议是怎么产生,接收,转发,执行。是单线程还是多线程。数据库是怎么存储的,怎么加锁,怎么实现事务的。非阻塞IO,epoll来提高接收效率。
2.从简到深的逻辑功能实现。包括协议的设计,是否需要存储,协议超时是否重传及各种错误的考虑。
3.bug的找寻。首先要了解功能的实现逻辑,gdb调试,加猜想推理,帮助快速定位bug。经验丰富了以后,一眼就能猜个大概。
4.代码的重构。自己写过的逻辑,或者自己熟悉的逻辑,看着不顺眼的小改,影响效率的大改。改动后自己多测试。秉承不要为了重构而重构的理念,我都是再有新功能开发交集是大笔重构。
5.多线程开发,重要考虑加锁的问题,好的机构设计需要加锁的地方很少。但也有架构搞不定的,只能尝试加锁,这要求对同步,线程安全,有一定理解,哪些必须加,哪些可以不加。
6.脚本语言学习,和小工具开发。解决统计或突发bug
7.熟悉几款不同类型的游戏,有助于你的创新和优化。
8.融汇贯通
9.保持学习