定制游戏开发流程

修改定制游戏主要分为两个部分,游戏逻辑平台公共代码

游戏逻辑

根据游戏复杂度,可以分三种方式修改:

1、根据id判断添加代码

一般是修改逻辑比较少的情况会使用。

优点:不易出错,不影响平台功能。

缺点:污染平台代码

找到对应游戏的逻辑代码,添加if判断,定制修改逻辑。

2、在配置文件添加参数,基于参数修改

在定制需求比较通用,可复用的情况下使用。

优点:开发可复用的代码,定制的过程中同时扩展游戏功能

缺点:麻烦,容易混乱

  1. 先创建好对应游戏,在平台中配置好页面样式,然后获取到对应game_id的配置json。
  2. 基于该json文件添加额外的参数(不能和平台冲突)。
  3. 在代码中根据配置文件中新参数来更改游戏逻辑。
  4. 在本地调试好后,上传新json配置文件,@vincent修改数据库,替换正式环境游戏的配置文件。

3、新建模板

在定制需求很复杂的情况

优点:彻底不用担心污染平台游戏逻辑代码

缺点:代码难以复用

  1. 参考24haowan_game_tpl库的其它游戏,创建文件夹
  2. 文件夹命名为name_id格式,其中的name是本项目的名字,无特别要求。id是本项目的唯一id,不可重复,在平台现有模板id基础上递增。
  3. 访问http://test.24haowan.com/webCustom/addCustomGame/tpl_id/id ,最后的id是自定义的模板id,
  4. 链接会跳转到一个游戏链接,那就是该模板生成的游戏。
  5. 敬请期待新版工作台

修改平台公共代码

目前没有很彻底的方式来解决开发公共平台的代码。 目前的解决办法是引入额外的js,在额外的js里用jquery对平台的代码进行二次修改和渲染,来完成定制游戏的需求。

修改平台代码的入口是custom.js。在custom.js文件尾部添加id判断,对指定用户执行定制代码。

如果代码量比较小,可以直接写在custom.js里。但是代码量大的话,需要写在额外的js里,异步引用。

额外定制js存放路径:24haowan_front_game/24haowan/js/t/custom

额外定制css存放路径:24haowan_front_game/24haowan/css/t/custom

引入额外js方法,在custom.js中用loadScript方法引入

// 如引入多个js无依赖关系,可以写多个loadScript方法。
loadScript('extra1.js');

// 如引入多个js有依赖关系,需用该方法
loadScriptArr(['extra1.js', 'extra2.js'])

引用css:

loadStyle('extra1.css')

只修改custom.js无法满足需求的时候

很多时候,平台页面不是一开始就渲染好的,很多时候是异步渲染的,所以custom.js里修改的样式也可能会被平台代码二次修改。这时只能在平台动作完成后再在custom.js里修改。

凭着尽量不污染平台现有代码的原则,正确做法是,在平台代码里特定的地方抛出一个事件:

// 平台
$(document).trigger('eventName', data);

并在custom.js里接收事件,再做处理

// custom.js
$(document).on('eventName', callback);

其它

  • 因为架构问题,平台代码和定制代码不能写ES6、7语法。
  • 游戏各个部分对应的源代码路径脑图
  • 平台中埋了很多快捷方法,不一定都需要修改dom来实现。比如:
    • views.start.showRank() //打开排行榜
    • modals.getPrize.show = true // 打开中奖弹窗

results matching ""

    No results matching ""