美文网首页
游戏简要设计

游戏简要设计

作者: 邝健强 | 来源:发表于2017-08-31 11:12 被阅读0次

(一)球球的线程模型

线程模型

1.Acceptor主要负责异步接受连接请求

2.连接成功后,创建一个TSession

3.根据特定规则,TSession绑定一个Processor

4.Processor主要负责TSession的读写

场景内线程模型

场景中使用的是单线程tick模式,后端每秒30帧速度进行tick。

(一)消息的接收

(1)在facade层中提供方法,并使用@HandlerAnno注解,实现中会根据消息类型调用此方法

(2)具体实现

消息读取流程

1.Processor使用selector,监听到客户端发包

2.Processor把输入读取到Buffer中,并检查是否有粘包情况

3.Processor调用Serilizer解包(根据buffer中的classId获取到对应Serilizer)

4.解包后(异步)调用Session中的ActionDispatch的handlePacket方法处理包,ActionDispatcher根据Packet中的classId获取注册的方法并调用

(二)消息发送

(1)使用方式

使用Tsession的sendPacket方法发送消息,方法立即返回,消息会异步发送

(2)具体实现

消息发包处理

1.业务层调用sendPacket方法,存放包到队列中,并唤醒关联Processor线程

2.Processor检查到SelectorKey有write标记,调用TSession的writeData方法

3.Tsession的writeData方法循环把队列中的包转成二进制存放到Buffer中

4.调用关联的SocketChannel发送Buffer数据

5.Buffer复位

(三)消息编解码

(1)设计

提供Serilizer接口,要求所有实现类复写readObject和wriiteObject方法,并注册到Serlizer的静态属性中,灵活可扩展特殊类型的编解码。

每个消息包由message.xml定义的classId ,length是包的长度,data是包的而数据

包结构

简单类型的解码就没有length数据,通过 readInt/readFloat等等直接读取

复杂类型如Map的编码:

1.读取map的长度

2.读取一个flag,判断key和value是唯一的,还是可以重复的

3.读取key的classId,获取对应的Serializer,value同样如此

4根据获取的key的Serializer和value的Serializer,循环解码key对象和value对象,并存放到map中

相关文章

  • 游戏简要设计

    (一)球球的线程模型 1.Acceptor主要负责异步接受连接请求 2.连接成功后,创建一个TSession 3....

  • 究竟什么是游戏化设计?

    上一篇(游戏化设计的初步认识)简要介绍了游戏化设计,但是感觉还是没有说清楚究竟什么才是游戏化设计?以及如何才算在产...

  • 26游戏活动课程背后的大道理

    “分类”单元,设计了十个阶段的游戏,颇为用心,也感觉比较有趣。简要分析一下,这些阶段里的游戏活动课程背后有什么大道...

  • 设计模式简要

    1、简单工厂模式:用于创建单个对象,根据不同的特点创建不同的类。 2、策略模式:用来封装算法,几个类有相同的算法。...

  • 长线品牌养成游戏分析

    以下是长线品牌养成游戏的桌面分析报告,包含简要概述、具体分析、建议、附录4个部分。 ①简要概述 1.品牌养成游戏市...

  • 游戏抽奖概率模型

    本文主要想罗列出游戏中常见的一些抽奖概率模型,并对其做简要的分析和讨论。 游戏的设计经常会有一些含有随机性质的抽奖...

  • Kafka源码分析-Consumer(11)-总结(2)

    传递保证语义 Consumer Group Rebalance设计: 消费者执行的简要过程:

  • 备战2020——iOS面试之笔试题

    作者:flowerflower 目录1、设计模式是什么? 你知道哪些设计模式,并简要叙述?2、MVC 和 MVVM...

  • 游戏设计师创造体验

    游戏设计师的终极目标是什么?是设计游戏么?不是,游戏设计师关心的最终问题并不是游戏本身。对于游戏设计师来说,游戏仅...

  • 起程,游戏设计师

    自信 想要成为一名游戏设计师很简单,设计游戏就好了。当你设计游戏的时候,你就是游戏设计师,当你不在设计的时候,你就...

网友评论

      本文标题:游戏简要设计

      本文链接:https://www.haomeiwen.com/subject/aveadxtx.html