たまに「こんな機能が欲しいな」って思ったときに機能を追加するのですが、今回も機能をひとつ追加しました。
アイテムごとにメモを入れられるようにしたので何か追記したい情報がある場合に使ってください。このメモはサーバーに保存されるものなのでアカウントでのログインが必須となります。
今回の記事は前の投稿の後日談になるので前回の記事を読んでいない場合は読むことをお勧めします。
ゲームフレームワーク「MonoGame」で作ったゲームを Blazor で動かせるライブラリ「nkast.Xna.Framework.Blazor」が 3.8.9100 から 3.8.9101 にバージョンアップされました!
数字を見るとマイナーバージョンアップのように見えますが、内容的にはかなり大きな改善が入っています。改修内容を見てみると私が報告した不具合と、なんと私が書いたブログの内容がいくつか反映されているようでした。
バージョンアップ内容についてはコミュニティの以下の投稿に書いてあります。(一部私宛の返信の内容になっています)
バージョンアップ内容を簡単にまとめると以下のようになります。
まず SoundEffect.Volume の不具合が直ったのでわざわざ音量を調整した音声ファイルを用意する必要はなくなりました。さすがにそれは面倒なのでやっていませんが。こちらはコミュニティに報告した内容が反映されています。
DXT3 圧縮もサポートされたので、SpriteFont などのコンテンツを作成する際にわざわざ別なフォーマットを選択する必要がなくなりました。こちらはなぜかブログに書いていた内容が反映されています。
そして一番影響が大きいのが SpriteBatch のパフォーマンスが上がったことです。プログラムを変更することなくライブラリを更新するだけで 2D のゲームのパフォーマンスが大幅に上がります。どのぐらいパフォーマンスが上がったかは動画を上げましたので前回の動画と比較して見てみてください。
以下は前回、バージョン 3.8.9100 で作成したゲームを動かしてみたときの動画です。動画の内容は前回と同じものです。
ニコニコ動画
Youtube
そして今回、バージョン 3.8.9101 に更新してゲームを動かしてみた動画が以下になります。
ニコニコ動画
Youtube
見てもらえれば一目瞭然ですが、ちょっとどころではなく数倍ぐらいパフォーマンスが上がっているように見えると思います。パフォーマンスが上がっていると行ってもさすがにネイティブに比べれば劣りますが、多少低スペック向けにゲームを調整すれば Blazor 版でも十分に実用に耐えられるゲームが動かせると思います。
今回 Blazor 版で実装するにあたりライブラリの中の `SoundEffect.Volume` で不具合を見つけたのでコミュニティの Blazor のスレッドで報告しました。Blazor 版のライブラリはお試し版であることもあり、せっかくゲームを動作させてみたので Blazor で動かしてみたらこうなったよ、という動画も一緒に作って投稿しました。動画にはブログのリンクも付けてあります。
その後コミュニティで nkast さんから返信を頂いたのですが、回答を頂いた内容を見るとコミュニティに投稿した内容や動画の内容だけではなく、私がブログに書いた内容についても回答を頂いていました。本人に確認したわけではないので本当かどうかは分かりませんが、おそらく日本語で書いたブログをわざわざ読んでいただいたんだと思います。
先述の通り、nkast さんに前回の記事を読んでいただいたらしく、いくつかの調査内容は正しくないものがあるようでした。以下相違点について記載します。書いてる内容はコミュニティで回答いただいたものと同じです。
前回 Effect コンテンツはサポートされていないと書きましたがシェーダモデル 2.0 までなら対応されているようです。確かに私がゲームで使用していたのはシェーダモデル 4.0 なので対象外ですね。
ちなみにシェーダモデル 2.0 にしたら動きました。
こちらについてはコンテンツを実行ファイルに埋め込むか、静的ファイルとして `/wwwroot/Content/` に配置するかの2択であることは前回説明した通りです。
`/wwwroot/Content/` に配置した際にうまく読み込めない件については Web サーバーで .xnb ファイルの MIME タイプを 'application/octet-stream' にするとうまくいくという回答を頂きました。ただ、こちらは試していないので実際に使う方は正しく動くか確認してみてください。
どうやら Blazor 版では `SpriteFont.Characters` の代わりに `SpriteFont.Glyphs` を使うようです。現在 MonoGame の正式版では `SpriteFont.Characters` が使われてるので今後 `SpriteFont.Glyphs` に置き換わる可能性はあるかもしれません。
前のバージョンでは Blazor+WebGL で高負荷のゲームを動かすのはなかなか難しいという印象を受けましたが、今回のバージョンアップで2Dスプライトの描画性能が飛躍的に上がったので、Web 上でゲームを動かすのもかなり現実味を帯びてきたと思います。パフォーマンス的には Silverlight + XNA に近いレベルになったのではないかと思います。これなら体験版としてゲームを作って Web で公開するという方法も行けそうな気がしました。
PHP の方は WebPI で簡単にバージョンアップできたので問題ないのですが、MySQL の方は WebPI に 5.5 までしかなく、さらに直接バージョンアップできないようなので以下のサイトを参考に実施してみました。
[MySQL]5.1から5.7へバージョンアップ(Windows編) (tksoft.work)
しかし、いくつかの箇所で書いている通りに動かなかったり文字化けしている箇所があったので、そのあたりを補足しておきます。
ちなみに参照先の記事ではコマンドプロンプトを使用していますが、私の環境ではすべて PowerShell で実行しています。
図のようにかかれているのですが、上記をそのまま実施してもエラーになります。正しい手順としては
数十行にわたってアップデートされれば成功です。抜粋すると結果はこんな感じ
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv OK
mysql.db OK
:
:
status : OK
Upgrade process completed successfully.
Checking if update is needed.
ここのコマンドもおそらく文字化けして間違っています。
正しい手順は
正常に実行されたなら「Service successfully installed.」と表示されるはずです。
次の Network Service のパスワードについてですが、登録するタイミングでは空にする必要があります。ここのパスワード蘭は空で登録しても再度開くと空登録でも●●●●が表示される仕組みになっています。
変更しなくても 5.7 で動作することは確認しましたが、一応 5.1 から 5.7 に直した方がいいかも。コマンドで「mysql --version」と入力しても 5.1 のままなので。
直近で Microsoft 関連のバージョンアップがいろいろ行われているようなので、最新バージョンへのバージョンアップや動作チェックなどを行っているところです。
まず最初の対応として、サイト「ソーサリーフォース」は ASP.NET Core で動かしているのでさっそく .NET 6 にバージョンアップさせてリリースしてみました。
とはいってもなにかシステマティックなアプリケーションを動かしているわけでもないので基本的には問題なく動作しているかと思います。
Windows も 11 にしたので後でゲームやツール系の動作チェックもしていきたいと思います。
今回バグの修正としてリリースしましたが、前回のリリースから2年経っているので動作環境においてもいくつか変更点があります。
修正したバグの内容は以下の通りです。
また、動作環境の変更においては以下ようになっています。
ダウンロードは以下のページから行ってください。
]]>2か月ぶりですがバージョンアップしました。主に海外環境での改善になるので、現在プレイしている方で動作に問題ない方はすぐにバージョンアップする必要はないかと思います。
それと Android のβ版を2か月ほど前に公開しましたが、Google Pixel 3a で動作に問題ないことを確認しましたので近いうちに公開したいと思います。
スマフォなので値段を下げるかどうか考えましたが、高スペックスマフォだと Android でも全然動作に問題ないことがわかりましたので他と同じ 980円付近にしようかと思います。もしかしたら高スペックなら PC モードでも動作するかもしれません。
]]>今回はゲームバランスの調整といくつか改善を行いました。
いくつかの公開サイトにはアップデートをかけていますが、反映されるまで時間がかかる場合がありますのでお待ちください。
なお、Android 版については現在もβ版のみの公開となっております。こちらは Ver 1.06 の内容のままです。
]]>今回そんなに更新内容はないのですが、割と致命的な不具合が1つ修正されているので可能であればアップデートをお願いします。
更新内容は以下の通りです。
一応アップデートの大きな目玉は Android 対応ですが、現時点では Google Play において体験版をβ版としてリリースしているところです。詳しくは前の投稿に記載しているのでそちらをご覧ください。
]]>※ダウンロードサイトによっては更新が反映されるまで少し時間がかかりますのでお待ちください。 いくつか追加機能や変更を行ったバージョンとしてリリース予定していたのですが、Ver 1.04 以前のすべてのバージョンにおいて重大な不具合があったため、その修正も含めてリリースいたしました。 その不具合は「各ステージで1度でも敗退、または途中離脱を行うとステージクリア後のイベントが発生しない不具合」というもので、このイベントには「重要なイベント」や「エンディング」もすべて含まれています。そのため、この現象が発生するとよくわからないまま次のステージに進んでしまうという問題が発生してしまいます。(イベントが見れないだけでゲームの進行には問題ありません) もしすでにクリアしたステージにおいて見れなかったイベントを見たい方は、オプション画面の「イベントを毎回見る」をONにしていただければ再度ステージをクリアしたときにイベントを見ることが可能です。
その他のバージョンアップ内容は以下の通りです。