• 前言

从18年3月开始,进入新公司,参与一款slg海战类游戏的开发,全程负责slg海战类游戏大地图模块的开发,以及部分框架的完善和其他内容的开发。游戏已经正式上线一段时间了,工作空闲了一些,趁空闲的这段时间,我将记录此次项目的开发要点和难点。本文暂时只记录大体的框架。

  • 网络同步

大地大部分slg类型的游戏对实时性要求都不高,因此我们采用状态同步,即使是网络不好的情况下也可以通过转圈的方式,屏蔽玩家操作,等待服务器响应。

  • 整体框架

客户端整体采用的是mvc的架构。玩家成功登录后,服务器将玩家的关键性数据传输给客户端,客户端保存进model中(常驻内存),同时游戏中的配置数据也保存在model中(常驻内存)。在不涉及到和服务器交互的操作时,UI或其他操作可以查询model中的数据进行显示。当玩家进行数据请求或数据操作时,向服务器请求操作,同时转圈屏蔽玩家操作,等待服务器回包,回包更新model中对应的数据,通过事件传递的方式,通知给View进行页面刷新或响应。

  • 大地图框架

大地图要求,随屏幕滑动,无缝显示海面上的各个物体,屏幕旋转,平移,缩放的操作支持。服务器分区,一个服务器分为9个区,顺时针分布,每个区的大小为960*960,总计2880*2880大小。

我们将整个大地图分成90*90块,每块(block)大小32*32,即每个分区有30*30个分块(block)。客户端进入大地图向服务器请求自己城池坐标所在block的数据,此时服务器会此block的数据下发下来,同时将周围一圈的block数据下发下来,即周围8个block的数据,当玩家滑动屏幕到另一个block时,向服务器发送请求,此时服务器会下发旁边3个block的数据,客户端保存这三个数据并将最原来边上的三个block的数据舍弃,以保证内存。客户端地图每次都会保存有9个block的数据,这样能保证玩家屏幕滑动时,地图上的物体能无缝显示。

  • UI框架

UI上分层,从下到上分为全屏界面层,全屏界面公用层,弹出框层,详情Tips框层,提示层,引导层。每一层用栈来管理。

  • 总结​​​​​​​

我们这个slg游戏用的框架并不复杂,都是游戏里面常用到的框架,就不做详细的描述了,这里只是总结一下。

slg游戏客户端框架简析相关推荐

  1. DirectX游戏开发之代码的框架简析

    DirectX游戏开发之代码的框架简析 此次学习过程中,主要参考的是大神"毛星云"的博客和DirectX 官方SDK,不少代码是在前两者的基础上略做修改. 在这两个上面你能够学得更 ...

  2. MTK IMS框架简析(2)——IMS注册过程

    之前在<MTK IMS框架简析(1)--代码架构及模块初始化> 中已经分析了ims代码的构成和重点类的初始化,接下来以启用VOLTE子功能为例,具体分析AP侧IMS服务的注册过程. 概要 ...

  3. image加载图片 ui unity_【Unity游戏客户端框架搭建】四、资源管理之理论篇

    先抛出个问题: 我们在谈论资源管理的时候,是在讨论什么? 整理了一下内容,大概就以下几点: 目录规划 内存管理 包体大小控制 AB打包粒度 一.目录规划 在开始资源管理之前,先讲一下目录规划. 实际的 ...

  4. MySQL:网络连接框架简析

    一直对这部分不太了解,稍微看了一下,但由于知识储备有限,错误在所难免. 总的看起来MySQL在这部分依旧使用了常规的 reactor+线程池高并发网络模型,这里我们以poll为列,有如下特点: 主re ...

  5. Volley网络请求框架简析——Android网络请求框架(三)

    题记-- 人来到这个世界上,只有两件事情,生与死, 一件事完了,另一件事还急什么? 有缘而来,无缘而去, 识自本心,见自本性 不起妄缘,无心无为 自由自在,动静自如 冷暖自知,则是修行 1.初始化一个 ...

  6. 【产品设计】平面设计之框架简析

    平面设计需要遵循一定的思维模式,以中秋节宣传海报为例,从三个方面思考设计: 平面字体.基础场景.氛围素材 平面字体:中秋为中国传统节日,使用书法字体更能引起共鸣: 基础场景:中秋节自然场景为一轮圆月挂 ...

  7. 计算机硬件组成理论性知识,简析计算机硬件知识体系的结构框架.doc

    简析计算机硬件知识体系的结构框架 简析计算机硬件知识体系的结构框架 1 计算机硬件知识体系特点 1 .1 复杂系统的整体性.层次性和动态性复杂系统的整体性强调其组成因素之间相互作用.相互影响紧密关系. ...

  8. Qualcomm Android camera 架构简析及如何debug

    一. Camera模组(CCM)介绍: CCM一般包含四大件: 镜头(lens).传感器(sensor).软板(FPC).图像处理芯片(DSP):     Camera的成像原理可以简单概括如下: 1 ...

  9. Retrofit网络请求框架使用简析——Android网络请求框架(四)

    题记:-- 很累,累到想要放弃,但是放弃之后将会是一无所有,又不能放弃, 唯有坚持,唯有给自忆打气,才能更勇敢的走下去,因为无路可退,只能前行, 时光一去不复返,每一天都不可追回,所以要更珍惜每一存光 ...

最新文章

  1. 成都七中实验学校爆食品安全问题,互联网+后勤能做点什么吗?
  2. python中文处理
  3. python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组
  4. 前端学习(3251):dom的diff算法2
  5. linux+shell+func,Linux shell编程笔记总结
  6. Openssl crl2pkcs7命令
  7. main方法中调用spring注入bean
  8. j2me怎么运行java_Eclipse开发J2ME环境安装及配置
  9. 王道考研操作系统笔记(第五章)附:王道考研408所有PPT和思维导图
  10. cad连筋字体怎么安装_为什么我的CAD图纸会缺失字体?怎么解决?
  11. Office 2016更新后 Word 2016、Excel 2016、Power 2016、Visio 2016、OneNote 2016图标全部消失问题解决
  12. Android 蓝牙协议栈消息(bta_sys_sendmsg)发送机制 ---- 全网唯一解析
  13. python动态监控日志内容
  14. 穴位按摩---自我保健---1
  15. Flink实操 : 算子操作
  16. 【涂鸦物联网足迹】涂鸦云平台接口列表—智能门锁
  17. 教你使用华为Ensp模拟器配置OSPF路由协议(二)
  18. 利用cmd(命令提示符)安装mysql配置环境
  19. 【花雕体验】08 行空板硬件控制pinpong库的系列测试(之一)
  20. 中国电信将取消长途漫游费 大规模布局物联网

热门文章

  1. tools:完全教程 Aircrack-ng
  2. zoom html css3,csszoom css zoom标签移动端可以用吗
  3. 鸿蒙系统的家电,美的九阳搭载鸿蒙系统的家电正式上市,这手机系统上市真的稳了...
  4. MySQL如何判断日期(datetime)是否是同一天
  5. 浅析供应链金融的Five模式
  6. 亚马逊开店有什么优势?红利期过了吗?
  7. 寻找指定长度以内的最短连续子段和
  8. ArcGIS如何利用矢量shp挂接图片
  9. AndroidSDK的目录详解
  10. Centos7重新配置网络后出现Restarting network (via systemctl): Job for network.service failed because the contr