早速ですが大きめな修正を行いましたので、ver.0.80で起動できなかった方は改めてダウンロードください。あと遭遇率が多少ありそうなフリーズするバグについても修正しています。
◆バグ・不具合修正
・Cドライブ直下のユーザー名が日本語のPCだとゲームが起動しない不具合を修正
起動できない方々がいらっしゃったと聞いて対応しました。すぐに気づけなくてすいません。
さて、動く人と動かなかった人がいたのは主にお使いのPCのユーザー名が原因です。
IMPERIALIZER.exeのバックグラウンドでの実行箇所が日本語だと起動しなかったようです。
バックグラウンドでの実行箇所とはC:¥ユーザー名¥tempなど、 つまり『ユーザー名』の部分が日本語だと起動と同時にエラーが起こっていました。
以前にも似た状況がありまして、当時の記事がこちらになります。
https://watari-toriyuki.hatenablog.com/entry/2018/09/20/012259
これはインペリアライザーのプログラムの不備というよりは、開発言語(Ruby)の根幹のエラーなので修正は非常に困難でした。
実際に前回はほぼ為す術なく、Rubyのバージョンを上げ下げしてたまたま上手くいったもので対応という極めて不格好な方法で対処しました。
しかし今回はRubyの根幹部分の表記を弄って対応できました。作者も少しレベルが上がっていたようです。
ちなみに前回直した不備が再び復活した原因としては、最近ログ読み込み機能のためにrequireした'net/http'が原因です。
これを辿っていくと(__FILE__)を読み込むところがあり、そこでアルファベット、日本語混在部分に正規表現をかけようとしてエンコードのエラーが起こっている箇所がありました。
この(__FILE__)を(__FILE__).force_encoding("ASCII-8BIT")と改変することで動作するようになりました。終わってみればほんの一行の修正ですね。そこに辿り着くにはだいぶ骨が折れましたが…
・敵がプレイヤーキャラの迎撃に反撃して死亡させた場合、移動後にフリーズする不具合を修正
けっこう複雑なので例を挙げていきます。
クライネールの迎撃が発動
→ 敵が反撃を行う
→ その反撃でクライネールが死亡
この後で『迎撃された敵』の『当初のターゲット』がクライネールだった場合、敵が移動後に操作不能になります。
敵と味方が逆転するとこの現象は起きないため、思考ルーチンのバグです。
迎撃への反撃は大体2射程になりがちなので、それなりにレアケースではあります。しかし敵味方の配置によっては充分起こり得るケースでもありますね。
同じ状況が起こった場合は敵は移動後に待機するように修正しました。
◆新機能・新要素
・なし
◆調整・変更
・なし
今回は以上になります。起動しない件をご報告いただいた方、ありがとうございました。
今まで起動できなかった方がこれで遊べるようになっていましたら幸いです。まだ動かん!という方はご連絡ください。