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代替本地数据的处理