難しそうなのでこれまで作る気がしなかった対戦ゲーム。
ちょっと挑戦してみたくなったので実装方法を探る。
調べてもPhotonとかUNETとかの用語で良くわからなくなったのでまとめて覚書。
ユーザー ↔ サーバー(自鯖とかAWSとか)
対戦ゲームというとまずこれが思いついた。
一般的なクライアントサーバー実装が必要で難易度が高く維持費がかかる。
ホストは自分管理のサーバーなのでチートなどの余地が少ない。
MMO、ソシャゲ、課金要素のあるものなど
ユーザー ↔ サービス(Photon(PUN+)など)
ユーザーをつなぐハブみたいなサービスなんだと思う。
用意された機能を使う実装が必要で利用費がかかる。
クライアント、ホストともにユーザー。
ホストマイグレーション(ホスト端末が落ちた時のホスト切り替え)が容易。
麻雀、トランプ、将棋など数人ぐらいの対戦向け
ユーザー ↔ ユーザー(UNET)
Unity公式の対戦用機能だけど発展途中で情報が少なく変更も多い。
クライアント、ホストともにユーザー。
ホストマイグレーションも制限ありで使えるらしい(公式)。
麻雀、トランプ、将棋など数人ぐらいの対戦向け
ユーザー ↔ ユーザー(Bluetooth)
端末機能(Bluetooth)を使って直でつなげる。
AndroidStudioなどでライブラリを作る必要がある。
距離の制限がある。
TRPG、ホッケー、合コン用ゲームなどその場で遊ぶアプリ向け
AWS使ってるからサーバーの用意は簡単だけど実装もメンテもしたくない。
とりあえずUNETあたりを使ってみてどんなものか確かめてみる。