投稿記事

続・偶発トラブル対処

前回記事↓の続報です。

困った (2023/7/11)

問題が起きて困った困った、と言ったままほったらかしなのも不誠実なので、その後の経過をご報告したいと思います。

問題箇所は掴めたっぽい

あの後、どうにか切り分けしたいなと思い、無い知恵を絞りながらあれこれと考えた結果、「描画だけが固まる」 っていう現象が、よくあったらしいMVとは違ってMZでは他であまり聞かれないという現実にまず目を向けることにしました。

他にはない、つまり自分のプロジェクトにだけ入れているであろうもの…といえばまあプラグインですわね。
かつ、MVからMZで大きく変わった一つの点として処理落ちと描画の関係性があって、

  • MV:処理落ちが起きると飛んだフレーム分、描画もスキップする
  • MZ:処理落ちが起きると処理が遅れた分スローになって描画も同期される

例えばこの部分が先祖返りみたいなことを起こしていたら、MVでみられた一部の不具合も起こり得るよなと考えました。

該当部分のコアスクリプトはここですね。

rmmz_core.js

Graphics._onTick = function(deltaTime) {
    this._fpsCounter.startTick();
    if (this._tickHandler) {
        this._tickHandler(deltaTime);
    }
    if (this._canRender()) {
        this._app.render();
    }
    this._fpsCounter.endTick();
};

でこのGraphics._onTickをオーバーライドしてるのが、本作で「FPS調整」のオプション機能を司っているプラグインです。
機能としてはオプション値に従って描画を60FPS・30FPS・15FPSと可変にし、下げたレートでは描画のみを1/2、1/4にそれぞれスキップするというものですね。
これによって、ブルームやチルトシフトなどの画面エフェクト処理で描画エンジンに負荷がかかっていてもその頻度を落とすことでゲーム自体の処理遅れを防ぐことを期待できます。

で、その処理内容を改めて読み返しても、ロジックとしてはどうも間違っているようには思えなかったんですよね。ただ、コードをちゃかちゃか弄っていたところ、不具合報告にあったような現象に近いものを再現することはできたんです。
なので、半信半疑ながらここはひとつ思い切って、当該処理のオーバーライドを一切封じて機能を無効化したテストパッチを公開してみようと思い立ちました。
当たりなら当たり、外れならまた別の箇所を探すつもりで。

テストパッチのお知らせ【一部現象向け】|Akari blast! (2023/7/13)

実験のようなものだと明言して、ダメ元でお祈りしたところ。
プレイヤー様のご報告により当たり判明
大きな前進となりました。

じゃあどうする

って話です。一部現象向け任意パッチみたいなものだとしても未来永劫配り続けるわけにもいかない。ちゃんと正式なアップデートに組み込んで保守性も維持しないといけない。なにより現状ただ機能を潰しただけなので処理が重めの環境には厳しいソフトになってしまう。
ということで今度は該当箇所の改修に取り掛かります。

まず僕は前提としてそもそもノンプログラマーなので他人の書いたコードは基本的に雰囲気読みしかできません。なので改めてGraphics._onTickの仕組みをChatGPTに解説してもらうことにします。

  • Graphics._onTick関数が何をしているのか
  • プラグインでオーバーライドされたコードが何をしているのか
  • その上で偶発的・環境依存で不具合が起こり得るのか、またその原因はなにか

という感じで、まずはロジックへの理解を深めたり不具合の原因を探ったり。まさに勉強…。
これによると、環境依存の部分はハードウェアの問題やWebGLの問題というのはあり得るという回答ではありました。逆にモニター・ディスプレイのリフレッシュレートやティアリングとの関連性は考えにくいとも。


そこから紆余曲折を経て、現在改修したテストコードが手元にあるという状況です。元のプラグインが持つ機能を維持しつつ、描画更新が停止している場合はそれを検出して強○描画が入るフェイルセーフやそもそものフレームカウント方法のロジックを変えてみたりなど盛り込まれており、これがうまくいけば正式アップデートへの適用も期待できます。
ただ元のプラグインから大きく書き換えてしまっているというのもあり、これはもう改修プラグインというより他の関数まで含めて新規プラグインとして組み上げてしまったほうが良いような気もしている…

ともかく準備が整い次第、また祈りの新テストパッチへ参る次第です。
頼むぞ…

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

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

困った

割合としてはおそらく稀ではあると思われるものの、
「ゲーム画面の描画更新が停止する(操作への反応があり、バックグラウンドでゲームのプログラムは動いている)」
という問題が起きている模様。

