休闲游戏平台架构
背景和目标
当年大三的时候写了个五子棋世界,就是 QQ Game 那种大厅-房间-桌子(我只有简单逻辑的五子棋)。毕业后一直想找个时间来重构它,后来有次下决心看了下代码,有点儿不知所措,你懂的,:D,还不如重写。
现在对 Go 很感兴趣,准备用 Go 来实现以前的开源梦。就先已以前的五子棋世界那种休闲游戏平台来开始练手吧。
目标暂时不定的太大,基本实现大厅-房间-桌子-游戏就行了,慢慢重构慢慢完善。
服务器架构
基本架构参照之前给公司项目做的 架构 。当架构有改变时,及时修改这篇博客,或者新博客与这篇相互引用和注解。
不同的部分,加个大厅,大厅里显示房间状态,这样玩家就自己选择闲的房间去玩,这样就不需要做负载均衡的算法了。
账户系统
游戏自身不做账号密码这种用户系统,只用第三方的账户,如微博账户等来连接到我们游戏。或者更简单点,这块儿只模拟下微博等第三方用户系统的登陆了。
第三方账户连接到我们游戏,我们本地只由自增长的 uid 生成器来生成一个 int 的 uid 即可,将第三方的 platformUid 和我们的 localUid 做个关联映射。
大厅
大厅可以做成短连接,玩家选择游戏及房间的时候才去大厅刷新下当前的各房间负载情况。
客户端
用 walk。(待详细规划)