发行GameMaker游戏:像专业版第1部分一样自动执行错误报告

您的开发故事不会在发布时结束。 您必须支持游戏,并发布补丁和更新以更正玩家发现的错误。

在发现错误时,让每个玩家都提交详细的错误报告是一项挑战。 如果幸运的话,敬业的玩家会努力为您复制/粘贴错误消息,并挖掘出您的游戏日志文件并将其发送。 这是最佳的过程自动化。

幸运的是,有一个出色的服务来收集错误报告:sentry.io,这是一个错误跟踪器,可以帮助您收集,过滤和分类错误。 Reddit,Dropbox,Uber,Airbnb等公司都使用它。

我编写了一个简单(免费)的GameMaker Studio 2扩展程序,以将sendry.io自动错误报告的功能交给您:GMSentry。 借助YellowAfterlife的GameMaker扩展程序catch_error,可以自动捕获GMS2游戏中的错误,并将错误自动提交给您的sendry.io帐户以供仔细阅读。

以下是在GMS2游戏Forager的开发和Beta测试期间使用的GMSentry和catch_error的示例。

在此博客文章中,我将向您展示如何设置sentry.io帐户并开始收集自动错误报告。

在第2部分中,我记录了GMSentry的工作方式。

第1步:注册一个免费的sendry.io帐户

转到sentry.io,然后单击“入门”,然后按照注册说明创建帐户。

在注册过程中,当系统要求您选择一种语言或框架时,请继续忽略该部分。

最后,当系统要求您配置应用程序时,您可以继续忽略该错误以及可能的“找不到页面”错误,只需单击“所有完成!”。

还值得注意的是sentry.io实际上是一个开源项目,这意味着您可以在内部运行其整个服务的副本,并根据需要修改或贡献代码。

步骤2:取得专案的DSN

注册后,转到设置>项目 ; 然后单击您创建的新项目以进入项目设置。 然后转到客户端密钥(DSN) 。 DSN是游戏将报告发送到正确的sentry.io帐户所需的密钥。

复制第一个简短的DSN。

步骤3:取得GMSentry扩充功能

从YYG市场获得我的GMSentry扩展并将其安装到您的项目中

步骤4:初始化GMSentry

在代码中的某些时候,在使用任何其他gmsentry函数之前,请使用sentry_init("")函数(包括第2步中的DSN作为唯一参数sentry_init("")来初始化GMSentry。 这将自动在您的房间中生成一个持久的sendry_handler对象。

步骤5:安装YAL的catch_error

YellowAfterlife的catch_error扩展名对于发布游戏的所有GMS2专业人士都是无价之宝。 它利用GMS2的错误系统,并允许您在GML中将错误作为字符串提取出来,并将其传递到GMSentry上,然后发送到sentry.io。 一起使用这三个系统可以使通常会导致游戏退出的错误由游戏本身来处理。

遵循有关在https://yellowafterlife.itch.io/gamemaker-catch-error上安装catch_error扩展的说明。

步骤6:编写错误捕获代码

要将catch_error与GMSentry结合使用,就像在step事件或等效事件中使catch_error队列中的错误出队,并触发接受GM错误字符串的setry_capture_exception一样简单。

您的游戏现在具有自动错误报告功能! 每当您的游戏遇到可以用catch_error捕获的错误时,GMSentry都会将其发送到sentry.io(只要玩家当然具有互联网连接)。

有关高级用法和自定义,请参阅第2部分