Gamebryo 引擎的Assert,log和debug

我们在游戏中需要一个健壮的引擎,那怎样才能保证引擎的健壮性呢?主要有两个方面:一个是尽可能的减少bug,二是在bug发生后能尽早的发现并解决。GB引擎和大多数引擎一样,有自己的一套保护机制。包括断言,日志模块和debug模块。

 

一 断言

断言的使用,能够让开发人员在最短的时间内看到问题所在,一般情况下断言只在debug模式下有用。在release模式下,我们可以把错误信息记录在log中。这时候我们就需要重新定义assert,最简单的是定义一个宏。在GB中,assert相关的宏都定义在asserts.h中。EE_DISABLE_ASSERTS宏用来控制是否启用断言,EE_ENABLE_RELEASE_ASSERT用来控制是否在release模式下启用断言,一般情况下是不主张在release模式下启用断言的。在GB中提供三种断言方式:EE_ASSERT_xxx, EE_VERIFY_xxx and EE_FAIL_xxx. 第一种在debug模式下用,第二种在release模式下使用,最后一种是在检测失败条件下用。

 

二 日志

日志系统在一个游戏引擎中是必不可少的一部分,我们构建一个日志模块最重要的目的是了解整个引擎的运行情况。首先我们必须清楚哪些东西应该记录在日志中,总体来说日志记录的信息可以按高,中,低三个级别来分。高级别的信息包括引擎的错误信息,例如我们通过try catch获得的崩溃信息,通常都是一些致命性的错误,例如数组越界,内存访问失败,内存泄漏等。中级的指一些非致命性的错误,例如数据加载失败,网络连接失败,文件打开失败等。低级别的就包括一些运行提示信息。当然我们也可以根据需要把等级分的更细一些,GB中就把log的级别分成了8个级别。根据不同的级别我们可以进行不同的处理,一般情况下是把不同种类的log信息放在不同的文件中,导致引擎崩溃的log信息最好是能够通过网络发送到某个数据库中,这样对于我们查找游戏的错误是很有利的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值