Heliodor 2019/06/15 22:09

エラー通知

プログラム話です。

ゲーム実行中にエラーが起きた時、どうやって通知するかという問題があります。

最初の頃は素直にエラーダイアログを出していましたが、あれって結構厄介な存在なんですよね。エラーが発生した瞬間に問答無用でゲーム進行が中断されてしまいますし、ダイアログを閉じてもまたすぐにエラーが……という場合もあります。特にフルスクリーンにしている時にダイアログを出してしまった場合、閉じるのが非常に厄介になる事があり(フルスクリーンの裏側にダイアログが出てしまい、見た目にはダイアログが出ている事がわからないが、キーボードなどの操作対象がダイアログになってしまっている時など。ほぼ、強○終了するしかない)悩みのタネでした。


一番悲しい、手も足も出ないパターン。
オンラインで解決策が見つかるもんならァァァ!!フォォォォ!!(ジタバタ)

……と、普通に考えればエラーをログにだけ書き込むようにしてダイアログを出さない、という結論になるのですが、エラーが発生した事に全く気づかないままゲームが進行してしまうのもそれはそれで問題でした。

製品版ではそれでも良いんですが(いや良くはないですが)、テストプレイ用とかだと問題発覚が遅れて変な事になるという、あまりよろしくない事態になってしまいます。

製品版にしろテスト版にしろ、エラーが起きたら、起きたことだけわかればよい、進行不能なほどの深刻なエラーでない限り、画面が崩れようがプレイヤーが真っ黒になろうが、できる限りゲームを継続させたい、というのが自分の望みでした。最悪なのはそこでゲームが強○中断あるいは終了してしまう事です。

そんなわけで、エラーが発生したら無言でログに書き込み、ゲーム終了時にダイアログで「エラーが出てたよ」と知らせる、という仕様になりかけたのですが、実際使ってみるとなかなか不便なんですよ。「いつ」「どんなタイミングで」エラーが発生したのかがログからだとちょっと分かりにくいんですよね。

なので結局、エラーが起きた場合はダイアログではなくゲーム画面の端っこに ERROR という文字と簡単なエラーコードを表示させるという、一周回って普通の結論に達しました。

なかなか便利で気に入っています

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索