ナポレオンというトランプゲームができるアプリ『トランプ・ナポレオン』にはオンラインでの対戦機能があります。当初からあったのではなくバージョン2.0のときに入れた機能です。Unity Multiplayerが導入されオンラインマルチプレイが簡単になったということで対応をしました。

Unity Multiplayerによりマッチングの対応や同期の実装が非常に簡単になりました。コードを書かなくても位置の同期をするといったことも可能ですごく便利です。
通信を用いた対戦を実装するのはいくらAPIの呼び出しが楽になっても簡単ではありません。それは切断時の対応やエラーの問題です。これをどう対応するかはアプリによるので大変なのです。オンラインゲームはどう作れば良いのか調べたり、Unityのドキュメント(作ったときは英語だった)を読んだりして試行錯誤があったので40時間近くはかかったと思います。一度経験すればそれ以降は楽になると思います。
あとはテストが大変です。Unityのプロジェクトをコピーして、複数のプロジェクトを同時に起動すると1つのPCで通信できます。これはウィンドウが多くなるので見づらいですが、Unity Editorでログが見れたり、インスペクターが使えるのでデバッグに向いています。テストを実機で行うとできることはわかっているのですが、 テンションがあがります。独立した端末同士での対戦ができると、世界中でも対戦できることになるというのが実感できて、ちょっと夢が広がります。

トランプ・ナポレオンに通信対戦機能が完成したときはよくできたと思っていましたが、実際にはあまり遊ばれないようです。2~5人のプレイヤーが集まれば遊べますが、ナポレオンは5人で遊ぶゲームなので足らないとAIと対戦することになります。

現在のアクティブユーザーがメニューで通常のAI戦とオンライン対戦のどちらのボタンをクリックしているかの統計を見ると20~30倍程度の差があります。更にマッチングが完了し対戦に行くのは、もちろんメニューを選んだよりもかなり少ないです。
tn-menu-compare-graph

ただユーザーの数で比べてみると、差は10倍程度になります。
それなりの数のユーザーが選んでいるにも関わらず通信対戦のメニューをクリックした総数は少ないように思います。通信対戦を選んでみるユーザーはいるが、マッチングせずにそれ以降選ばなくなっているのではないかと考えられます。

すぐにマッチングするには相当なユーザーが必要です。2人のユーザーがマッチングには必要で、10秒は待てるとしましょう。極端な例として、マッチングが最もしにくくなるには全てのユーザーの待っている時間帯が重ならないことを考えます。1日は86400秒なので、10秒ずつユーザーがずれていれば8640人のユーザーが重ならずに配置できます。8641人目が来れば、それ以前にいるユーザーにぶつかります。全員がマッチングするには8640人に対し、相手が必要で2倍。つまり17280人がいれば、10秒待てば必ずマッチングするでしょう。

通信対戦があるというのは利点です。これが活かせるためには多くのユーザーがいるのが前提です。アピールするために入れるというのはあるかもしれませんが、労力に見合うのか検討する必要があると思います。
アップデートでいれるのは相当難しいですが、遊ぶ人数が増えたときに対応するというのが一番良いと考えています。(10万DLとか行ったら、喜んで入れます。)