「モノビットエンジンクラウド」。モノビットエンジンクラウドは今年の3月26日にリリースされたばかりのクラウドサービスで、サーバ側の知識がゼロでも簡単にオンラインゲームが作れてしまうリアルタイム通信エンジンです。今回、ちょまど氏はこの二つの技術でオンラインゲームを作りましたが、はたして本当にサクッと簡単に開発できたのでしょうか。まど氏にご登場いただき、同製品の実際の使用感やオンラインゲームの開発にまつわるお話をお伺いしました。まど氏:マイクロソフトの千代田まどかと申します。ニックネームは「ちょまど」です、今日は宜しくお願いいたします!私も子どもの頃からゲームが好きで、それこそ心臓が動いている時間すべてをゲームに費やしているくらいの勢いでした。「ゲームを作ってみたい」という気持ちも昔から持っていて、プログラミングは勉強していますが、オンラインゲームとなると何から手を付けるべきかが分からなくて。安田氏:実際にオンラインゲームを作ろうと思って、手を動かしたことはありますか?ちょまど氏:クライアント側はなんとか簡単なものは作れるのですが、サーバ周りはちょっと...。仮想マシンにLinuxを入れてみて、各種モジュールをインストールしてと色々やったことはあるのですが、それも“ただWebサイトを作ろう”というだけで、ゲームのバックエンド経験は全くないんです。興味はあったのですが、「またあれをやるのか~」と思ってしまって、心が折れちゃいました。安田氏:そうですよね...いきなりサーバを立てるのはハードルが高いと思います。御社はAzureというプロダクトをお持ちなので有識者も多いと思うのですが、「Azureを使ってどのように構築するか?」はノウハウがないと難しいと思っています。実際サーバを立てる時は「OSをどうするのか?スペックをどうするのか?」を決めないといけませんし、リアルタイム通信周りを1から作ろうとするとソケット・プログラミングが必要で、かつサーバ系の処理はエラーの種類が多すぎて網羅的にデバッグするのも大変です。まど氏:な、なるほど...ちなみに、これを私が1人でやろうとするとどのくらい時間が掛かるものなんでしょうか?安田氏:1,2ヶ月で基盤を創ることはできると思いますが、通信部分のキモは“構築したものをずっと保守していく”ことで、作った後の保守、メンテナンスコストが大変かも知れません。それ以外にもやるべきことはたくさんあります。オンラインゲームを開発する会社にはサーバ専門の方がいない場合もるんですよね。そこを何とかすべきだと思って作ったのが「モノビットエンジンクラウド」なんです。エアホッケーゲームをオンライン化ちょまど氏:今回はUnityでエアホッケーのゲームを作ってみました。私は副業で「はしれ!コード学園」という漫画を描いているのですが、そこで“まさかりを投げ合う”みたいなシーンがあって、それを意識したゲームになっています。キャラクターセレクトのシーンとゲームプレイの2種類のシーンがあって、5点先取で勝ちというシンプルなルールになっています。(※編集注:「はしれ!コード学園」は、プログラミング言語を擬人化した漫画作品。シナリオをセオショージ氏が、漫画部分をちょまど氏が担当。リクルート社のWebメディア「リクナビNEXTジャーナル」にて連載中。)安田氏:良いですね!キャラクターのイラストは全てちょまどさんが描かれたんですか?ちょまど氏:はい!昔からずっと、自分の漫画のキャラクターが出てくるゲームを作ってみたいと思っていて。自分の絵を使った誰かとの対戦ゲームに憧れがあったので、シンプルなものでも実現できたことはすごく嬉しいです。対戦してみませんか?安田氏:...思ったよりもガチ対戦してしまいましたね(笑)面白いです。ほとんど遅延も気になりませんね。安田氏:今回、オンライン化には「モノビットエンジンクラウド」を使って頂いたと思いますが、どのくらいで完成しました?ちょまど氏:半日くらいだったと思います。思ったよりも簡単で、難しいことは全然していません。コネクション張るところも1行書くだけで済みましたし。安田氏:それはありがたいです。まど氏:私、C#言語オタクなんですけど、Unityでの開発は初めてでしたが、本当に簡単にコーディングする事が出来ると思いました!引数の名前が直感的で、インテリセンスを見ただけで内容が理解できるし想像もし易いという感じですね。命名規則のところはマイクロソフトが出しているガイドラインに完全に準拠しているから、使いやすいんだと思います。安田氏:エンジニアさんが出来るだけスムーズにコーディング出来るようにというのは意識しています。まど氏:全体的に親切な設計ですし、構造にすごく納得ができるから、直感的に使えました。安田氏:ありがとうございます。実際に自分の絵がオンラインゲームとして動いているわけですが、感想はいかがですか?ちょまど氏:感動しました!本当に難しいことをやったわけではなくて、ちょろちょろって、気持ちいい感じのコードを書いただけで動いたので、すごく楽しかったです。今回は簡単なサンプルゲームですが、この感動を他の皆さんにも味わって欲しいですね。オンラインゲーム開発は調べ物をした時点で「もういいや、無理だ」となってしまっていたのですが、こんなに簡単なら全然やります、というか、色々と作ってみたいという気持ちは大きくなりました。誰のためのクラウドなのか?安田氏の語るモノビットエンジンの未来ちょまど氏:「モノビットエンジンクラウド」は、私のようにクライアント側は作れるけれど、オンライン対戦のバックエンドが難しいという多くのゲームデベロッパーを助けるためのミドルウェアだと思います。そもそも、これを作ろうとしたきっかけはなんだったんですか?安田氏:もともと「モノビットエンジン」としてリアルタイム通信は提供していたのですが、サーバの構築で悩まれている方が非常に多かったんです。した声を聞いて「トータル的にバックエンドを提供するということがまだ出来ていないのだな」と分かったので、サーバもセットにしたプロダクトを作ることでニーズに答えたかったんです。これはプロダクトとしての説明で、根底には「ゲームの楽しさ、面白さにのみ注力できる環境を作りたい」というコンセプトがありました。開発者はゲーム自体を面白く作り込んだり、複数プレイヤーがどういう挙動で同期するのかをコーディングするだけで良いんです!難しいことは、全てこちらで巻き取りますから。まど氏:素晴らしいと思います!私がサーバレスのコンセプトが好きなのも同じ理由で、アプリ開発者としてはアプリを作ることだけに集中したいんです。「サーバ負荷が~」とか「パッチ当てないと~」とかを考える時間を、より良いUIやゲーム機能の追加に使いたいと思っていて。餅は餅屋ですし、ゲームアプリだけに集中できることは結果的に運用コストの低減に繋がったり、ヒューマンリソースの節約にも繋がりそうですね。安田氏:今回はサーバサイドをいかに楽にするかに注力しました。オンラインゲームで一番気にしないといけないのはサーバ負荷ですよね、スマートフォンアプリやMMOが「重くて繋がらない!」みたいなことって良くあるじゃないですか。どのように負荷を分散するのか、という設計部分はエンジニアのナレッジに依存する部分が大きい。サーバの台数を増やすか、サーバプログラムを軽くするか、コスト面を含めてその辺りの判断は難しいと思います。いった本来ナレッジがなければ難しかった部分を、誰でも簡単にできるようにしたい、という想いがありました。まど氏:どんな方に使って欲しい、みたいなところはありますか?安田氏:様々な分野で活用して頂ければ嬉しいのですが、私たちとしてはインディーゲーム開発者の皆様にもコミットしたいと考えています。一般のユーザーでも20人の同時接続までは無料にする仕組みにしています。ホームページから登録して頂いて、設定を少しやって、あとは数行のプログラムで展開ができるという形になっていますので、チャレンジは本当に簡単です。大変な部分は私たちがお手伝いするので、ぜひ自分のコンテンツを面白くするというところにこだわって頂ければと思っています。ゲームに関わる全ての方に『自分が作りたいゲーム』を世にどんどん送り出してほしいですね。「モノビットエンジンクラウド」の詳細はこちら公式サイトおまけ△コードレビューを行う二人。1日中、ゲームよりもコードの話で盛り上がっていた。氏にインタビューを実施。『コトダマン』の開発にあたってMUNを導入することになった背景やその魅力を聞いた。