艦これ改修工廠検索ツール Ver 0.40 を公開しました

たまに「こんな機能が欲しいな」って思ったときに機能を追加するのですが、今回も機能をひとつ追加しました。

アイテムごとにメモを入れられるようにしたので何か追記したい情報がある場合に使ってください。このメモはサーバーに保存されるものなのでアカウントでのログインが必須となります。

image

MonoGame で制作したゲーム「リトルセイバー」を Web (Blazor + WebGL) で動かしてみた話 その2

image

前回の投稿

今回の記事は前の投稿の後日談になるので前回の記事を読んでいない場合は読むことをお勧めします。

nkast.Xna.Framework.Blazor がバージョンアップされました!

ゲームフレームワーク「MonoGame」で作ったゲームを Blazor で動かせるライブラリ「nkast.Xna.Framework.Blazor」が 3.8.9100 から 3.8.9101 にバージョンアップされました!

数字を見るとマイナーバージョンアップのように見えますが、内容的にはかなり大きな改善が入っています。改修内容を見てみると私が報告した不具合と、なんと私が書いたブログの内容がいくつか反映されているようでした。

主なバージョンアップ内容

バージョンアップ内容についてはコミュニティの以下の投稿に書いてあります。(一部私宛の返信の内容になっています)

バージョンアップ内容を簡単にまとめると以下のようになります。

  • SpriteBatch のパフォーマンスが大幅に向上 (←これがすごい)
  • SoundEffect.Volume の設定が反映されない不具合修正
  • DXT3 圧縮がサポート

まず SoundEffect.Volume の不具合が直ったのでわざわざ音量を調整した音声ファイルを用意する必要はなくなりました。さすがにそれは面倒なのでやっていませんが。こちらはコミュニティに報告した内容が反映されています。

DXT3 圧縮もサポートされたので、SpriteFont などのコンテンツを作成する際にわざわざ別なフォーマットを選択する必要がなくなりました。こちらはなぜかブログに書いていた内容が反映されています。

そして一番影響が大きいのが SpriteBatch のパフォーマンスが上がったことです。プログラムを変更することなくライブラリを更新するだけで 2D のゲームのパフォーマンスが大幅に上がります。どのぐらいパフォーマンスが上がったかは動画を上げましたので前回の動画と比較して見てみてください。

プレイ動画

以下は前回、バージョン 3.8.9100 で作成したゲームを動かしてみたときの動画です。動画の内容は前回と同じものです。

ニコニコ動画

Youtube

そして今回、バージョン 3.8.9101 に更新してゲームを動かしてみた動画が以下になります。

ニコニコ動画

Youtube

見てもらえれば一目瞭然ですが、ちょっとどころではなく数倍ぐらいパフォーマンスが上がっているように見えると思います。パフォーマンスが上がっていると行ってもさすがにネイティブに比べれば劣りますが、多少低スペック向けにゲームを調整すれば Blazor 版でも十分に実用に耐えられるゲームが動かせると思います。

バージョンアップの経緯

今回 Blazor 版で実装するにあたりライブラリの中の `SoundEffect.Volume` で不具合を見つけたのでコミュニティの Blazor のスレッドで報告しました。Blazor 版のライブラリはお試し版であることもあり、せっかくゲームを動作させてみたので Blazor で動かしてみたらこうなったよ、という動画も一緒に作って投稿しました。動画にはブログのリンクも付けてあります。

その後コミュニティで nkast さんから返信を頂いたのですが、回答を頂いた内容を見るとコミュニティに投稿した内容や動画の内容だけではなく、私がブログに書いた内容についても回答を頂いていました。本人に確認したわけではないので本当かどうかは分かりませんが、おそらく日本語で書いたブログをわざわざ読んでいただいたんだと思います。

前回の調査内容に対しての相違点

先述の通り、nkast さんに前回の記事を読んでいただいたらしく、いくつかの調査内容は正しくないものがあるようでした。以下相違点について記載します。書いてる内容はコミュニティで回答いただいたものと同じです。

