侧栏导航

从零开发后端游戏引擎之三 脚本热更新



2019 -07-03 @ dz

后端游戏引擎的功能之三 脚本热更新

对于网络游戏的开发, 游戏逻辑的变化带来的大部分的BUG, 而脚本又承载着大部分的业务逻辑.

看一段代码,如下

var player = context.player

var physicalAttack= function(){
  //physical attack
};
var magicAttack = function(){
  //magic attack
}

player.attack = physicalAttack;

player.changeAttackType = function(type){
    player.attack = type?magicAttack:physicalAttack
}

如上代码, 攻击形态的切换, 通过更换玩家的攻击函数的指针来实现

假设游戏上线后, 发现切换攻击,玩家的衣服,光环也需要跟着改变,

而游戏正在线上跑,有其他玩家可能正在打boss,这个时候 如果要重启服务器,来更新代码修改bug, 这就会给游戏带来的负面影响,这个时候热更新的价值就体现了

JavaScript的特性

player.attack = physicalAttack;
player.attack = magicAttack;
player.attack = xxxAttack;

JavaScript动态语言的特性, 决定了程序在运行时,依然可以动态增加或者删除修改数据的类型,值,方法, 这中特性给热更新带来的问题大大减少

下一章 <./从零开发后端游戏引擎 - AIO优化>

上一章 <./从零开发后端游戏引擎 - 脚本化>

项目地址` (https://gitee.com/geliang/PK)


最后更新于 4th Jul 2019
微信二维码
在微信上关注我