传奇攻击倍数叠加脚本 《刀塔传奇》主程:我们踩过的那些坑

11/27 23:21:09 来源网站:268辅助卡盟网

传奇攻击倍数叠加脚本刀塔传奇》主程:我们踩过的那些坑

10月28日,在Cocos开发者大会(秋季)上,《刀塔传奇》的主程张振新做了客户端技术经验分享。他们选择的是Cocos2d-x结合小巧高效的Lua,它提高了开发效率,对手游面临的复杂版本更新问题也颇有助力。

《刀塔传奇》是张振新与团队从端游转入手游开发的第一款产品,在他的演讲中,还提到一些众多初创手游团队可能都会遇到的“坑”。

比如:“刀塔传奇是在win环境下面开发,早期经常碰到一个问题就是开发环境下面功能都ok,可到版本一发布,在手机上面就各种不对,也不知道是哪里错误。”他们使用错误信息框的方式来解决这种调试问题。

又比如一个数据,他们每次用全量包更新,当日DAU就会大概减少10%。优化方案是,制作低清版本来解决包大小的问题,或者在游戏内集成下载器,在启动游戏的过程中,完成全量包的下载和安装。

更多张振新的分享,见以下整理内容。

大家好,我叫张振新传奇攻击倍数叠加脚本,来自莉莉丝科技,我从2009年开始负责PC端游的开发,2013年非常荣幸的进入莉莉丝科技,参与了《刀塔传奇》的开发,这是我开发的第一款手游,非常的高兴。下面给大家分享一下《刀塔传奇》客户端技术经验。

首先介绍一下《刀塔传奇》的一个客户端的整个结构,我们在Cocos2d-x下面分装了一个数据模块,一个是数据模块,还有一个网络模块,最大的一块就是业务逻辑模块,里面分UI系统、战斗系统和事件系统,大家玩的游戏都是通过这些模块搭建起来。

传奇多倍攻击叠加脚本_传奇攻击倍数叠加脚本_传奇合击攻击倍数

传奇攻击倍数叠加脚本_传奇合击攻击倍数_传奇多倍攻击叠加脚本

我们这个模块除了Cocos2dx是在C++层面实现的,《刀塔传奇》很大程度上都是通过Lua实现的。

开发效率

Lua是一个小巧的成本语言,它的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它有以下几个特点。

一个是轻量级,官方版本只提供了一个精简的核心和最剧本的库,因此Lua体积小,启动速度快,因此非常适合嵌入在别的程序里。

二是可扩展性,Lua并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能。

三是非常容易上手,而且简单灵活,这一点对用户有帮助,因为它学习比较方便,操作灵活。

传奇攻击倍数叠加脚本_传奇多倍攻击叠加脚本_传奇合击攻击倍数

Lua是一门解释性语言,没有编译和链接生产二进制代码的过程,它是由lua虚拟机直接解释执行的。开发中,修改完代码后,直接运行程序即可看见效果。因此可以节省大量的开发时间,项目越大,效果越明显。

刀塔传奇支持游戏过程中动态加载lua代码,省去重新打开程序的时间。我们在脚本层封装了一个reload函数,用于在游戏运行时重新加载lua代码,实现原理也非常简单:先将先前required过的module从删除,然后重新require该所有module,相当于重新初始化脚本代码。这样我们又省去了关闭和重新打开程序的时间。刀塔传奇的UI场景是使用cocos2dx的场景scene,并在脚本层维护了一个scene的stack,reload的时候将原先的scene先pop,然后使用reload后的代码和资源重新创建新的scene,还原原先的场景,省去了重复操作的时间。

版本更新

除了开发效率,Lua给我们《刀塔传奇》带来的好处就是版本更新。版本更新是手游上市之后的非常重要的环节,直接影响到手游产品的质量。手游版本的更新比PC更加的恶劣,因为iOS的AppStore有一段忽长忽短的审核期,而Andriod更糟糕,渠道众多,版本分发流程复杂。刀塔传奇在立项的阶段就考虑到版本更新的问题,程序的整个框架也给版本更新带来一些便利性。

1) 线上热更

loadstring:功能非常简单,效果非常明显。先前做PC游戏的时候,每次发现线上紧急问题,采取的办法都是紧急停服,然后出更新包,测试,发布,周期长,体验差。曾经无数次线上紧急问题都是通过这个方式修复

    暂无相关资讯
传奇攻击倍数叠加脚本 《刀塔传奇》主程:我们踩过的那些坑