中间数据通信:可以使用http+定时器 ,可以使用socket实时通信(建议使用)
竞技游戏开发共分4个阶段:
客户端游戏状态:匹配中,未确认,进行中,已结束
一:匹配池,匹配器模块:
业务流程:人员跟匹配池的人进行匹配,未匹配到进入到匹配池(存在于匹配池有时间限定,过期了重新进行匹配流程,避免始终匹配不上)
redisson (加锁,保障资源的使用),redis 作为匹配池
二:确认机制 ,确认模块
业务流程:匹配完成后,提示对应的客户端。是否确认,确认完成,生成房间(生成房间的流程也可以不必放在此处,对于那种组队模式,可以先生成房间,然后以房间为模块,人员加入房间的模式来进行确认)
redis 生成和解析缓存数据,mysql存储必要基础数据
三:竞技模块(游戏的对战规则)
业务流程:各个游戏的对战规则,譬如王者的相互对战,生产各类对战数据,譬如竞技答题,答对,答错,耗时 等
redis 生产和解析缓存数据,rabbitmq推送数据,mysql存储各类数据
四:结算模块
根据竞技模块产生的关键数据,进行数据结算。
redis生产和解析缓存数据,rabbitmq 推送结算数据,mysql存储结算数据
根据结算数据信息生成实时数据排行榜(redis 的 Zset)
麻将,扑克,对战,答题等等都可以根据此流程来设计游戏
总结:竞技游戏:先匹配,匹配完成生成房间,房间内进行游戏,游戏完毕进行结算。