游戏系统设计

一、 服务器

1、逻辑与数据分离

无状态服务

对于无状态服务, 首先说一下什么是状态, 如果一个数据需要被多个服务共享,才能完成一笔交易, 那么这个数据被称为状态, 进而依赖这个“状态”数据的服务被称为有状态服务, 反之称为无状态服务。
真实意思,就是把有状态业务改变成为状态无关的计算服务, 数据迁移到分布式缓存中存储, 让业务服务变成了一个无状态的计算节点。这样就可以做水平扩展了。动态添加与删除节点。不再需要考虑数据同步的问题了。

2、读写分离

3、服务器分层

4、分区容错 HA

 a.路由服务器组

*1, 做到AB测试,添加功能开关,策略选择灰度测试发布。

*2, 做到切片编程,(可采用类PCALL包裹类)

*3.做到AB滚服, 主备服务

*4.MYSQL冷数据落地

5.Service-Oriented游戏服务端

6.战斗等场景,玩家对象的时空穿越,agent的回归-信使

7.负载均衡,ROUTER,MAPREDUCE, NODEMGR(ZOOKEEPER), MQ,KAPHA

8.method监控与性能分析;跨界访问安全失败与缺省值机制, 支持服务降级

9.单元测度(仿go)设计

10. 变速齿轮检测,服务器可以通过一段时间内,收到前端传来的心跳数量的判断,是否加速。

11、防DDOS攻击, 开大量低价便宜的网关服务器, 很多IP很很多PORT,做为登录成功后,给随机分配一部分可以用端口。(成本对抗, 前端分级,VIP通道)

12、KCP支持高响应

13、ZK+REDIS+SERVICE(含standby)+GATEWAY(BALANCE); 可以自由扩展,自动恢复,基于无状态服务的集群服务系统

14. 消息队列, 实现异步:1.推消息 2.削峰请求

二、客户端

1、可回放与验证设计, 以帧为时间基础。

2、请求回应分离,回应统一为推送,数据驱动,仅仅是状态呈现器

三、双配置服务器轮起, 无缝推送更新

1、在路由层,添加服务器分组类型, 根据分组类型进行路由, 由此可以加入新版本服务器,近而实现新老服务器兼容, 实现灰度服务器并存。

项目开发:

1,原型迭代

四、发布相关

0、CI/CD持续集成与持续开发

1、是否可以根据游戏商店开区?

五、游戏设计

自生态系统。

物品模板自动生成系统。

边际受益

游戏世界(虚拟)是否应该满足人的幻想, 传播快乐, 传播爱,传播成就,

 

 joy (上) grief(下) admiration(仰右上) disgust(埋左下) viligence(盯左上) amazement(跳右下);rage(扯左),terror(挡右)

上下,右上,左下,左上,右下;左拉,右挡

软件设计的精髓: 分 与 抽象

层:数据层,服务层,逻辑层, 接口层, 负载均衡层

类:数据, 函数, 模块, 子系统, 区域, 接口, 消息,

原文地址:https://www.cnblogs.com/freebird92/p/5530159.html