ブログが消滅して久しく経ちますが、ゲーム開発者の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で書けますよね…