Effect (.fx) コンテンツはシェーダモデル 2.0 まで対応可能

前回 Effect コンテンツはサポートされていないと書きましたがシェーダモデル 2.0 までなら対応されているようです。確かに私がゲームで使用していたのはシェーダモデル 4.0 なので対象外ですね。

ちなみにシェーダモデル 2.0 にしたら動きました。

Load 用コンテンツ (.xnb) の配置場所

こちらについてはコンテンツを実行ファイルに埋め込むか、静的ファイルとして `/wwwroot/Content/` に配置するかの2択であることは前回説明した通りです。

`/wwwroot/Content/` に配置した際にうまく読み込めない件については Web サーバーで .xnb ファイルの MIME タイプを 'application/octet-stream' にするとうまくいくという回答を頂きました。ただ、こちらは試していないので実際に使う方は正しく動くか確認してみてください。

SpriteFont.Characters は使えない

どうやら Blazor 版では `SpriteFont.Characters` の代わりに `SpriteFont.Glyphs` を使うようです。現在 MonoGame の正式版では `SpriteFont.Characters` が使われてるので今後 `SpriteFont.Glyphs` に置き換わる可能性はあるかもしれません。

まとめ

前のバージョンでは Blazor+WebGL で高負荷のゲームを動かすのはなかなか難しいという印象を受けましたが、今回のバージョンアップで2Dスプライトの描画性能が飛躍的に上がったので、Web 上でゲームを動かすのもかなり現実味を帯びてきたと思います。パフォーマンス的には Silverlight + XNA に近いレベルになったのではないかと思います。これなら体験版としてゲームを作って Web で公開するという方法も行けそうな気がしました。

IIS 上の WordPress で使用している MySQL のバージョンを 5.1 から 5.7 に上げる際に躓いたこと

PHP の方は WebPI で簡単にバージョンアップできたので問題ないのですが、MySQL の方は WebPI に 5.5 までしかなく、さらに直接バージョンアップできないようなので以下のサイトを参考に実施してみました。

[MySQL]5.1から5.7へバージョンアップ(Windows編) (tksoft.work)

しかし、いくつかの箇所で書いている通りに動かなかったり文字化けしている箇所があったので、そのあたりを補足しておきます。

ちなみに参照先の記事ではコマンドプロンプトを使用していますが、私の環境ではすべて PowerShell で実行しています。

初回起動とデータファイルのアップグレード

image

図のようにかかれているのですが、上記をそのまま実施してもエラーになります。正しい手順としては

  1. コマンドプロンプトを起動して「cd "C:/Program Files/MySQL/MySQL Server 5.7/"」と入力する
  2. 「.\bin\mysqld --skip-grant-tables」と入力する。
  3. 最初のウィンドウは「実行中のまま」になるので閉じずに放置。
  4. 新しくコマンドプロンプトを起動して「cd "C:/Program Files/MySQL/MySQL Server 5.7/"」と入力する
  5. 「./bin/mysql_upgrade -u root 」と入力する。

数十行にわたってアップデートされれば成功です。抜粋すると結果はこんな感じ

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.

サービスの無効と登録

ここのコマンドもおそらく文字化けして間違っています。

image

正しい手順は

  1. コマンドプロンプトを「管理者権限」で起動。
  2. 「cd "C:/Program Files/MySQL/MySQL Server 5.7/"」を入力。
  3. 「.\bin\mysqld --install MySQL5.7 --defaults-file="C:/Program Files/MySQL/MySQL Server 5.7/my.ini"」を入力。

正常に実行されたなら「Service successfully installed.」と表示されるはずです。

次の Network Service のパスワードについてですが、登録するタイミングでは空にする必要があります。ここのパスワード蘭は空で登録しても再度開くと空登録でも●●●●が表示される仕組みになっています。

環境変数

変更しなくても 5.7 で動作することは確認しましたが、一応 5.1 から 5.7 に直した方がいいかも。コマンドで「mysql --version」と入力しても 5.1 のままなので。