今のところ調べによるとプログラム側のWebGL・OpenGL・PIXIによる描画と、システム側のグラフィック処理の相性?のようなもので、環境次第で起こっているらしい…ということが多少掴めているくらい。

自分の開発環境でもテストプレイヤーさん方の環境でも一度も現象の発生や報告がなかったので再現をとることもできず、よしんばライブラリ内に特定してもそれをFIXすることもできるわけでもなく。最終的なアプローチは、もし悪さしているプラグインが特定できたならそれを強○OFFにする任意パッチか、適合するシステム設定を見つけて共有するか…しか無いのでは考えている。

デバッグコンソールを開いているとテストプレイの動作が重くなるのは知っていたので、試しにわざと開けたままにしておきながらゲームの設定をいちばん負荷のかかるセッティングにして、フォーカスをあっちやこっちにやっていたら、「もしかしたらこれに近いのかも…?」という現象は出た。


ゲーム画面にフォーカスしていても描画が動いてない。しばらく置いておいたりメニューを呼ぶと戻ってくる。で、描画が止まっている間はタスクマネージャーのGPU使用率が無くなると。

なるほど、これはもしかしたら何かのヒントに?と思いつつ、じゃあ設定変更したらどうだと システム>グラフィックの設定 からハードウェアアクセラレータをオンにして、グラフィックスのパフォーマンスの基本設定 からnwjsのオプションを高パフォーマンスに指定。


こういうときグラボ複数積みのPCは便利だなくらいに考えていたんですが、
普通にテストプレイのパフォーマンスが爆上がりしてしまった。

これまではブルーム&チルトシフトをONにしていると描画レート30fpsに落とさないとゲームスピードが普通にならなかったのに、エフェクト全開60fps設定でもあまりレート落ちしないレベルに。しかも上記の描画停止を試そうとデバッグコンソールを出してみても全然落ちないっていう。
今欲しかったのはそっちじゃないと。なんなら止まってくれてもいいとすら思ってたよ。
うーん。


そんな感じで、ネット上にも情報が少なくなかなか手が進まなくて困っておりますな状況です。
このへんに総合的に詳しい識者の方、また情報提供していただける方いらっしゃいましたら何卒お助けいただけたらたいへんありがたいです……

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

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

『煌星のヴィクトリアーズ』発売しました

2年半作ってたゲームがようやく出ましたぁ…

(※成人向けご注意!)
https://twitter.com/kensei1203/status/1676612945139343361?s=46&t=8dI5CGba7upizQ72vB6cQw
ここまで見守ってくださった皆様ありがとうございました!
いろいろ話したいことはありますが、販売開始を待つ時間だけでやたらに疲れてしまったのでまた改めて…
取り急ぎご報告と御礼まで!

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

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

システム紹介まとめ

おこんにちはです。
今週いよいよ新作リリースだというのに主たる活動場所の青い鳥がイヤンな感じ(死語)で困ったものですね。

このところあっちもこっちもでボチボチ記事書くノリを掴んできたのでこのままいい感じで更新が続けられれば私の活動をCi-enでも追ってもらえそうな気がするのでこの調子で頑張りたい所存です。

7/6(木)『煌星のヴィクトリアーズ』リリースに先駆けて、制作サークルの方のCi-en上では今作のシステム面からのアプローチで機能紹介などを連載的な形式でやっております。現在第3弾まで出ておりまして、一応あと1回予定してます。
R-18作品を扱っているので未成年さんはごめんなさいなんですけど、年齢制限にかかわらず制作面からの情報として何かしら役に立つものもあるかもしれないので、こちらからリンクでご紹介しようと思った次第です。

※リンク先成人向け要注意!

いざ冒険へ!~システムの話1~
(ゲームフロー)
https://ci-en.dlsite.com/creator/7025/article/899720

さくさく移動&セーブ ~システムの話2~
(セーブとファストトラベル)
https://ci-en.dlsite.com/creator/7025/article/901085

至福の時間の過ごし方 ~システムの話3~
(メッセージ表示周りとゴニョゴニョ周辺システム)
https://ci-en.dlsite.com/creator/7025/article/904589

いい感じに参考にしていただければ幸いです。
そいではまたー。

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

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

アツマール終わる

新作開発にかまけていたらこちらに手が回らず、気づけば明日もう今日だよゲームアツマール終了という事態に。
ギリギリまでフォローアップできず申し訳ありません。


アクションRPG大好きおじさんはまだアクションRPGをつくっています

