Проблема с нетворком при использовании ParrelSync или Multiplayer play mode

У меня проблема с нетворком от Юнити, когда я использую ParrelSync или Multiplayer play mode.
Это значит, что когда я запускаю два окна игры Юнити у меня резко перестают работать нормально Unity Relay, Unity Lobby. На Netcode for GameObject я не тестил, так как проблемы возникают до начала его использования.

Ход событий:
Два окна игры начинают с авторизации в сервисах Юнити (код ниже) и эта авторизация может продлится очень долго, часто она проваливается и начинается заново. Если им удалось авторизоваться то они получают разные айди. Далее когда я хочу создать лобби на одном из клиентов, то обмен данными для создания лобби идет очень долго, что может привести к таймауту, также одновременно с лобби создается реле, но из-за долгово ожидания откликов от серверов реле не может создаться.

Всё идет хорошо:
При одном окне игры всё работает правильно.
Когда я пробовал использовать собранную версию игры (Build and Run), тем самым получая два окна (одно в режиме игры Юнити и одно от сборки), то всё работает быстро и правильно.

Дополнение:
У меня в коде нет цикла, который бы постоянно обращался к серверам Юнити, обращение происходит один раз как в коде снизу, а у лобби не запрашиваются данные об их обновлении.
Авторизация происходит сразу при запуске сцены, а создание лобби инициируется игроком. Проблемы возникают сразу же как только два окна игры заходят на сцену и пытаются авторизоваться. После авторизации (если получилось) проблемы не пропадают.
Мне бы хотелось найти решение, которое позволило использовать Multiplayer play mode

Код авторизации

    private async void Start()
    {
        try
        {
            await UnityServices.InitializeAsync();

            AuthenticationService.Instance.SignedIn += () =>
            {
                Debug.Log("Singed in " + AuthenticationService.Instance.PlayerId);
            };

            await AuthenticationService.Instance.SignInAnonymouslyAsync();

            playerName = "Player(" + Random.Range(0, 10) + ")";
        }
        catch (AuthenticationException ex)
        {
            Debug.LogError(ex);
        }
    }

Логи авторизации

[Authentication]: Network error detected, retrying...
0x00007ffcef4d6bdd (Unity) StackWalker::ShowCallstack
0x00007ffcef4e6b99 (Unity) PlatformStacktrace::GetStacktrace
0x00007ffcf075132e (Unity) Stacktrace::GetStacktrace
0x00007ffcf0cf9cbf (Unity) DebugStringToFile
0x00007ffcee603575 (Unity) DebugLogHandler_CUSTOM_Internal_Log
0x0000015777a6db2d (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log_Injected (UnityEngine.LogType,UnityEngine.LogOption,UnityEngine.Bindings.ManagedSpanWrapper&,intptr)
0x0000015777a6d9f3 (Mono JIT Code) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,UnityEngine.LogOption,string,UnityEngine.Object)
0x0000015777a6d62b (Mono JIT Code) UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
0x000001583ecdab7d (Mono JIT Code) UnityEngine.Logger:LogWarning (string,object)
0x000001583ecdaa3d (Mono JIT Code) Unity.Services.Authentication.Logger:LogWarning (object) (at ./Library/PackageCache/com.unity.services.authentication/Runtime/Utilities/Logger.cs:17)
0x000001583ecda803 (Mono JIT Code) Unity.Services.Authentication.WebRequest:RequestCompleted (System.Threading.Tasks.TaskCompletionSource`1<string>,long,bool,bool,string,string,System.Collections.Generic.IDictionary`2<string, string>) (at ./Library/PackageCache/com.unity.services.authentication/Runtime/Network/WebRequest.cs:182)
0x000001583ecd90c3 (Mono JIT Code) Unity.Services.Authentication.WebRequest/<>c__DisplayClass16_0:<SendAttemptAsync>b__0 (UnityEngine.AsyncOperation) (at ./Library/PackageCache/com.unity.services.authentication/Runtime/Network/WebRequest.cs:83)
0x000001583ecd8f1b (Mono JIT Code) UnityEngine.AsyncOperation:InvokeCompletionEvent ()
0x000001584942ef08 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007ffcf408699e (mono-2.0-bdwgc) mono_jit_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/mini/mini-runtime.c:3445)
0x00007ffcf3fc8444 (mono-2.0-bdwgc) do_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3068)
0x00007ffcf3fc8530 (mono-2.0-bdwgc) mono_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3115)
0x00007ffcef3fabf4 (Unity) scripting_method_invoke
0x00007ffcef3d2983 (Unity) ScriptingInvocation::Invoke
0x00007ffcef3cdc45 (Unity) ScriptingInvocation::Invoke<void>
0x00007ffcef56b509 (Unity) Scripting::UnityEngine::AsyncOperationProxy::InvokeCompletionEvent
0x00007ffcef06c758 (Unity) AsyncOperation::InvokeCoroutine
0x00007ffcefac0f8c (Unity) UnityWebRequestAsyncOperation::InvokeCoroutine
0x00007ffcefac1181 (Unity) UnityWebRequestProto<UnityWebRequestTransport,AtomicRefCounter,RedirectHelper,ResponseHelper,DownloadHandler,UploadHandler,CertificateHandler,HeaderHelper,AsyncOperation>::Job_InvokeCoroutine
0x00007ffceefeabaa (Unity) BackgroundJobQueue::ExecuteMainThreadJobs
0x00007ffcef078cbc (Unity) `InitPlayerLoopCallbacks'::`2'::EarlyUpdateExecuteMainThreadJobsRegistrator::Forward
0x00007ffcef047fc7 (Unity) ExecutePlayerLoop
0x00007ffcef048137 (Unity) ExecutePlayerLoop
0x00007ffcef04d26f (Unity) PlayerLoop
0x00007ffcf014f22a (Unity) EditorPlayerLoop::Execute
0x00007ffcf0165be7 (Unity) PlayerLoopController::InternalUpdateScene
0x00007ffcf016799d (Unity) PlayerLoopController::UpdateSceneIfNeededFromMainLoop
0x00007ffcf0161751 (Unity) Application::TickTimer
0x00007ffcf075603a (Unity) MainMessageLoop
0x00007ffcf075bd12 (Unity) UnityMain
0x00007ff78e092fba (Unity) __scrt_common_main_seh
0x00007ffd5de47374 (KERNEL32) BaseThreadInitThunk
0x00007ffd5f09cc91 (ntdll) RtlUserThreadStart

Скриншот с двумя запущенными окнами игры: Одновременный запуск двух симуляций игры с помощью Multiplayer play mode


Ответы (1 шт):

Автор решения: Даниил Ганин

Нашел решение этой проблемы.
Нужно добавить разные тэги для двух игроков (как на скришноте).
Важно: Если вы обновляете лобби(сердцебиение/обновление данных), то надо задавать значения таймера довольно большие. Например для сердцебияния я задал 20 секунд, а для обновления данных - 60 (скопировал значения с видео: https://www.youtube.com/watch?v=zimljd4Rxr0&t=59s&ab_channel=git-amend на таймере 12:07). По идее эти значения можно будет уменьшить в релизной версии, но пока используется Multiplayer play mode значения не уменьшить.
Отклик остался довольно большим, приходится по десядку секунд ждать создания лобби или вывода списка доступных лобби, но главное, что это хотя бы работает и не вылетает таймаут.
введите сюда описание изображения

→ Ссылка