WordPress 側のセキュリティ対策、バージョンアップを実施しました

WordPress を初期インストールしてから WordPress しかバージョンアップを実施していなかったので、内部の PHP や MySQL のバージョンアップ、HTTP ヘッダーの見直しなどを実施してみました。

基本的にはブログのような扱いしかしていないので閲覧には問題ないと思いますが、何かエラーになるような現象があればコメントください。

※一部のページで前からレイアウトが崩れていますが、まあ記事を見る分には問題ないので放置中…

サイト「ソーサリーフォース」を .NET 6 に対応させました

直近で Microsoft 関連のバージョンアップがいろいろ行われているようなので、最新バージョンへのバージョンアップや動作チェックなどを行っているところです。

まず最初の対応として、サイト「ソーサリーフォース」は ASP.NET Core で動かしているのでさっそく .NET 6 にバージョンアップさせてリリースしてみました。

とはいってもなにかシステマティックなアプリケーションを動かしているわけでもないので基本的には問題なく動作しているかと思います。

Windows も 11 にしたので後でゲームやツール系の動作チェックもしていきたいと思います。

ちーたんタッチボード Ver 1.02 を公開しました

今回バグの修正としてリリースしましたが、前回のリリースから2年経っているので動作環境においてもいくつか変更点があります。

修正したバグの内容は以下の通りです。

  • キーのテキストのフォント名に Windows にインストールされていないフォント名を指定すると起動時にエラーが表示される不具合を修正
  • タスクバーが上、または左に配置している状態でボードを隅に配置させた際、タスクバーの幅分表示位置がずれる問題を修正

また、動作環境の変更においては以下ようになっています。

  • Windows XP, Windows Vista は動作対象外としました。動く可能性はありますがサポート対象外です。
  • .NET Framework のバージョンを 4 から 4.6.1 に変更しました。Windows 10 であればアップデートしていれば入っていると思います。Windows 7, 8, 8.1 は Windows Update から更新可能です。

ダウンロードは以下のページから行ってください。

]]>

ゲーム「リトルセイバー」Ver 1.08 を公開しました

2か月ぶりですがバージョンアップしました。主に海外環境での改善になるので、現在プレイしている方で動作に問題ない方はすぐにバージョンアップする必要はないかと思います。

機能改善
  • 日本語、英語以外の言語を選択したときにテキストが枠をはみ出ないように改善。
仕様変更
  • 【バランス調整】特殊技の消費SFを若干減らした。
不具合修正
  • ユニットが強化されると特殊技の消費SFが減る問題(本来増える)
  • フランス語環境など日本語や英語と数値の書式が異なる環境で実行したときに戦闘開始時に異常終了する問題

それと Android のβ版を2か月ほど前に公開しましたが、Google Pixel 3a で動作に問題ないことを確認しましたので近いうちに公開したいと思います。

スマフォなので値段を下げるかどうか考えましたが、高スペックスマフォだと Android でも全然動作に問題ないことがわかりましたので他と同じ 980円付近にしようかと思います。もしかしたら高スペックなら PC モードでも動作するかもしれません。

]]>

ゲーム「リトルセイバー」Ver 1.07 を公開しました

今回はゲームバランスの調整といくつか改善を行いました。

追加機能
  • オプションに「非アクティブのとき入力を受けない」を追加しました。ON にするとゲームウィンドウがアクティブでなくなった時に入力を受け付けなくなります。
  • プレイヤー入力設定に「キャラ向き固定ボタン、ターゲット固定ボタンをトグル形式」にできる設定を追加しました。
機能改善
  • プレイヤーが1人の場合、戦闘中での接続されているすべてのゲームパッドで操作できるようにしました。
仕様変更
  • 【バランス調整】ステージ1~4の難易度を若干下げました。
  • 【バランス調整】武器「クロス」の能力を全体的に下げました。
  • 【バランス調整】武器「カノン」の能力を若干上げました。
  • 【バランス調整】武器「ボム」の能力を若干上げました。
  • 【バランス調整】武器「マルチプル」の能力を若干上げました。

