【朗報】バグの原因、見つかる!!!【謎のCTD】
なんと!!ここ最近ずっと頭を悩ませていたバグの原因がようやく見つかりました...!!!
正直この原因が判明しなければBakinでのゲーム制作を諦めてたかもしれません。。
今までの作業が全て無駄になるかもしれないと思い、ここ数日気が気じゃなかったです。。
同ような問題で困っているBakinユーザーと自身の備忘録のために記事に残しておくことにします。
起きていたバグの内容
戦闘終了時フィールドマップに戻ると一定確率でCTDする、というものでした。これがグラフィックのせいなのか、スクリプトのせいなのか、その他のせいなのかがわかりませんでした。(アプリ的にエラー扱いではなく、ログを見てもいまいち原因を見つけられませんでした)
そのような状態だったので、探索マップはいったん諦めて戦闘だけの体験版を、というわけだったんです。
これが現時点でグラフィックに負荷をかけすぎたせいだったら、まだまだグラフィックを盛り込む予定だった今作のやりたいことの殆どが出来なくなるので、そうではないことを願っておりました。
CTDの原因は…!
一部のコマンドスクリプトにCTDの原因がありました。
こちらのシート1が原因のコマンドスクリプトで、これが呼び出されたら戦闘後に確定CTDが起きてました。(戦闘時のカメラとグラフィック演出のスクリプトです)
そして、こちらのシート2がCTD修正後のコマンドスクリプトです。
はい、まったく同じです。
つまり見た目はまったく同じなのに、シート1だとCTD確定で、シート2だと問題なく動きます。
おそらくシート1に見えないスクリプトのゴミ(キャッシュ)か何かがあって、それが原因でCTDを起こしておりました。(シート1をコピーしたスクリプトでもCTDします)
こんなんわかるかバカヤロオオオオオオオおおおおおおおおお!!!!
探索マップでのCTDだったので、戦闘中のスクリプトが原因だとは思いませんでした。。
戦闘シーンの作りこみをしている時に「あれひょっとしてこの辺りか?」という場所が見つかったので、1行ずつスクリプトを消しながら試してみて判明しました。。
気になる解決法は…!
なんでこんな状態になったのかわからないので、解決法らしい解決法はありません。おそらくどこかにバグスクリプトが生まれているので、その場所を見つけて1行ずつコピーして新しいシートに移す、で解決できると信じたいです...!
ただ「原因不明のCTD」ではなくなったので、心持ちは明るいです。よかった。。。
しかし原因じゃなかった探索マップのスクリプト1から作り直しとかしなくてホント助かった。。。
今後の体験版リリース予定について
一番頭を悩ませていた原因が分かったので、これ以上の大幅な遅延はなさそうです。ただ時間をだいぶとってしまったので、当初予定していた5月1日に間に合わすのは難しく、また新たなバグが生まれてしまう可能性もあり得るので、今とっているアンケートの結果でスケジュールを決めたいと思います。
→→体験場に関してのアンケートは4月30日まで行っております←←
ここ数日の記事の余裕のなさがやばいので、一度しっかり反省し今後はちゃんとバグフィックスも含めた余裕のあるスケジュール立てをしていこうと思います。