123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- AR直升机小游戏版本说明:
- 1,开发一套多平台运行的AR打飞机游戏,能运行在PC,手机端,VR和AR硬件设备端等
- 2,支持资源热更,支持动态加载以及服务器配置
- 3,直升机背包,武器系统,属性升级等
- 4,学习多平台架构能力
- 1,资源管理系统:包含资源加载,资源热更,资源打包,资源调配系统,资源下载 没有3-5年的功力写不出来,深入理解
- 2,XML数据库系统,底层的创建生成节点,解包和封装对象系统 需要反射,xml解析,等等
- 3,对象生命周期管理器, 非3-5年功力写不出来
- 4,飞行系统,武器系统,AI系统
- 5,多平台架构与SVN分支版本管理与发布
- 本地化数据库如何管理?如何保证本地数据安全的修改?
- 本地数据库采用xml数据库:
- 默认数据库文件存放在Steamming Path下,分为可读写和只读文件
- 校验顺序:
- 1,先获取Player对应的MD5值(对数据进行加密),然后和本地可读写的文件进行比较:
- 如果Player或者本地数据文件不存在,则执行数据初始化代码:读取Steam中的文件,然后依次拷贝数据,同时把版本记录文件
- 拷贝,记录记录文件的MD5赋值给Player。此时完成数据的初始化。
- 如果本地文件与Player值不同,代表数据已被非法篡改。执行初始化代码,并告知系统
- 2,确定版本记录文件没有问题后,开始校验具体的配置文件:如果MD5值不一致,代表此文件已被篡改,如果被篡改,则记录
- 此文件,并将其回退至初始值,并告知系统
- 3,确定数据没有问题后,开始校对版本号:读取本地可读写版本记录信息,读取Steam中的文件进行校对,如果版本一致,
- 则无需变动,如果版本不一致,分别读取可读写版本和数据版本,将两者数据结合并重新输出到可读写版本,并记录MD5到版本
- 4,如何安全的更新数据:编辑数据后,保存,同时更新版本记录工具的MD5值,然后将版本记录工具的MD5记录并保存到Player中
- 5,服务器的同步更新如何进行?服务器的更新统一管理。
- 哪些数据会放到服务器进行更新?
- 资源管理系统:
- 资源管理方式的设计:
- 1,标签规则:按照文件夹进行标签,文件所属的上层文件夹进行设置
- 2,资源存放规则:按照功能划分,资源关联度归类(例如某模型预制体,与此关联的放在一起),
- 公用资源放在一起(如shader,)等等。这样做的目的,减少标签数量,减少下载和管理量
- 优点:减少数据的下载数量,高内聚,低耦合,同时无需再硬性标定文件命名问题,可以尽量做到优化
- 3,如何访问具体的数据?如果说直接打包的话?程序通过具体的后缀进行访问
- 4,资源打包管理器:对资源进行自动标签,依赖打包,并生成对应的资源版本号
- 如何扩展多个资源包?公共包和每个资源数据包的概念?
- 如果有新增的车型或者武器包如何控制?
- 扩展包如何更新?
- 原理是什么?车库如何扩展?扩展在同一级别的目录?这样有何不妥?只能按照文件夹来下载和管理,不能灵活的
- 组合下载。
- 如何灵活的组合下载?
- 每一个标签都有对应的资源,资源对应下载地址,这没有错,
- 本地数据库文件如何设计?
- 对象打包/封包的设计。使用反射+Json解析,进行拆包和封包操作
- xml处理器:底层需要处理的逻辑是什么?
- 创建节点,查找节点,删除节点,修改节点
- 节点获取后,得到的信息是怎样的?
- 为了方便和节省空间,不再使用xml,使用json代替本地数据的处理
|