いくつかの公開サイトにはアップデートをかけていますが、反映されるまで時間がかかる場合がありますのでお待ちください。

なお、Android 版については現在もβ版のみの公開となっております。こちらは Ver 1.06 の内容のままです。

]]>

ゲーム「リトルセイバー」Ver 1.06 を公開しました

今回そんなに更新内容はないのですが、割と致命的な不具合が1つ修正されているので可能であればアップデートをお願いします。

更新内容は以下の通りです。

追加機能
  • Android 版に対応しました。体験版のβ版をリリース後、体験版と正式版をリリースします。(現在 Google Play でのみリリースです)
  • 操作説明画面をタイトル画面と一時停止画面に追加しました。
機能改善
  • プレイヤー入力の設定に関係なく、メニュー画面では接続されているすべてのゲームパッドで操作できるようにしました。
不具合修正
  • ステージの途中でマップに戻るとアイテムが消失する不具合

一応アップデートの大きな目玉は Android 対応ですが、現時点では Google Play において体験版をβ版としてリリースしているところです。詳しくは前の投稿に記載しているのでそちらをご覧ください。

]]>

ゲーム「リトルセイバー」Ver 1.05 を公開しました

※ダウンロードサイトによっては更新が反映されるまで少し時間がかかりますのでお待ちください。 いくつか追加機能や変更を行ったバージョンとしてリリース予定していたのですが、Ver 1.04 以前のすべてのバージョンにおいて重大な不具合があったため、その修正も含めてリリースいたしました。 その不具合は「各ステージで1度でも敗退、または途中離脱を行うとステージクリア後のイベントが発生しない不具合」というもので、このイベントには「重要なイベント」や「エンディング」もすべて含まれています。そのため、この現象が発生するとよくわからないまま次のステージに進んでしまうという問題が発生してしまいます。(イベントが見れないだけでゲームの進行には問題ありません) もしすでにクリアしたステージにおいて見れなかったイベントを見たい方は、オプション画面の「イベントを毎回見る」をONにしていただければ再度ステージをクリアしたときにイベントを見ることが可能です。

2019-04-22 13_32_56-リトルセイバー 体験版

その他のバージョンアップ内容は以下の通りです。

追加機能

  • ゲームパッド使用時にダメージを受けたときバイブレーションを行うようにした。瀕死なときほど振れ幅が大きいです。
  • 対応言語に「フランス語」「ドイツ語」「イタリア語」「ロシア語」「スペイン語」を追加しました。ただし現状では仮実装となっており、翻訳が間違っていたりレイアウトがずれていたりします。

機能改善

  • ゲームパッドが2番目以降に割り当てられてもメニュー操作できるようにした (一部不具合らしきものが残っているかも)
  • ポータルの非表示スキル「取得経験値増」をスキル一覧に表示
  • 体験版にもイベントシーンを追加しました。
  • 体験版のセーブデータを完全版で読み込めるようにしました。(体験版の旧バージョンからアップデートする場合はダウンロードページの注意事項を参照)

仕様変更

  • 【バランス調整】レイシア、トリーに「回避」スキル追加
  • 【バランス調整】ニールに「クリティカル」スキル追加
  • 【バランス調整】アイリに「状態異常半減」スキル追加

不具合修正

  • オプション画面のダメージ表示設定の ON, OFF が反転していた問題
  • オプションの音量を 100 以上にしようとするとゲームが落ちる問題
  • フレーム無しでゲームを起動したときにゲーム画面が 16:9 で表示される問題(本来フレーム無しは 4:3)
  • タッチ操作時、データロード中に多数タッチすると落ちる不具合
  • 各ステージで1度でも敗退、または途中離脱を行うとステージクリア後のイベントが発生しない不具合(重要イベント、エンディングも含む)
ダウンロードについては以下のページを参照してください。いくつかのサイトにおいてはアップロードが反映されるまで少し時間がかかるのでそれまでお待ちください。 ]]>