各作、かんたんな振り返りと今後の見通しなどお話していきたいなと。


英雄一家の冒険(初代)
記念すべき初作。RPGツクールMVを買ってひととおりの使い方を学んでから、よしやってみるかで2週間足らずでカチ上げました。なんとかファミリー的な作りを目指してあれこれやってました。フェル様システムは本当に偉大です。
のちにセルフリメイクしたので、初代はこのままお蔵にします。


双剣の乙女(実験版)
ARPGに味を占めてコンボとか高低差とかランダムダンジョンとかいろいろ手を出してみた実験作。妙に重いとか敵が硬いとか今いろいろ思う所はありますが、やりたいことが見えてくるきっかけになりました。
習作につき、仕舞う方向です。


汚物消毒隊
驚くほど見てもらえなかった一作。まあ全然わからないですよね。ARPGシステムを利用したガンシュー的なゲームでした。これを書いてて当時メタ○ラにハマっていたことを思い出しました。バズーカや火炎放射器などのバカ火力っぷりとか実は意外と自分では気に入っている方です。見せ方的に、もっとバカゲーに寄せたほうが良かったかも。
一応まとまって作られてるのでアーカイブしたいとは思っています。ただ需要がね…


森の怪異編
やっていただいた方はわかると思うんですけど、マーキナリエの種の種みたいな位置付けです。ここからいろいろ広げていった覚えがあります。性転換システムは何を考えてそうしたのかはよく覚えてません。
習作につき、仕舞う方向です。


半キャラずらし体当たり式アクションサンプル
唯一サンプルプロジェクトとして発表したものです。さすがにツールも中身も古いのでここでお役御免にしようと思います。ただ明確に人の役に立ったことがわかっているので、その点ありがたいなと思っております。


英雄一家の冒険 ~聖なる杖と空の国~
リメイクというのもあり地味な位置づけですが手堅くパッケージングを意識して作りました。謎要素とか分岐とかストーリー面にゾクッとするものを入れこめたので結構満足してます。
今後もぜひプレイしてもらいたいのでアーカイブを考えています。


双剣の乙女(跳躍編)
ただ横ジャンやりたかっただけのやつ。そこそこちゃんと動いてたのでベースシステムはとっておいて後にちょっと活かしました。
習作につき、仕舞う方向です。いつかはこの2人のストーリーもちゃんとやりたいですね…


最速勇者と最短すぎる最終決戦
瞬間最大風速のネタゲーだけどちゃんと遊べてコンパクトなやつ、を目指して素早く仕上げました。UltraMode7の機能を使いたかったというのもありました。
ウケたしアーカイブしてもいいかなとも思うんですがランキングゲーなのでどうしようかと考え中。


マーシャ・エリンの悪魔女ォ伝説
マーシャ・エリンでゲーム作ろう的な企画に思い付きで乗って勢いで仕上げた横ジャン。ホウキに乗って飛ぶという絵をどう活かすかと考えたときに、やっぱ横ジャンでしょという短絡的な理由です。タイトルのアレ以外にも、アレの翼とかアレボーイとか古いアクションゲーマーがハァ?って思う要素が全体的に散りばめられています。
けっこうちゃんと作ったのでアーカイブしたいんですがいろいろ大丈夫なのか確認事項をクリアしてから…


天翔のマーキナリエ
言わずもがなな代表作として私をカチ上げてくれた一生モノのタイトルになりました。なぜフリゲとわかっていながらフルボイスやBGM全曲書き下ろしなどの無茶をしたのか今となってはもうよくわかりませんが、やらなきゃよかったと思ったことはひとつもありません。このゲームの発表に至り、あまりにも多くの人にプレイしてもらったこと、それがアツマールの一番大きな思い出です。
ストアに並んでいるゲームになったので、さすがに新たにアーカイブ・フリー公開というのは難しいですね…チャレンジランキングは惜しいですが。
ぜひ今後もストア版でローカルにインストールしてお手元に置いていただけましたら。

そんな感じで、原則習作はそのままお蔵、まとまったゲームはアーカイブ公開という方向でおおむね考えております。
アーカイブを実際どの方法でいくかは考える時間が足りなくてまだ未定です。
ブラウザだとPLiCyに移行してる人が多いようですね。あとはDL可能としてBOOTHで0円(+投げ銭?)とかもちょっと考えてます。
素材の規約とかも確認しなきゃなんで、その辺も含めてもう少し調べます。
良いお知らせができるようにしてまいりますので、そのときはまたよろしくお願いいたします!

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

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

« 1 2 3 4

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索