pixelstreamingでmultiplayするには #58

Open
opened 2024-12-24 04:17:00 +00:00 by syui · 0 comments
Owner

pixelstreamingはMatchMakerで起動したアプリの数だけstream idを発行できる。これでmultiplayは可能だけど、1アプリに複数のplayerを接続する形にしたいのでハマっている。session, camera, player(controller)を割り当てられればいいのかもしれない。ipごとに別title画面を表示しないといけない。

こちらが参考になります。しかし、atprotoの場合は自身ですべて実装しなければなりません。

atproto

今のところ考えている手順としてはこんな感じです。すべてブラウザからのゲームプレイになります。

  1. titleにてatprotoでログインする。ここでuser dataを読み込む。
  2. ログインの際、didとipを紐づける。同一ipはログインできないようにする。そのdidに基づいてカメラとキャラクターを割り当てる。
  3. 通信が一定時間途切れた場合はsession終了とみなす。ここでlogout処理となる。この際、紐づけられたipを削除する。

ip

正直、pixelstreamingで動かしている場合、ipが取れるかわからない。server側ではipを取れるが、engine(app)側ではどうだろう。実行しているappのipしか取れない可能性もある。

したがって、ipでの処理を省略することを考えている。ipの紐づけを行わなければ、それは単にdidとcamera, player(character)への割当なので、可能だと思う。

まあ、弊害はあるが、例えば、bsky(atproto)で大量のアカウントを作成しログインを試みることだろう。初期プレイヤーがそこまで悪さをするとは思えない。

ちなみに、server側のlogやoauth情報を照らし合わせれば対処は可能ではある。が、そんなことまでやってられない。

現在、atprotoでログインするシステムは実装済み。問題はpixelstreamingを使ってwebでmultiplayを実現する方法。

そして、EOSはどうやらEpicアカウントを使用してlogin, multiplayなどを実現するシステムを提供する。ただ、pixelstreamingと併用できるかはわからない。あと、EOSで構築したほうが便利機能は豊富。

基本的な考え方としては、ユーザーセッションを追跡できる独自のWebフロントエンドを構築し、各セッションでUEゲームのインスタンスを起動する必要があるということです。

現在、atprotoでログインするシステムは実装済み。問題はpixelstreamingを使ってwebでmultiplayを実現する方法。

そして、EOSはどうやらEpicアカウントを使用してlogin, multiplayなどを実現するシステムを提供する。ただ、pixelstreamingと併用できるかはわからない。あと、EOSで構築したほうが便利機能は豊富。

基本的な考え方としては、ユーザーセッションを追跡できる独自のWebフロントエンドを構築し、各セッションでUEゲームのインスタンスを起動する必要があるということです。

pixelstreamingは`MatchMaker`で起動したアプリの数だけstream idを発行できる。これでmultiplayは可能だけど、1アプリに複数のplayerを接続する形にしたいのでハマっている。session, camera, player(controller)を割り当てられればいいのかもしれない。ipごとに別title画面を表示しないといけない。 こちらが参考になります。しかし、atprotoの場合は自身ですべて実装しなければなりません。 - plugin : OnlineSubsystem - https://tech.dentsusoken.com/entry/onlinemultiplay-cpp - https://dev.epicgames.com/documentation/ja-jp/unreal-engine/online-subsystem-steam-interface-in-unreal-engine ## atproto 今のところ考えている手順としてはこんな感じです。すべてブラウザからのゲームプレイになります。 1. titleにてatprotoでログインする。ここでuser dataを読み込む。 2. ログインの際、didとipを紐づける。同一ipはログインできないようにする。そのdidに基づいてカメラとキャラクターを割り当てる。 3. 通信が一定時間途切れた場合はsession終了とみなす。ここでlogout処理となる。この際、紐づけられたipを削除する。 ## ip 正直、pixelstreamingで動かしている場合、ipが取れるかわからない。server側ではipを取れるが、engine(app)側ではどうだろう。実行しているappのipしか取れない可能性もある。 したがって、ipでの処理を省略することを考えている。ipの紐づけを行わなければ、それは単にdidとcamera, player(character)への割当なので、可能だと思う。 まあ、弊害はあるが、例えば、bsky(atproto)で大量のアカウントを作成しログインを試みることだろう。初期プレイヤーがそこまで悪さをするとは思えない。 ちなみに、server側のlogやoauth情報を照らし合わせれば対処は可能ではある。が、そんなことまでやってられない。 現在、atprotoでログインするシステムは実装済み。問題はpixelstreamingを使ってwebでmultiplayを実現する方法。 そして、EOSはどうやらEpicアカウントを使用してlogin, multiplayなどを実現するシステムを提供する。ただ、pixelstreamingと併用できるかはわからない。あと、EOSで構築したほうが便利機能は豊富。 > 基本的な考え方としては、ユーザーセッションを追跡できる独自のWebフロントエンドを構築し、各セッションでUEゲームのインスタンスを起動する必要があるということです。 - https://forums.unrealengine.com/t/pixel-streaming-multiple-user/587545/5 - https://github.com/mordentral/AdvancedSessionsPlugin - https://you1dan.hatenablog.com/entry/2022/09/15/090904 現在、atprotoでログインするシステムは実装済み。問題はpixelstreamingを使ってwebでmultiplayを実現する方法。 そして、EOSはどうやらEpicアカウントを使用してlogin, multiplayなどを実現するシステムを提供する。ただ、pixelstreamingと併用できるかはわからない。あと、EOSで構築したほうが便利機能は豊富。 基本的な考え方としては、ユーザーセッションを追跡できる独自のWebフロントエンドを構築し、各セッションでUEゲームのインスタンスを起動する必要があるということです。 ## link - https://forums.unrealengine.com/t/pixel-streaming-multiple-user/587545/5 - https://dev.epicgames.com/documentation/en-us/unreal-engine/experimental-pixel-streaming-features#settingupyourpixelstreamingplayer - https://forums.unrealengine.com/t/multiplayer-pixel-streaming-with-same-world-each-client-control-different-player/1541097/4 - https://forums.unrealengine.com/t/pixel-streaming-multiplay/2240479 https://dev.epicgames.com/documentation/ja-jp/unreal-engine/hosting-and-networking-guide-for-pixel-streaming-in-unreal-engine - https://onlineservices.epicgames.com/ja/services - https://eoscore.eeldev.com/ - https://www.fab.com/ja/listings/8e78818d-4662-4c6d-8ab2-6e22b9d3595e - https://github.com/mordentral/AdvancedSessionsPlugin - https://you1dan.hatenablog.com/entry/2022/09/15/090904
Sign in to join this conversation.
No Label
No Milestone
1 Participants
Notifications
Due Date
No due date set.
Reference: ai/ue#58
No description provided.