MetaFormingPro 2020/09/04 19:01

unity1week振り返り④ オンライン編


公式ロゴ。
イベントページへのリンク忘れてたぜ!

いろんなひとが振り返り記事書いてますね。
やっぱり評価とかランキングはほとんどの人は気にしますよね。
だって存在するんだもん。

ところで来週末にu1w共有会というのがあります。
https://twitter.com/lycoris102/status/1300944503398752256
つよつよ勢もいっぱいいるontube発表会です。
VFXでWEBGLビルドした人の顔も拝められるかと思います(某M氏煽り

てなわけで、全4回に渡る大作記事になった振り返り。
(たぶん)最終回となる今回はオンライン考察です。
例によって、やたら鼻につく文体になっちゃってる気もしますが
何卒ご容赦ください。

今回どれくらいオンラインゲームがあったの?

この実況を見ることで今回の作品を把握できます。
https://youtu.be/UkOoxrXDcHI?t=7023
ぱふもどき神の実況、オンライン回です。2時間くらいから。
個人的ハイライトは絵心神経衰弱です。特に4:26:49あたり。

この実況動画を見る限りは11作品? でしょうか。
この後も投稿されているので、もっと増えているかもしれません。

現状どうなのよ

実際の所、オンラインで遊ぶのにこれほどない環境であるにも関わらず、
マッチングして遊ぶ機会にはまだまだ恵まれないのが現状です。
上の動画にあるように、ぱふもどき氏の実況回は大変盛況ですが、
逆に言えばまともにマッチングするのはそのタイミングだけで、
平時は、あらかじめ誰かに声をかけたりしない限りは困難です。

https://twitter.com/MetaFormingPro/status/1299593470944792577
一応、自分もこうやって声を上げれば
1on1くらいならなんとかマッチング対戦ができる感じですが……

ではどうすればいいのだろうか

2つの観点から考えてみます。
ひとつは、作者側がどうやってオンラインゲームを設計するかの観点から。
もうひとつは、unity1weekというイベントにおいて、
どうすればマッチングしやすい空気を作る事ができるか。

unity1weekに適したオンラインゲームを考える

結論から書いてしまいます。(あくまで個人論です)
「ひとりでも遊べる」かつ
「常にロビーに入っている」かつ
「マッチング中に一人ゲームを遊べる」あるいは
「一人ゲーム中にもマッチング待ちを行える」
形がベストじゃないかと考えています。

ひとつ、今回登録されたオンラインを実装したゲームを例に考えてみます。
(例にあげてしまいますが、貶す意図は一切ないと予め断っておきます……)
https://twitter.com/penguin_uts1/status/1297164991221469184
バウンシー・シューティングは1on1の対人型STGです。
個人的には、今回登録されたオンライン搭載の中では
もっともスタンダード且つシンプルな、つまり分かりやすさが好きです。

CPUと対戦できる、一人プレイモードが用意されています。
そしておそらく本懐と思われるオンライン対戦が存在します。

ただ……この2つのモードが、完全にそれぞれ独立してるんですよね。
一人モードを遊んでる途中は、一人モードを終えるまで一人だし、
オンライン対戦しようとすると、マッチング画面で待機することになるわけです。

すると、こういう流れが予測できます。

まずは一人プレイを遊んでみよう、おもしろいなー
→よし、オンラインモードもやってみよう
→マッチング待機画面で待ってるけど誰も来ないなー
→誰も来ないしもう1回一人プレイするか……
(以下繰り返し)

もしかしたら、こういうことが起こっているかもしれませんね……。


一人プレイで遊んでいる間は、ほかのプレイヤーの存在を感知できず、
マッチング中は、遊ぶことができず、待機し続けるしかない訳です。
それを踏まえると、どうするのが良さそうか、おぼろげながら見えてきます。

・ページを開き、タイトルに来た時点でロビーに強○的にアクセスする。
 また、この時点でロビーにいる人数を確認できる
(→平時はまず起こりえないと思うが、もし満員だったら
  一人プレイモードのみプレイ可能にする)
(プレイしていることを感知されたくないプレイヤーもいるかもしれないので、
 オフラインモードは用意してもいいかもしれない)

・(あるいは練習用の)完全一人プレイモード(チュートリアルともいう)と、
 オンラインモード待機付きメインゲームを用意する。
 (もしくは先のオフラインモードを選択したかによって分ける)

・マッチング中に一人プレイが遊べる。
 あるいは、一人プレイモード中にマッチングを感知した場合、
 オンラインゲームに移行できる(格ゲーの乱入みたいな感じか)

こんな感じの設計にする。
すると……

こんな、かんじに、なるのかなあ、と。(ふわふわ)

その他行えることとして、呼びかけ用の趣旨のツイート機能なんかも補助として
実装すると良いかもしれません。

補足:オンラインの種別

補足的な項目なので軽く。
ひとくちにオンラインゲームと言っても、
そのタイプはいくつかに分かれているのは周知の話です。
現在のunity1weekでは、1on1やチーム戦、ロワイヤル方式など
細かい種別に差はあれど、対戦型オンラインが大半のようです。
もうひとつの主流である共闘型は、あまり見かけない印象がありますね。
個人的には共闘型も面白いと思っているので、今後の登場に期待したい所です。
あと、お気に入りでも紹介した「月の裏側」のような、
「なんとなく同じ時間に遊ぶとマッチングする」タイプも
なかなか新鮮です。

共有ロビー?

で、もうひとつの観点、どうすればマッチングしやすい空気を
作る事ができるか……を考えた時、ふと、思いついたことなのですが……
NCMB(とキー)を利用することで、疑似的なアプリの垣根を越えた
共有ロビーが作れるのではないか、と。

構想としてはこんな感じ↓

・各作者にゲーム内に共有ロビーを機能を実装してもらう
(あるいはアセットで用意する)
 共有ロビーには受信機能と送信機能がある

・共有ロビー機能が実装されたオンラインゲームA,B,Cがあるとき、
 あるプレイヤーQがゲームAを遊ぶと、
 その時ゲームA,B,Cを遊んでいるユーザ全てに、
 「プレイヤーQがゲームAを今遊んでいる」事が感知される
 (時間は多少さかのぼってもいいかも、5分くらい)

・すると、B Cを一人で遊んでいるユーザ
(あるいはB、Cのゲームを訪れたユーザ)も、
「Aに行けばマッチングできる」事を知れるので、Aに行ってみるかもしれない。

 ……という仕組み。

→多数のオンラインゲームで実装されれば、
「どこかのオンラインゲームにアクセスすれば知れる」状態になるので、
同じ時間帯にオンラインで遊びたいユーザを感知しやすくなる。

もちろんオンライン機能がないゲームD,E,Fでも導入することは可能。
ただし、その場合、オフラインゲームのD,E,Fに集う意味はないので
必要なのは「共有ロビーにいる」という情報のみ、
また、オンライン機能があるA,B,Cのゲームに集うことを想定しているので、
D,E,F側にはメリットはあまりない、ボランティアに近しい扱いになるのだが……

技術的にはそこまで難しくない(NCMBによるランキングを
自力で実装できる人なら問題ないクラス)だと思う。
そのほか問題をあげれば、ユーザ名を何かしら表示したい場合、
それぞれのゲームA,B,Cすべてに自分の名前を
事前に入力する必要があること。
さすがにキーをパブリックに公開すると、悪意あるエンジニアに
DBを荒らされる恐れがあるので、キーの受け渡しは
信頼がある作者同士でのみ行わざるを得ない、ということなどだろうか……。
あと、やり方を間違えると、「身内による内輪結束」になりかねないかも。
※前の記事で書いたが、部外者排他の風潮になるのはよろしくないのだ

まだ思いつき段階なので、実際に作ると色々問題も見えてくるかもしれないが、
いかがか。(文章が雑

ちょっと(次のunity1weekの前に)試してみたい気はある。
今回(ふえる)の作品を使って、これを試してみたいが協力してくれる作者求ム。

なんにせよ

最初に書いた通り、これだけの数の作者が同じ時間、同じ場所に集う機会は
他にはそうそうなく、unity1weekはオンラインゲームを楽しむ、
あるいは作って遊んでもらう、またとない機会だと思うんですよね。
だからこそ、現状、あと一歩、何かが足りない感じがするんですよね。
そこを乗り越えれば、きっと素敵な事になると思ってるんですよ……
(ふわっとした文章)

ていうか

Q.こんだけオンラインについて偉そうに考察するお前は
 もちろん次のunity1weekはオンラインゲー投稿するんだな?

A.そうしないといけない気がしてきた

とはいえ、次のunity1weekでぶっつけでphoton導入すると
(会社のR&Dで使ってた経験があるとはいえ)思わぬ所で躓きそうなので、
次のunity1weekが始まる前に素振りの試作でもします……。

振り返り記事 総まとめ

unity1week最高!!!!

最新の記事

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索