就DogSE的设计目标来说,它定位为千人左右的页游服务器,在不修改任何底层模块的情况下可以快速的写各种游戏业务。就算是新人在熟悉2~3天后也可以开始写一个游戏。

1、DogSE的基本结构

对于一个游戏再代码层面可以分为3个部分

1.与所有游戏无关的代码(DogSE的Core和Library 项目)

2.特定游戏类型的基础代码

3.具体游戏相关的业务代码

对于DogSE来说,它所完成的任务就是与游戏无关的底层代码,在第二阶段,会根据不同的游戏类型,补充一些特定游戏的基础代码,这些基础代码是已例子的方式提供,真正在用引擎开发时,只需要根据具体的游戏类型,选择对应的例子,并再这个基础上进行快速开发。

2、DogSE一些组件的设计

2.1 网络层设计

网络层主要由2个对象组成Listener和ClientSession,当Listener开启监听后,当有socket发起连接后,会触发SocketConnect的事件。事件里面会带有一个ClientSession的对象用来区分每个客户端。这里采用模板,可以对每个客户端绑定一个指定类型的业务逻辑数据。目前这个T是消息包处理的NetSate对象。

2.2 消息包处理

消息包处理目前Core只提供了一个Byte读和写的基本类(PacketReader和 PacketWriter),后期根据不同项目的需求,可以采用不同的解析协议。DogSE默认用自定义的二进制流读写,后面将试着支持google的protobuf,以及一些其它的交换数据(json,xml)

2.3 任务队列

任务队列游戏运转的核心,任务分为网络任务(NetTask)和非网络任务(ActionTask,ParamActionTask),网络任务主要是客户端发起的请求,而买手游非网络任务可能是某些定时回调的任务,一些异步任务的回调。PacketHander主要负责网络消息id对具体业务逻辑绑定。

2.4 时间调度

时间调度会开启一个线程监测当前时间调度队列里的TimeSlice对象是否达到执行要求。达到触发要求,会向TaskManager里添加一个ActionTask对象,用来执行对应的游戏业务逻辑。

游戏服务器端引擎——DogSE的设计相关推荐

  1. 类Photon游戏服务器引擎Matchvs简介

    在介绍Matchvs前,先来了解下是什么游戏服务器引擎?虽然很多人可能都听过国外的Photon,但相对于引擎,大家对游戏服务器框架这个概念可能更为熟悉.框架其实就是针对后台通讯部分搭建一个可复用的设计 ...

  2. MMORPG 游戏服务器端设计

    之前有过一篇介绍游戏服务器端的博文 http://blog.csdn.net/liuxialong/archive/2011/06/12/6539762.aspx 但是篇幅太长,而且过于关注细节,适合 ...

  3. MMORPG游戏服务器端设计

    之前有过一篇介绍游戏服务器端的博文 http://blog.csdn.net/liuxialong/archive/2011/06/12/6539762.aspx 但是篇幅太长,而且过于关注细节,适合 ...

  4. 【游戏后端】游戏服务器端开发的一些建议(转载)

    摘要: 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结.第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一 ...

  5. 「游戏开发」游戏服务器端开发的一些经验

    本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结.第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一些基本原 ...

  6. 游戏服务器端开发的基本大纲

    摘要: 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结.第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一 ...

  7. 游戏服务器端的基本体系和开发建议

    游戏服务器开发的基本体系与服务器端开发的一些建议 转载  2017-07-21   投稿:mdxy-dxy    我要评论 刚开始时以为做游戏服务器和做web差不多,但是经过一段时间之后,才发现代码太 ...

  8. 游戏后端】游戏服务器端开发的一些建议

    <!--一个博主专栏付费入口结束--><link rel="stylesheet" href="https://csdnimg.cn/release/p ...

  9. 【游戏后端】游戏服务器端开发的一些建议

    摘要: 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结.第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一 ...

最新文章

  1. html中设置表格单实线,css实现表格实线的方法
  2. 写入位置 0x00000004 时发生访问冲突_HDFS读取和写入数据简介
  3. ddos中的tcp反射攻击技术分析
  4. 存储知识:数据一致性、分级存储、分层存储与信息生命周期管理
  5. 新编辑神器,可以在终端运行 Jupyter Notebook 了!
  6. hive查询像mysql在终端一样有规则的方法!!!
  7. UnitTest in .NET(Part 1)
  8. NGINX 配置超时时间
  9. 微软中文网,越办越好了!
  10. spring boot 使用 websocket tomcat刚启动就关闭到问题
  11. 公众号回复单个图文消息
  12. C++语言基础 例程 派生类的声明与构成
  13. 依赖注入框架Autofac的简单使用
  14. C#中跨工程跨项目注释的显示
  15. WPS 2019使用技巧及WPS2019政府版最全合集
  16. matlab工作区导入多个文件,MATLAB可以直接把Excel文件中的数据导入工作区中
  17. 大一计算机基础ppt练习题,计算机基础知识PPT练习题及答案DOC
  18. 【第149期】游戏策划:给@Dimitri的简历分析
  19. 驱动精灵的护眼大师屏保非常不错
  20. 【 优秀的无干扰文本写作工具】Ommwriter for Mac 1.57

热门文章

  1. 希尔伯特曲线 java_Java中空间填充Hilbert曲线的递推算法
  2. 初学者不建议月python吗_9.python入门
  3. 三、linux目录浏览管理及维护
  4. CF1000G Two-Paths
  5. 在 Unity 中基于 Oculus DK1 的开发
  6. MVC5中EF6 Code First启动慢及间隙变慢的一些优化处理
  7. MySql 数据操作类
  8. 两种方法设置disabled属性
  9. 二维数组求最大子矩阵的和
  10. 服务器cpu,内存正常, 部分网站打不开,提示死锁,应用程序池回收就正常,如何解决?...