エラー通知
プログラム話です。
ゲーム実行中にエラーが起きた時、どうやって通知するかという問題があります。
最初の頃は素直にエラーダイアログを出していましたが、あれって結構厄介な存在なんですよね。エラーが発生した瞬間に問答無用でゲーム進行が中断されてしまいますし、ダイアログを閉じてもまたすぐにエラーが……という場合もあります。特にフルスクリーンにしている時にダイアログを出してしまった場合、閉じるのが非常に厄介になる事があり(フルスクリーンの裏側にダイアログが出てしまい、見た目にはダイアログが出ている事がわからないが、キーボードなどの操作対象がダイアログになってしまっている時など。ほぼ、強○終了するしかない)悩みのタネでした。
一番悲しい、手も足も出ないパターン。
オンラインで解決策が見つかるもんならァァァ!!フォォォォ!!(ジタバタ)
……と、普通に考えればエラーをログにだけ書き込むようにしてダイアログを出さない、という結論になるのですが、エラーが発生した事に全く気づかないままゲームが進行してしまうのもそれはそれで問題でした。
製品版ではそれでも良いんですが(いや良くはないですが)、テストプレイ用とかだと問題発覚が遅れて変な事になるという、あまりよろしくない事態になってしまいます。
製品版にしろテスト版にしろ、エラーが起きたら、起きたことだけわかればよい、進行不能なほどの深刻なエラーでない限り、画面が崩れようがプレイヤーが真っ黒になろうが、できる限りゲームを継続させたい、というのが自分の望みでした。最悪なのはそこでゲームが強○中断あるいは終了してしまう事です。
そんなわけで、エラーが発生したら無言でログに書き込み、ゲーム終了時にダイアログで「エラーが出てたよ」と知らせる、という仕様になりかけたのですが、実際使ってみるとなかなか不便なんですよ。「いつ」「どんなタイミングで」エラーが発生したのかがログからだとちょっと分かりにくいんですよね。
なので結局、エラーが起きた場合はダイアログではなくゲーム画面の端っこに ERROR という文字と簡単なエラーコードを表示させるという、一周回って普通の結論に達しました。
なかなか便利で気に入っています