司格特 发表于 2018-3-9 11:53:51

lua 与游戏测试 (一)

##lua游戏产业历史 (也可以叫解释型语言)
lua 在国外被广泛成熟使用后,起源 1993 年巴西歪果仁喊出来哒,至今是开源免费。暴雪神作
WOW 在国内疯狂到持续到现在,其中大量运用了 lua(后面介绍)。lua 脚本语言慢慢让普通用
户也熟悉了,后面国人 mmorpg 大作例如《剑侠情缘3ol》也涵盖 lua 这门语言的身影,至今作品
涵盖用lua已经是不计其数。

游戏项目开发从网易开始,对 lua 这个轻量的脚本语言使用越来越广,本人也是受云风影响慢慢
从看他的博客,到自己学习写和了解结构,不过主要还是运用于读脚本和测试。

ps: 还有很多脚本语言可以用于游戏开发,优点是可以集中底层,并且编译和集成后十分小巧,
脚本语言一直是备选方案。但 lua 有1个优点,lua一直不是只基于API级别的,还在于项目中扩
展功能。

谈谈 WOW 里 lua 到底做了哪些东西

玩家看的到得

GUI 界面开发和编译 —— 你懂的,玩 WOW 的大部分人都用过插件吧
定义,存储和管理基础游戏数据(你也懂的,也导致了很多bug,这个后话)
游戏的人工智能( boss 技能施展条件= =,宏)
管理实时的游戏事件(点击c,打开人物界面,任务等,不过单机游戏= =特别多啊,这个也是
废话)
创建游戏存储和载入系统(这个是废话,一定有)
看不到的

性能环节,支持程序底层语言来实现。
很小的数据和命令封成chunk,可以随时调用。
lua 变量默认全局(局部问题,可以后期用静态走查工具检查 很方便的)
兼容 C 语言系统,系统要求很低(32mb RAM )
lua 可以处理图像问题
来谈谈客户端抛错

测试人员先需要检查这个,客户端抛错,级别定义是 B。重要问题,在每个阶段都属于阻断性
的问题。
在游戏测试时,还有些公司打成编译好的包给测试在手机上跑,同时不用 assert 这个函数就是坑。

游戏测试一定要有 pc bulid 版本,这里 assert 函数处理函数一样的编译 lua 的 chunk,立即执行。

assert (v [, message])

函数1相当于C的断言,不满足v的条件message就会打印出来,打断程序在内网如果点击继续可
以恢复的,在外网就不会卡住。assert (A,[, message]) 如果A正常,程序继续运行,A 异常就打
印 message。这个需要大家在开发的代码里自己看吧。

Cocos2d: ASSERT FAILED ON LUA EXECUTE:不过后台里如果出现这个,其实也
影响不大,要看具体情况
error (message [, level])

也是1个处理错误的。

Level=1[默认]:为调用error位置(文件+行号)
Level=2:指出哪个调用error的函数的函数
Level=0:不添加错误位置信息
一般情况下是 2 个结合在一起,这里可惜没有内网开发环境抛错的图,不过这个大家应该看的懂吧。
这里依次对应的行就是代表什么意思,测试读这个抛错信息知道是哪个代码块出现问题是最基础的。

页: [1]
查看完整版本: lua 与游戏测试 (一)