鳥小屋.txt

主に自作ゲームをつくったりしているよ。制作に関することやそうじゃないことのごった煮ブログ

RPGツクールMZ製ゲームをSteamで公開するためのElectronテンプレートを作った

一昨年にね()

RPGツクールMZ製ゲームをSteam向けにビルドするためのElectronテンプレートを作成しました。 この記事では、そのテンプレートの内容と、なぜテンプレート形式にしたのかという思想を紹介します。

どういうわけか

知人「ツクールのゲームをSteamで出す知見があまりネットにないよね」
ぼく「たしかに」

Steam は言わずもがな世界最強(?)のゲームプラットフォームなわけですが、RPGツクールで作成したゲームをSteamに出す知見は、あまりインターネットでは見かけない印象があります。

僕の場合

僕自身は、Steamで以下の2本のゲームを公開しています。

『天翔と剣のウィッチクラフト』のときはリリースするだけでいっぱいっぱいで、Steamオーバーレイや実績の対応はできませんでした。やらなかったわけではなく、いろいろ試したのですが全然動かなかったのです……。

2つ目の『貴方が狼カードデス!』のときに、やっとこさいろいろ調べたり試行錯誤をして何とか対応できた……という経緯があります。

その知見をちゃんと共有したか?

してないかも……

上記のようなブログ記事を書きはしたものの、ちゃんと他の人が使えるような形の知見としてはまとめていませんでした

僕自身、調べるために様々な方の記事や公開しているライブラリを見たりと、他の方の知見を頼って頑張ってきたのに、自分の得た知見をナイショにしちゃうのは微妙です。僕はWeb系の開発には慣れているのでElectron周りで悩むことは比較的少ないですが、普通にRPGツクールを使ってる方はそこだって困ることがたくさんあるはずです。

ちゃんとまとめよう!

そこで「もう一度いろいろ調べ直して、多くの人が使えるような状態にまとめよう!」と考えました。

……というのが2024年の末頃の話。

1年以上経ちましたが、やっと「やってるよ」と言ってもいいんじゃないかなぁと思う程度にまとまったので、今回紹介記事を書くことにしました。

RPGツクールMZ Steamテンプレート

それっぽい雰囲気のドキュメントページがある!
(※サイト制作に使った、VitePressの標準テンプレートです)

このテンプレートは何?

このテンプレートは『プログラミングとかあまり得意ではない一般的なRPGツクールの利用者が、Steamにアップロードするビルドを生成できる』ことをゴールとして作成しています。

  • 対象ツール:RPGツクールMZ(MVは対象外です)
  • 想定利用者:RPGツクールMZでゲームは作れるがプログラミングが得意なわけではない人
  • サポートすること:Steam連携用プラグイン+Windows向け配布ビルドの生成
  • サポートしないこと:Steamworks上の各種設定(ストア設定、実績やクラウド設定の登録など)

実際にSteamでゲームを公開するには、Steamworksへの登録やストア設定などの別の作業が必要です。その部分はテンプレートではサポートできませんが、公開用のデータを作る部分において助けになることを目指しています。

中身は、僕が公開した『貴方が狼カードデス!』の実装をベースに微妙だった部分を手直しする形で作成しています。

できること(1):SteamPlugin.js

テンプレートには、RPGツクールMZ向けの「SteamPlugin.js」というプラグインが入っています。以下のような機能を持ちます。

  • テンプレートの設定
  • Steam向けビルドのセーブ処理
  • Steam向けビルドの場合に指定スイッチをONにするプラグインコマンド
  • Steam実績を達成させるプラグインコマンド
  • など

テンプレートを使う場合はこのプラグインを入れる必要があります。Steamビルド時以外は何もおきないプラグインになるため、同じゲームをブラウザ向けに公開している場合でも大丈夫です。

できること(2):Steam向けビルドの作成

