Java网络游戏框架框架实现

Java网络游戏框架框架实现

ID:45238820

大小:1.39 MB

页数:39页

时间:2019-11-11

Java网络游戏框架框架实现_第1页
Java网络游戏框架框架实现_第2页
Java网络游戏框架框架实现_第3页
Java网络游戏框架框架实现_第4页
Java网络游戏框架框架实现_第5页
资源描述:

《Java网络游戏框架框架实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《Java高级程序设计》专业教程理论讲解部分Ver3.120061课程概述网络游戏服务器架构的目标及策略架构的设计剪子包袱捶服务器端的实现剪子包袱捶客户端的实现重点架构的设计难点架构的实现学习目标学习网络游戏架构掌握架构的设计及实现利用架构实现网络游戏200621设计目标及策略简易性:可扩展性:可测量性:高性能:核心类应该被设计的简易合理.一个服务器程序可以为多个种类游戏提供服务服务器同时需要处理非常多的网络连接,必须要可测量.服务器要实现最快的信息流通.一个较慢的事件处理不能影响其他的事件处理.

2、20063为了实现以上目的,我们首先要做到以下几点:◎将流通的消息压缩成GameEvents(游戏事件)◎将实现与逻辑分离开◎将服务过程分离成各种的线性任务◎将各种任务在线程池(threadpool)中备份以便实现并行操作◎从任务中分离出事件(event)序列◎提供一个可以在同一个服务器程序上实现多个游戏的逻辑框架1设计目标及策略200642设计服务器与客户端的通讯流程如下图:20065在上图中可以看到,流程序列开始与客户端向服务器端的连接并且服务器处于监听状态.然后,客户端生成并发送一个事件(E

3、vent)到服务器.服务器接收到事件,分析并处理这个事件.这个事件通常会引起服务器发送一个或者多个事件到一个或者更多的客户端,客户端接收到这个事件并且处理.然后继续以上的循环.就像你看到的,大多数的交互都是由客户端引发的,但是服务器也会产生一些不依赖客户端的事件.比如由时间触发的一些事件.一些设计决策应该考虑到共享服务器的问题.首要的问题就是事件(Event)的设计,因为事件(Event)是服务器程序最重要的数据结构.其次就是要精细的研究哪些类与接口是必须要实现的在讨论处理事件序列之前.2设计20

4、0663GameEvents分析客户端与服务器通讯都是通过事件实现的.决定事件的格式对于每一个独立的游戏来说是非常重要的而且要保证服务器架构的透明性,所以我们提供一个事件接口来实现各个阶段的交互.这样,我们就可以为每一个游戏制定各自不同的事件格式了.现在有很多种不同的数据传输格式.这个选择高度的依赖与每个游戏在我们的游戏框架内主机的实现.多数普通级别简单的ASCII文本(ASCIItext)消息经常被用在聊天程序中.然而一个有实时级别命令的程序就需要更为复杂的结构.这里我们讨论一组可行的方案,你应

5、该根据具体的游戏来设计一个更为适用的事件结构.20067选择各种事件结构的标准如下:结构的大小因为你要在网络上发送事件结构,所以结构的大小非常重要.一个宽带网络可以保证发送很大量的消息.一个三维的游戏通常要比一个二维游戏发送的数据量大.可读性保持事件的可读性有利于错误的查找,但是这会与第一个判断条件--结构的大小相冲突.一个折衷的办法就是使用短语(缩略语)以维持可读性.运行效率一个事件必须要从一个对象格式转换为可以在网络上发送的格式在网络上流通,然后还要转换回来.在这个过程中,要保持很高的效率并且

6、不能过于复杂.3GameEvents分析20068分析代码的大小出于对具体设备的考虑,客户端的程序代码不能过大(比如在移动设备上的客户端).所以不能设计过大的代码库来实现事件格式.可扩展性该格式应该可以实现多种的事件种类下面我们来看看几个可行的方案,根据以上的标准分析一下.最后你要选择那种类型的方案对于数据的聚合函数的制定带宽的要求以及事件的分析处理都非常的重要.3GameEvents分析20069可行的方案:java对象使用java内置的功能使java对象转换为比特流(bytestream).这

7、样做的好处:非常容易实现,结构的大小处理的速度表现都非常出色,只会带来非常小的附加代码因为功能是java内置的.它的缺点是几乎没有可读性.XMLXML在各种各样的网络通讯及数据存储方面越加的流行起来.对于我们要讨论的事件格式来说,它有非常高的可读性以及对于多种多样的事件类型的可扩展性.然而,它的缺点远远掩盖了它的优点.当它连续的使用时,数据量实在太大了,并且要处理大量的头部信息.它要增加很多的附加代码在客户端上.3GameEvents分析200610可行的方案:自定义二进制这种方式主要是将事件直接

8、写到一个字节序列(sequenceofbytes)上,用尽可能少的字节来表达各种数据类型.这种方式通常被用在对传输数据大小极为严格的场合.这种方式提供了最高效的传输数据利用率,并且非常容易输出到网络,分析的效率也非常的高效.不过它也同java对象一样,完全的失去了可读性.但是它是在对带宽要求非常苛刻的条件下唯一的选择.3GameEvents分析200611可行的方案:二进制编码的XML在带宽及存储资源允许的情况下,程序员们意识到利用冗长的XML是一件非常不错的事.但是在无线连接的情

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。