zoukankan      html  css  js  c++  java
  • 游戏系统设计

    一、 服务器

    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(挡右)

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

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

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

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

  • 相关阅读:
    C#中datagridview单元格值改变实现模糊查找
    C#中建立treeView
    L2008 最长对称子串
    第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明)
    GPLT团体程序设计天梯赛练习集 L1041~L1050
    GPLT团体程序设计天梯赛练习集 L1051~L1060
    GPLT团体程序设计天梯赛练习集 L1061~L1072
    第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明)(热身赛)
    L2007 家庭房产 并查集
    利用反射把查询到的Table、Reader转换成List、Model
  • 原文地址:https://www.cnblogs.com/freebird92/p/5530159.html
Copyright © 2011-2022 走看看