开场白:你的每一刀,背后都有一群机器在加班
你在游戏里砍了一刀怪,屏幕上跳出“-9999”。
这一刀背后,服务器要算伤害、判暴击、扣血、掉装备、更新任务进度、给队友同步动画、记账防止你复制装备,还得告诉旁边围观的路人“这哥们暴击了”。
二十年前,这些活儿基本由一台服务器全包。
今天,可能是几百台机器、几十种服务、好几种数据库在接力。
这篇文章就讲讲游戏服务器怎么从“村口小卖部”长成“跨国连锁集团”的。
第一章:一台服务器扛全村——单体时代
📖 场景还原
早年的网游服务器很像村口一家小饭馆:
- 老板一个人掌勺(一个进程)
- 账本一本(一个数据库)
- 来多少客人都是他一个人炒
玩家A ─┐ 玩家B ─┼──→ 【一台服务器:登录+战斗+聊天+交易+存档】──→ 【一个MySQL】 玩家C ─┘👍 优点
- 简单:代码都在一起,调用函数就行,不用跨网络
- 好调试:出了问题看一份日志
- 一致性好:数据都在同一块内存里,不容易打架