博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《攻城Online》开发前期:UML设计架构
阅读量:4919 次
发布时间:2019-06-11

本文共 1397 字,大约阅读时间需要 4 分钟。

  《攻城Online》,以下简称“攻城”,是基于Unity3D引擎开发的一款MMORPG端游。

  “攻城”开发采用C/S架构,其中服务端使用了Photon引擎来简化开发流程。Photon引擎底层是C++,采用多线程并发处理客户端连接,且游戏逻辑采用C#语言编写。目前来说,团队对服务端开发仍是一张白纸,因而认定直接用现成服务端框架是唯一的出路。而相比较SmartFoxServer、KBEngine来说,因为其实现语言的原因,以致Photon成为不二的选择。

  废话少说,先贴上初步的UML类图框架。

  由于开发过程中,类内成员的访问级别随时都可能发生变动,方法参数同样如此,因而一律忽略对访问级别以及参数的表示。

  首先是服务端主框架,ApplicationBase和PeerBase是Photon提供的两个类。ServerApplication继承自ApplicationBase,用来进行服务端游戏逻辑应用程序的工作,ServerPeer继承自PeerBase,代表连接到Photon的客户端,每当有一个新的客户端连接到服务端时,就会自动实例化一个peer,这个类就用于与客户端进行通信。其中,类中的OnOperationRequest是个回调方法,用于处理客户端发送的请求。

  UserBase类包含用户的基本信息,而UserCollection类通过字典来收集每个peer的用户信息。

  DataBase包,用于数据库操作和管理的,这个肯定要。

  此外,还有ServerLogic包,内含一些处理游戏逻辑的文件,用于分割peer中OnOperationRequest所要进行的工作。

  Protocol包下是服务端和客户端之间的协议文件。

  由于Photon引擎有很方便的日志管理功能,因而还需要一个Log包,用来进行各种日志记录。

  接下来是客户端框架,PhotonSingleton是个全局单例类,用于进行每帧保持与服务端的连接等工作。

  PhotonService是客户端的主体部分,发送请求和接收响应和事件都在这里完成。

  同样,ClientLogic包用来细化PhotonService的各项逻辑工作。

  最后是Protocol包,里面含有各类操作枚举,EventArgs事件包,Common数据包,以及一个Serialization类用于进行二进制数据传输的转换。另有一个EventCollection类,这个类将各种事件集中起来,在PhotonService中会引用到。

  以上就是基本的组成框架,剩余的都是些细化的部分。

  说下这个框架的基本使用思路:

  服务端启动->客户端启动->

  客户端连接服务端生成peer->服务端保存用户信息缓存->

  客户端逻辑生成请求->二进制序列化请求数据->客户端发送请求->

  服务端接收请求->二进制请求数据反序列化->服务端逻辑处理请求->

  服务端逻辑生成响应->二进制序列化响应数据->服务端进行单播/组播/广播->

  客户端接收响应/触发事件->二进制响应/事件数据反序列化->客户端逻辑处理

  这就是整个消息收发的处理过程,其中省略了数据库、日志、更新游戏画面等操作。

 

转载于:https://www.cnblogs.com/SiegeOL/p/4513475.html

你可能感兴趣的文章
Mysql打开日志信息
查看>>
[Xcode 实际操作]六、媒体与动画-(14)使用SystemSoundId播放简短声音
查看>>
Letter Combinations of a Phone Number
查看>>
django
查看>>
通过分区(Partition)提升MySQL性能
查看>>
JAVA.exe进程
查看>>
mysql安装及常见问题
查看>>
Thinkphp .htaccess 与 httpd.ini文件重定向转换问题
查看>>
gulp-less解决遇到错误停止执行task
查看>>
一些很少用又很常见的功能的实现方法链接
查看>>
20145235《信息安全系统设计基础》第十二周学习总结
查看>>
响应式布局 大中小屏幕
查看>>
iOS开发UI篇—transframe属性(形变)
查看>>
java中的单例模式
查看>>
Elasticsearch Server,2nd Edition pdf 翻译 中文
查看>>
Django-缓存
查看>>
java.util.Map.Entry接口
查看>>
Linux中crond服务与crontab用法
查看>>
PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释...
查看>>
开发使用Node.js的一个小技巧
查看>>