2023年1月18日水曜日

MonoGameのススメ

 ブログが消滅して久しく経ちますが、ゲーム開発者のNeoBlogKossyと申します。

ゲーム開発が本業ではありますが、ここのブログは全てプライベートな個人開発用となっているので本業とは関係ありません。


MonoGameの日本語記事が少なく、日本で使っているの俺一人じゃね?と勘ぐりながら、メモを残せたら思ってます。


MonoGameを使っている経緯を書くと、

10年ほど前にXNAというのがありました。

Xbox360市販機でゲームが作れる!売れる!という事で、個人開発者は飛びつきました。

今のようなインディーゲーム界隈が盛んでは無かったので、

個人開発ではゲーム機ではリリース出来ない状況でした。

ゲーム開発といえば、昔も今でずっとC++が基本です。

多分今後も末永く変わらないでしょう。

XNAはC#を使います。

私は始めてC#を触る事になります。

C++コーダーなら直ぐに理解できると思います。

値型/参照型の癖さえ気をつければ。


C#を使った感想は

・ヘッダー不要、includeのクソ長い解析時間も不要

・メモリーはガベージコレクションで管理されているので開放が不要

・defineはファイル冒頭など定義箇所が限定されるので、基本は未使用となり可読性の向上

・ポインターは原則使用禁止

・クラスのフィールド変数は自動で0初期化

・.NET Frameworkなので、マルチプラットフォーム化が容易

ざっくりこんな印象でした。

C++ではバグの温床だった仕様が軒並み禁止されている印象でした。


一番大きいのは、ヘッダーが不要になった事。

ヘッダーを記載する手間ほんとに苦痛だったんですよね。俺はゲームが作りたいんだと。

XNAはMicrosoftの方針により、2014年4月に開発が終了します。

いいフレームワークだったのに残念です。

開発が終了したと言え、今も使えない訳では無いです。

Terraria は今もXNAで作り続けられてますし、

Stardew Valley は少し前までXNAだったけどMonoGameに入れ替えたとの事です。


そのXNAの後継として引き継がれたのが

MonoGame Teamが開発するMonoGameです。

2023年現在、PS5/XboxXS/Switchでもリリース可能です。

XNAで作った資産をほぼそのまま流用する事が出来ます。

流石にリビルドで一発起動!って訳には行きませんけど。

現在、Version 3.8.1.303 が最新です。

アップデート頻度はかなり低いですが、どのバージョンも概ね問題なく使えています。

コミュニティーの皆さんが非常に優しいので、質問すれば色々と教えて頂けます。

(英語ですけど、温かい)


統合環境なら、Unity / UnrealEngine を使うと思いますが、

全部コードで書きたくて、C#でコンソールのゲームが作りたい。って方はMonoGame1択だと思います。

利点/欠点はこちらの記事なども参考にしてみるといいと思います。

2Dゲームが多い印象なので、2D向けって書かれてますが、全くそんな事は無いです。

3Dゲームも完全に作成出来ます。

昔々に作った3DのRPGの試作です。

                            まぁポリゴンとマトリックスとz値さえあれば、何でも3Dで書けますよね…

まぁ何にせよMonoGameはイイネ👍。という事が伝われば我幸いです。




KuickerKuicker:Windowsのランチャーソフトを作ったので公開します!

昔から色々なランチャーを使用してきましたが、 お気に入りの更新が止まり、Windowsやアンチウイルスソフトからの警告が出て、 起動できない or 警告が毎回出るようになり、悲しみに浸っておりました。 普段ゲーム作りが主で、余りWindowsのGUIソフトは作りませんが、重い腰を...