GameVersion.txt 3.7 KB

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