一个H5游戏的开发

一个H5游戏的开发

  • 游戏中用到的静态数据
  • 游戏资源版本管理

今天开始利用空闲时间,把自己在开发一个游戏完整的流程一点点总结一下,让自己在后面的开发中思路更清晰明确,同时希望对能看到文章的人有点帮助.这篇文章先说一下游戏开发框架搭建时需要关注的内容

游戏中用到的静态数据

对于前端来说静态数据可分为2类(代码中的,配置表的).游戏开发一开始就需要确定下来配置表的开发流程.

  • 确定策划采用什么进行配置数据.一般使用 excel txt 大部分都采用excel吧.
  • 转换成程序可以使用的数据格式.一般是把excel 导出为 txt格式进行读取,也可以开发个工具专门用来转换excel的数据,可以转换成json格式.在游戏中变成object使用.或者工具可以直接生成对应的配置表的model.使用起来更加便利
  • 配置表中会有好多前端不需要的数据,有的只是服务器需要,有的是策划记录用.所以开发一个自己的转换工具很有必要,可以针对前端或服务器过滤掉不需要的数据.也能很大程度缩减配置文件的大小.更好的工具还应该具备校验数据主键外键功能.方便检测数据哪里出了问题.

游戏资源版本管理

一个有效的解决方式是在一个资源后面加上一些附加参数,比如资源的版本号,像这样:http://localhost/res.jpg?v=100
其中的100指的就是资源的版本号。
打个比方之前的版本号是88,现在为100,因为请求的URL变化了,所以浏览器会认为这不是同一个资源,因此就去服务器上请求。
这样的话就需要给每个资源生成一个版本号了,这个版本号的生成我自己知道的有两种:
一、生成文件的MD5值。
二、使用文件的SVN版本号,或者是相应的版本控制工具的版本号。
上面这样做一般就满足了游戏的版本控制,但是这样实现是无法实现版本选择和回退.

  • 如果上线的游戏要求使用之前的某一个版本,或是不同的游戏服想使用不同客户端版本,例如测试服往往使用的各种资源是最新的,而上线的正式服使用的会是一个旧版本的.
    要想达到这样的效果可以在建立一个新的资源服务器,但是这样相对代价有点大.资源管理相对复杂一些.
  • 解决办法是,我们可以根据每次比较出的资源不同的采用版本号重命名方式.这样 http://localhost/res_100.jpg 资源服务器上就会有 res_6.jpg res_8.jpg res_99.jpg 这样不同的文件.然后不同的版本有一个统一的资源版本文件. 可以理解为.要使用哪个版本就采用哪个版本文件.只需在首页动态传入对应的版本号,就可以实现任意切换. 当然这样会增大资源服务器的容量.各有利弊吧

你可能感兴趣的:(一个H5游戏的开发)