Electron を使用したSteam向けビルドを作成できます。

  1. Node.jsをPCにインストール
  2. RPGツクールMZ側で「ウェブ向け」のデプロイメントをする
  3. 出力されたゲームをテンプレートの中に設置する
  4. 付属のバッチファイルを起動して、画面に従ってポチポチ
  5. Steamにアップロードするゲームデータが完成!

という流れです。Node.jsのインストールだけは手動で必要ですが、それ以外についてはバッチファイルを実行し、画面に表示されるボタンを押すだけで自動的に進行します。

また、ゲーム用の設定は『SteamPlugin.js』のプラグイン設定にすべて入っているため、テンプレート自体を編集したり、自分でプログラムを書く必要はないです。

このビルドで生成したゲームは、Steamworks側の設定を行えばSteamクラウドによるセーブデータの同期もできる仕組みになっています。

テンプレートの詳しい使い方は

テンプレートのドキュメントページ に書いています。この記事では説明を省いている事前準備の方法やテンプレートの詳しい使い方、Steamクラウド向けの設定方法などがまとまっています。

結構頑張って書いたので見てもらえると嬉しいです!

思想

以下はこのテンプレートの思想です。気になる方だけ。

Steamビルド生成くんにはしない

これはあくまでテンプレートであり、Steamビルドを生成するアプリではありません

そのため、テンプレートを使うにはNode.jsのインストールが必要だったりします。普段RPGツクールしか使わない人にとっては少しだけハードルかもしれません。

もちろん、Electronなどでラップすることで、Node.jsのインストールも不要にして、GUI上でポチポチ操作するだけで作れる仕組みも作れるかもしれません。

ですが、それをやると『中身をいじりにくくなる』リスクがあります

ゲームはリリースしたらおしまいではないです。1年後、5年後、10年後にも同じゲームが起動して欲しいはずですし、場合によってはアップデートをすることもあるでしょう。

このテンプレートは2026年1月時点ではいい感じに動くと思いますが、5年後の2031年にも同じように動くかはわかりません。今後出る新しいWindowsでは何か問題が起きるかもしれませんし、Steam側の仕様が変わる可能性だってあります。

そのときに、必ずしも僕が元気にこのテンプレートの更新をできるかはわからないです。「僕が元気じゃなくなると誰かのゲームが死ぬ」は最悪すぎるので避けたいです。

そのため、テンプレートという形にしました。

テンプレート内の実装部分は、Web系やElectron系の開発がわかる人が見れば、すぐに理解して改造できるくらいの薄いものになっています。万が一、僕が行方不明になってしまったとしても、その辺りに詳しい人やAIに聞けばなんとかしてもらえる程度のはずです。

アプリ化してしまえば、ここが薄くなくなり、聞ける人が少なくなります。それはとても大きなリスクだと思います。だからこそ、僕は『テンプレート』という形式を取っています。

ちょっと不便だなと思うところはあるかもしれませんが、代わりに未来の可能性を生かしているというところでご了承ください。

Windows以外のサポートについて

このテンプレートはWindowsのみをサポートしています。

が、もちろんテンプレートをちょっといじればmacOSやLinux向けのビルドも作れるはずです。やっていないのは僕がmacOSやLinuxデスクトップ環境を普段使いしていないためです。僕が動作確認できない・しづらいものは保守が難しいので、ここは個人開発故のトレードオフですね。

まとめ

RPGツクールMZ向けのSteamテンプレートの紹介でした。

実は、このテンプレートは以前からこっそりと公開しており、実際に使ってリリースされたゲームもあるらしいです。めっちゃドキドキする……元気に動いてるといいな。

僕もSteamに詳しいわけではないのでまだまだわからないことがたくさんありますが、みんなの知見が少しずつインターネットに溜まっていくことで、たくさんのゲームが公開されたらいいなと思います。

もし、このテンプレートをつかってゲームを公開したり、もしくは公開しようとして問題が起きたら教えてもらえると嬉しいです!