【C#】MonoGameでクロスプラットフォームなゲーム開発をする(1)

こんちゃ洋梨🍐です。

皆さん「MonoGame」をご存知でしょうか?

ちなみに僕は存在を今日まで知りませんでした笑

このMonoGameですがどうやらクロスプラットフォーム開発ができるようなのです。ゲーム開発というとUnity!って普通はなるかもしれませんし僕もなります。が、たまには別の環境を試してみるのもいいと思ったので試していこうと思います!

(Unity無料版で開発するとついてくるスプラッシュスクリーンが気になったりもしますし)

準備

まずは Visual Studio のインストール及び MonoGame のインストールが必要です。

プロジェクトを作成する

まずはWindows用プロジェクトを作成

Windows用プロジェクトを作成したら次に「追加」→「新しいプロジェクト」から「Androidの新規プロジェクト」を追加します。

新規プロジェクトの追加

追加出来たら最後に「Mono Shared Project」を追加します。

この中にメインで書き込むよ

するとソリューションはこんな感じになります。

次はそれぞれのデバイスで起動したときにMonoSharedの中のGame1を起動するようにします。

Androidでは Activity1.cs → (MonoDroid内)Game1.cs
Windowsでは Program.cs → (MonoWin内)Game1.cs

となっているのをそれぞれ

Activity1.cs → (MonoShared内)Game1.cs
Program.cs → (MonoShared内)Game1.cs

とする感じです。参照の追加は

Win、Droidとそれぞれここから追加します。

共有プロジェクト → MonoShared にチェックを入れれば準備完了です。

それぞれプロジェクト起動部に書かれている

// On Droid
// var g = new Game1(); Before
var g = new MonoShared.Game1(); //After
// On Win
// using (var game = new Game1()) Before
using (var game = new MonoShared.Game1())
  game.Run(); // After

この部分をこのように書き換えて MonoShared 内の Game1() を起動させるようにします。

実行してみる

実行するプロジェクトを選択し、実行ボタンを押すと実行できます。

ターゲットの選択

このように青い画面が表示されれば成功です。

なお、Androidで実行するとマニフェストがないというエラーが発生する場合があります。その場合、マニフェストを作成してから実行する必要があります。

Androidでは事前にAndroid Manifestの作成が必要

クリックすると追加されます。楽ですね。

では次回はゲーム作りに必要なタッチの座標取得などを行っていきたいとおもいます。


ここまで読んでくれてありがとうございました!!

ホームページでは他にも

・様々な記事や作った作品および過程
・ソースコード、素材ファイル
・あらゆる”モノ”の作り方

などなど随時、記事や作品を新規公開・更新していますので是非見ていってくださいね!見ていただけると本当に嬉しいです!