のがむらです。
今回は通信対戦についてのお話をします。
サーバーだのパケットだのややこしい話は置いといて、実際に作ってみての感想です。
対戦ゲームを作ろうとしたこと
やっぱり「対戦」って燃えるじゃないですか。スマホアプリって協力が多いけど、やっぱり自分の中ではゲームと言えば対戦。
しかし、普通のアプリでさえヒーヒー言いながら作ってるのに、対戦アプリなんてこんなにわかに作れるのかと。それで少し敬遠してるのもありました。
ただ、なんでもやってみようの精神。見切り発車しました。
それで作ったのが力学将棋。
ルールはシンプルに、「駒をぶつけ合って相手の王をはじき落とす」。
駒の強さとか動きによって能力差はつけたものの、ルールは大変単純です。
さて、作ってみてどうだったか。
実際に作ってみて苦労したこと
通信の導入自体はPhotonっていうものが親切にUnityプラグインまで用意してくれていて、以外とあっさりできました。
しかし、そこからが問題です。
駒の動きが同期しない
駒を飛ばすところまでは良かったんですが、相手と自分で盤面の駒の位置が違うんですよ。バラバラ。おかげで何もないところにぶつかったり、自分の画面で王を落として決着ついてるのに相手の方では王はピンピンしてるとか。
これは結局、盤面を共有することで解決できました。処理が軽くなるかな、と思って物理エンジンの計算は初速だけ拾って各々のアプリ内での処理をさせていたんですが、なんか物理エンジンって若干ランダム性があるっぽくてそれが原因だったようです。
さて、第一関門は突破しました。
めちゃくちゃ重い
なんか動作が追いついてない感がマックスなんですよ。カクカク。
まぁそりゃそうなんですよね。駒一つ一つの動きとか物理エンジンの計算とか全部同期してるから。
今まで大したゲーム作ってなかったので、容量のことなんて考えていませんでした。
そこで、Photonのシステムを使って通信量を計算してみると。
1戦で、数100MB。こりゃ苦情きますわ。データ通信が高級な今の世の中で気軽に出来るゲームじゃなくなりました。
とことん、削れるところを削りました。動いてないオブジェクトは極力同期しないようにしたり、通信が必要な部分を減らしまくって結果的に1戦1MB未満になりました。
一体最初は何をそんなにやり取りしていたんだろうか。
通信不良のトラブル
片方の回線が悪かったり、バックグラウンドに戻ったり、そういうことすると画面が崩壊するんですよ。これは結局時と場合によりけりで対策がよくわかりませんでした。
だからもう応急処置的に、バックグラウンドに移行したら接続切れ負けにするようにしました。
ここに関しては今後も課題です。誰か教えてください。
そんなこんなでリリース!しかし…
リリース後。予測出来るかもしれませんが。
プレイヤーが少なすぎてマッチングしない。
これが最大級の問題でした。リリース直後は何人かいたものの、時間帯によっては数時間待ってもマッチングしないなんてことも。
1対1のアプリでマッチングしないってどうしようもないですよね。確かに以前の記事で書いたみたいにマーケティングもする気もなかったし、こんなクソ知名度じゃユーザーはいないのは当然ですね。
人を集めるために、ライブ配信で実況プレイというか凸待ち等も試してみたんですが、2~3時間放送しても来場数0~2人。ダウンロードしてくれる気配もコメントもなし。
そんな喋りが上手い訳ではない私なので、ずっと喋ってられるはずもなく。
Youtuberコースはリタイアでした。
そんな感じで目の付け所はよかったのではないかと思っていた通信対戦ゲーム力学将棋も、ストアの影で眠る存在となりました。
かの有名な「どうぶつタワーバトル」も、製作者様のブログでリリース当初の苦難が語られています。
やはり対戦ゲームは、マーケティングありきですね。
貴重な経験を得ました。なんでもやってみて学ぶしかないですね。
コメント