Giter Site home page Giter Site logo

playfab / mpsagent Goto Github PK

View Code? Open in Web Editor NEW
47.0 16.0 25.0 688 KB

Azure PlayFab Multiplayer Servers LocalMultiplayerAgent project and helper libraries

Home Page: https://docs.microsoft.com/en-us/gaming/playfab/features/multiplayer/servers/

License: MIT License

C# 94.88% PowerShell 0.63% HTML 1.52% JavaScript 0.13% CSS 0.22% SCSS 0.22% TypeScript 2.40%
multiplayer game servers

mpsagent's Introduction

mpsagent's People

Contributors

andhesky avatar brianwp3000 avatar chris-gong avatar dependabot[bot] avatar dgkanatsios avatar dylanh724 avatar emmanuel-jr avatar emmayspark avatar ivanlh avatar jordan-playfab avatar jotavalenciano avatar jseward avatar kerdrek avatar lesterbjackson avatar maryammadzadeh avatar nassosterz-ms avatar pgilmorepf avatar pmcgannon22 avatar ravarnamsft avatar sarahwangsw avatar tculotta avatar toniasanzo avatar valexao avatar yegarci avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mpsagent's Issues

Build instructions produce a dll rather than an exe

When I was building a particular commit, I noticed that the given command in the README didn't give me an exe.

I was able to get an exe by running dotnet publish. This did put the output in a somewhat annoying place, and I'm not familiar with .NET

Linux heartbeat endpoint and server id not configured error

Hello, I recently opened a github issue fixing this exact error for a windows process server https://github.com/PlayFab/gsdk/issues/149, but have since moved to linux containers for the cost advantages.
Having gotten past the cross compiling from windows to linux, deploying an image with WSL 2 on ubuntu 20.04 LTS, and deploying it to playfab servers I got an "unhealthy too many restarts" error on the server.

after going through a few issues with a plugin "nat" on setup.ps1 and wrapper setups I realized the documentation for verifying containerization through MpsAgent seems to not specify which directions are for windows processes and containers and which are for linux processes and containers, as following the steps in lcow.md for linux containers I was able to get all the way to the point of running the server successfully through localmultiplayeragent with docker setup.
My only problem is that I am now, yet again getting the error of "Heartbeat endpoint and Server id are required configuration values". Having had a friend who knows docker help me troubleshoot all day, we still couldn't figure out any of the issues using the fixes I had already used for windows processes.

The only thing I can assume is relative and absolute filepaths are also being an issue here? but I have even less experience with linux and docker than anything else so I'm slightly out of my element

Dockerfile.txt
MultiplayerSettings.txt
PF_ConsoleLogs.txt
gsdkConfig.txt

Add support for Mac

Customer PR:
#30

This PR was old and was never integrated. It also contained changes that would negatively affect non-Mac platforms so it couldn't be merged. But it illustrates that it should not be a lot of work to add Mac support.

RegionConfigurations.VmSize not deserialized/parsed correctly

New CreateBuild Feature

RegionConfigurations override VmSize is not deserialized/parsed correctly from the BuildSettings.json file. BuildRegionParams has VmSize with type AzureVmSize however, VmSize is deserialized as a string so returns null

What we could do:

  • In our PlayFab C# SDK, we may want to add to BuildRegionParams class
...
[JsonProperty("AzureVmSize")]                // new addition
[JsonConverter(typeof(StringEnumConverter))] // new addition
public AzureVmSize? VmSize;
...

This could be applied to any other parameters we deserialise/serialise as JSON

  • Or create an AgentInterfaces class(eg. BuildRegionDetails.cs). It will basically be a duplicate of PlayFab.MultiplayerModels.BuildRegionParams but local to LocalMultiplayerAgent

No upload progress bar asset files

There are currently no upload progress bars for game asset files.
In attempt to create a build, assets files that have not been uploaded to Azure Blob are uploaded. How long it takes for upload to complete could be completely variable.
It may be helpful for users to see updates of the progress that their files go through

LocalMultiplayerAgent should validate StartGameCommand

LocalMultiplayerAgent should validate StartGameCommand both for processes/containers on Windows/Linux.

  1. It should check if the StartGameCommand starts with the MountPath (for container mode).
  2. It should check if the executable/script of the StartGameCommand exists in the assets .zip file

DeploymentMetadata not being passed into gdskConfig.json and Docker container's environment

When passing in the DeploymentMetadata in the MultiplayerSettings.json, this does not end up being passed down when creating the gdskConfig.json or ever end up getting passed into the container when it is started.

In LocalMultiplayerAgent/Config/MultiplayerSettings.cs, this code block creates the SessionHostStartInfo, which is in creating the JSON configuration. In creating the JSON configuration.

        public SessionHostsStartInfo ToSessionHostsStartInfo()
        {
            // Clear mount path in process based, otherwise, agent will kick into back-compat mode and try to strip the
            // mount path from the start game command before running 
            AssetDetail[] assetDetails = AssetDetails?.Select(x => new AssetDetail()
            {
                MountPath = RunContainer ? x.MountPath : null,
                LocalFilePath = x.LocalFilePath
            }).ToArray();

            var startInfo = new SessionHostsStartInfo
            {
                AssignmentId = $"{VmConfiguration.GetGuidFromTitleId(TitleIdUlong)}:{BuildId}:{Region}",
                SessionHostType = RunContainer ? SessionHostType.Container : SessionHostType.Process,
                PublicIpV4Address = "127.0.0.1",
                FQDN = "localhost",
                HostConfigOverrides = GetHostConfig(),
                ImageDetails = RunContainer ? ContainerStartParameters.ImageDetails : null,
                AssetDetails = assetDetails,
                StartGameCommand = RunContainer ? ContainerStartParameters.StartGameCommand : ProcessStartParameters.StartGameCommand,
                PortMappingsList = PortMappingsList
            };

            return startInfo;
        }

This block in VmAgent.Core/Interfaces/SessionHostConfigurationBase.cs that creates the JSON references the DeploymentMetadata type, but, since it is never passed down properly, it doesn't include it in the created config file.

        private void CreateNewGSDKConfigFile(int instanceNumber, string sessionHostUniqueId, Dictionary<string, string> certThumbprints, IDictionary<string, string> portMappings, string agentEndpoint, VmConfiguration vmConfiguration, string logFolderId)
        {
            string configFilePath = Path.Combine(VmConfiguration.GetConfigRootFolderForSessionHost(instanceNumber),
                VmDirectories.GsdkConfigFilename);
            _logger.LogInformation($"Creating the configuration file at {configFilePath}");
            GsdkConfiguration gsdkConfig = new GsdkConfiguration
            {
                HeartbeatEndpoint = $"{agentEndpoint}:{VmConfiguration.ListeningPort}",
                SessionHostId = sessionHostUniqueId,
                VmId = vmConfiguration.VmId,
                LogFolder = GetLogFolder(logFolderId, vmConfiguration),
                CertificateFolder = vmConfiguration.VmDirectories.CertificateRootFolderContainer,
                SharedContentFolder = vmConfiguration.VmDirectories.GameSharedContentFolderContainer,
                GameCertificates = certThumbprints,
                BuildMetadata = _sessionHostsStartInfo.DeploymentMetadata,
                GamePorts = portMappings,
                PublicIpV4Address = _sessionHostsStartInfo.PublicIpV4Address,
                FullyQualifiedDomainName = _sessionHostsStartInfo.FQDN,
                ServerInstanceNumber = instanceNumber,
                GameServerConnectionInfo = GetGameServerConnectionInfo(instanceNumber)
            };

            string outputJson = JsonConvert.SerializeObject(gsdkConfig, Formatting.Indented, CommonSettings.JsonSerializerSettings);

            // This will overwrite the file if it was already there (which would happen when restarting containers for the same assignment)
            _systemOperations.FileWriteAllText(configFilePath, outputJson);
        }

This results in no metadata being passed through.

Wrong PF_SERVER_LOG_DIRECTORY environment variable on linux

The value of PF_SERVER_LOG_DIRECTORY is /data/GameLogs/ on a deployed MPS linux container, but when you run the same container using LocalMultiplayerAgent the value of PF_SERVER_LOG_DIRECTORY is /data/GameLogs\ (the two values are not interchangable).

Support running LocalMultiplayerAgent on MacOS

Currently LocalMultiplayerAgent runs on Windows and Linux. We are planning to add a feature for MacOS users! If you would like to contribute, feel free to submit any PR to make it work!

Docker for Windows Container are not reachable outside host

I enabled firewall for LocalMultiplayerAgent and allowed the inbound traffic for all the docker application but I got a connection attempted failed error.

I checked Windows Defender Firewall and saw multiple same apps created - Docker Desktop Backend, Inbound Firewall, and game server exe.

I fixed the issue after I deleted the apps in Windows Defender Firewall and set both private and public network enabled again for the localMultiplayerAgent but we need to look into why multiple apps created and connection was failed.

Error running Setup.ps1

Hey, I'm trying to start up a docker container with your LocalMultiplayerAgent.exe and before running it i'm supposed to run ./Setup.ps1, but I get the following errors:
Creating new subnet 172.19.0.0/16 with gateway 172.19.0.11
Error response from daemon: plugin "nat" not found
Network creation for 172.19.0.0/16 / 172.19.0.11 failed.
Creating new subnet 172.20.0.0/16 with gateway 172.20.0.11
Error response from daemon: plugin "nat" not found
Network creation for 172.20.0.0/16 / 172.20.0.11 failed.
Creating new subnet 172.21.0.0/16 with gateway 172.21.0.11
Error response from daemon: plugin "nat" not found
Network creation for 172.21.0.0/16 / 172.21.0.11 failed.

I looked up the error response and found some comments saying the nat driver has been removed from docker as of 2.2.0.0. Is there some other way to start this server?

Thanks

Adding logging for "game not found" bug

In summary, if a user is testing their game.exe but the file is not found, there is no logging done currently to make the user aware of the issue. This PR focuses on Windows-based processes.

I've added functionality to a separate CollectLogs() method within ProcessRunner.cs that is only called if the process failed to start. If the game starts successfully, no log file is created in the destination directory. If the game fails, a file with the exception message is created in the destination directory.

To test:

  1. You can use the MultiplayerSettings.json used in MpsSamples. Edit "OutputFolder" path with a local folder path of your choosing. Edit "StartGameCommand" to have a game.exe that does not exist (i.e. nonExistent.exe).
  2. Delete LocalMultiplayerAgentPublishFolder.
  3. Choose LocalMultiplayerAgent as your Startup Project.
  4. Create breakpoint at try{} catch{} blocks for _processWrapper.Start(...) on line 65 and 70, respectively, within ProcessRunner.cs.
  5. Select LocalMultiplayerAgent as Build, and begin Debug.
  6. Check file called PF_ConsoleLogs.txt was created in destination directory with helpful log that tells you "The system cannot find the file specified.".

Please let me know if you have any recommendations or better courses of actions. Just trying to get my first PR in and understanding this new environment :)

Bad PF_ConsoleLogs.txt when running linux containers

The console output from a container is saved to PF_ConsoleLogs.txt so that developers can download it from a server archive. Here's an example of a line from a real PF_ConsoleLogs.txt:

{"log":"BASH=/bin/bash\n","stream":"stdout","time":"2021-05-21T21:48:24.125665596Z"}

This is that same line from PF_ConsoleLogs.txt when the container is run in LocalMultiplayerAgent:

��������BASH=/bin/bash

Ideally the log would be formatted the same in LocalMultiplayerAgent, but even getting rid of the unknown characters would be a huge improvement--as it stands VSCode has trouble even opening the file because it can't recognize those characters.

GSDK_CONFIG_FILE environment variable not set for GSDK when running locally

I'm trying to follow the guide (Debug your server) to debug my Unreal Engine dedicated server locally. When I run LocalMultiplayerAgent.exe it exits shortly after waiting for heartbeats. My game log prints out

Heartbeat endpoint and Server id are required configuration values

It seems to come from this line in the Unreal GSDK plugin. It's expecting the GSDK_CONFIG_FILE environment variable to be set to the gsdkConfig.json generated at the start of LocalMultiplayerAgent.exe and it's not.

I tried working around it by manually setting my GSDK_CONFIG_FILE environment variable to a gsdkConfig.json generated by a previous run of LocalMultiplayerAgent.exe. When running my dedicated server exe that gets me past the error and it seems to run indefinitely. When running LocalMultiplayerAgent.exe it still exits prematurely and the game log has the same line about the heartbeat endpoint and server ID being required configuration values.

I tried restarting the Windows Terminal thinking I just needed to refresh the environment variables, but same behavior from LocalMultiplayerAgent.exe. I don't know how LocalMultiplayerAgent.exe is running my dedicated server .exe that it doesn't find my GSDK_CONFIG_FILE environment variable in that case.

I've also tried running LocalMultiplayerAgent.exe as administrator and while the output looks different it's the same result. It exits prematurely and I see that error in my game log.

Multiple Build Fail Errors

Tried to follow your instruction:

git clone https://github.com/PlayFab/MpsAgent.git
cd LocalMultiplayerAgent 
dotnet build

But got these errors.
Output:

  Determining projects to restore...
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.VisualStudio.Web.CodeGeneration.Tools (>= 1.0.1)' for '.NETCoreApp,Version=v2.2'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'Microsoft.NET.Test.Sdk (>= 16.7.1)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'FluentAssertions (>= 5.7.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces\AgentInterfaces.csproj : error NU1100: Unable to resolve 'NETStandard.Library (>= 2.0.3)' for '.NETStandard,Version=v2.0'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Microsoft.NET.Test.Sdk (>= 16.1.1)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'MSTest.TestAdapter (>= 2.1.2)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'Docker.DotNet (>= 3.125.4)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces\AgentInterfaces.csproj : error NU1100: Unable to resolve 'Docker.DotNet (>= 3.125.4)' for '.NETStandard,Version=v2.0'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Moq (>= 4.11.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'MSTest.TestFramework (>= 2.1.2)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces\AgentInterfaces.csproj : error NU1100: Unable to resolve 'Newtonsoft.Json (>= 12.0.3)' for '.NETStandard,Version=v2.0'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'Microsoft.ApplicationInsights.AspNetCore (>= 2.17.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'MSTest.TestAdapter (>= 1.4.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'Newtonsoft.Json (>= 12.0.3)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces\AgentInterfaces.csproj : error NU1100: Unable to resolve 'protobuf-net (>= 3.0.29)' for '.NETStandard,Version=v2.0'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'Mono.Posix.NETStandard (>= 1.0.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'System.Linq (>= 4.3.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces\AgentInterfaces.csproj : error NU1100: Unable to resolve 'protobuf-net.Grpc (>= 1.0.123)' for '.NETStandard,Version=v2.0'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'MSTest.TestFramework (>= 1.4.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'Docker.DotNet (>= 3.125.4)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'Newtonsoft.Json (>= 12.0.3)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces\AgentInterfaces.csproj : error NU1100: Unable to resolve 'System.ComponentModel.Annotations (>= 4.7.0)' for '.NETStandard,Version=v2.0'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Docker.DotNet (>= 3.125.4)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'Polly (>= 7.1.1)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces\AgentInterfaces.csproj : error NU1100: Unable to resolve 'System.Threading.Tasks.Extensions (>= 4.5.4)' for '.NETStandard,Version=v2.0'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'protobuf-net (>= 3.0.29)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.Mvc.Versioning (>= 4.0.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'System.Diagnostics.PerformanceCounter (>= 4.7.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'protobuf-net.Grpc (>= 1.0.123)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Microsoft.Extensions.Logging.Debug (>= 3.0.0-preview5.19227.9)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'protobuf-net (>= 3.0.29)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 3.0.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'System.ComponentModel.Annotations (>= 4.7.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'protobuf-net.Grpc (>= 1.0.123)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Newtonsoft.Json (>= 12.0.3)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'System.Threading.Tasks.Extensions (>= 4.5.4)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'protobuf-net (>= 3.0.29)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'protobuf-net.Grpc (>= 1.0.123)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'System.ComponentModel.Annotations (>= 4.7.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'System.Threading.Tasks.Extensions (>= 4.5.4)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'System.ComponentModel.Annotations (>= 4.7.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Microsoft.ApplicationInsights.AspNetCore (>= 2.17.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'System.Threading.Tasks.Extensions (>= 4.5.4)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Mono.Posix.NETStandard (>= 1.0.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Polly (>= 7.1.1)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'System.Diagnostics.PerformanceCounter (>= 4.7.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Microsoft.NETCore.App.Ref (= 3.1.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'Microsoft.NETCore.App.Ref (= 3.1.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Microsoft.WindowsDesktop.App.Ref (= 3.1.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent.UnitTest\LocalMultiplayerAgent.UnitTest.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.App.Ref (= 3.1.10)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'Microsoft.WindowsDesktop.App.Ref (= 3.1.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\VmAgent.Core\VmAgent.Core.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.App.Ref (= 3.1.10)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'Microsoft.NETCore.App.Ref (= 3.1.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'Microsoft.WindowsDesktop.App.Ref (= 3.1.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\AgentInterfaces.Tests\AgentInterfaces.Tests.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.App.Ref (= 3.1.10)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Docker.DotNet (>= 3.125.4)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.Mvc.Versioning (>= 4.0.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.Extensions.Logging.Debug (>= 3.0.0-preview5.19227.9)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 3.0.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Newtonsoft.Json (>= 12.0.3)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'protobuf-net (>= 3.0.29)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'protobuf-net.Grpc (>= 1.0.123)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'System.ComponentModel.Annotations (>= 4.7.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'System.Threading.Tasks.Extensions (>= 4.5.4)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.ApplicationInsights.AspNetCore (>= 2.17.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Mono.Posix.NETStandard (>= 1.0.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Polly (>= 7.1.1)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'System.Diagnostics.PerformanceCounter (>= 4.7.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Docker.DotNet (>= 3.125.4)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.Mvc.Versioning (>= 4.0.0)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.Extensions.Logging.Debug (>= 3.0.0-preview5.19227.9)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 3.0.0)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Newtonsoft.Json (>= 12.0.3)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'protobuf-net (>= 3.0.29)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'protobuf-net.Grpc (>= 1.0.123)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'System.ComponentModel.Annotations (>= 4.7.0)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'System.Threading.Tasks.Extensions (>= 4.5.4)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.ApplicationInsights.AspNetCore (>= 2.17.0)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Mono.Posix.NETStandard (>= 1.0.0)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Polly (>= 7.1.1)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'System.Diagnostics.PerformanceCounter (>= 4.7.0)' for '.NETCoreApp,Version=v3.1/linux-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Docker.DotNet (>= 3.125.4)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.Mvc.Versioning (>= 4.0.0)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.Extensions.Logging.Debug (>= 3.0.0-preview5.19227.9)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 3.0.0)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Newtonsoft.Json (>= 12.0.3)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'protobuf-net (>= 3.0.29)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'protobuf-net.Grpc (>= 1.0.123)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'System.ComponentModel.Annotations (>= 4.7.0)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'System.Threading.Tasks.Extensions (>= 4.5.4)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.ApplicationInsights.AspNetCore (>= 2.17.0)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Mono.Posix.NETStandard (>= 1.0.0)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Polly (>= 7.1.1)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'System.Diagnostics.PerformanceCounter (>= 4.7.0)' for '.NETCoreApp,Version=v3.1/win-x64'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.NETCore.App.Ref (= 3.1.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.WindowsDesktop.App.Ref (= 3.1.0)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.NETCore.App.Runtime.linux-x64 (= 3.1.14)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.NETCore.App.Runtime.win-x64 (= 3.1.14)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.WindowsDesktop.App.Runtime.win-x64 (= 3.1.14)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.App.Runtime.linux-x64 (= 3.1.14)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.App.Runtime.win-x64 (= 3.1.14)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.NETCore.App.Host.win-x64 (= 3.1.14)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.NETCore.App.Host.linux-x64 (= 3.1.14)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\LocalMultiplayerAgent\LocalMultiplayerAgent.csproj : error NU1100: Unable to resolve 'Microsoft.AspNetCore.App.Ref (= 3.1.10)' for '.NETCoreApp,Version=v3.1'. [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]
C:\Program Files\dotnet\sdk\5.0.202\NuGet.targets(131,5): error : Value cannot be null. (Parameter 'path') [E:\UnityPrototypes\UnityMirror\LocalPlayfab\MpsAgent\MpsAgent.sln]

Build FAILED.

MpsAgent fails when StartGameCommand is not empty

MpsAgent incorrectly adds Windows specific prefix "cmd /c " to StartGameCommand on Linux Containers (with -lcow flag).
Upon inspection of the source, it seems that the code uses SystemOperations to get the host operating system, but this fails when using -lcow as the container is Linux while the host is Windows. This springs up more issues with properties like GameWorkingDirectory.

As an example this configuration:

{
    "RunContainer": true,
    "OutputFolder": "C:\\src\\LocalMultiplayerAgentPublish\\output",
    "NumHeartBeatsForActivateResponse": 10,
    "NumHeartBeatsForTerminateResponse": 60,
    "TitleId": "ABC123",
    "BuildId": "00000000-0000-0000-0000-000000000000",
    "Region": "EastUs",
    "AgentListeningPort": 56001,
    "ContainerStartParameters": {
        "ImageDetails": { 
            "Registry": "docker.io",
            "ImageName": "ubuntu",
            "ImageTag": "18.04"
        },
        "StartGameCommand": "sleep 100"
    },
    "PortMappingsList": [
        [
            {
                "NodePort": 80,
                "GamePort": {
                    "Name": "http",
                    "Number": 80,
                    "Protocol": "TCP"
                }
            }
        ]
    ],
    "SessionConfig": {
        "SessionId": "731f8b7a-a90d-4e74-b78e-79ff22177f07",
        "SessionCookie": null,
        "InitialPlayers": []
    }
}

results in the error:

fail: PlayFabLocalMultiplayerAgent[0]
      Failed to start container based host with instance number 0. Exception: Docker.DotNet.DockerApiException: Docker API responded with status code=BadRequest, response={"message":"OCI runtime create failed: container_linux.go:370: starting container process caused: exec: \"cmd /c sleep 100\": stat cmd /c sleep 100: no such file or directory: unknown"}
         at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response, IEnumerable`1 handlers)
         at Docker.DotNet.DockerClient.MakeRequestAsync(IEnumerable`1 errorHandlers, HttpMethod method, String path, IQueryString queryString, IRequestContent body, IDictionary`2 headers, TimeSpan timeout, CancellationToken token)
         at Docker.DotNet.ContainerOperations.StartContainerAsync(String id, ContainerStartParameters parameters, CancellationToken cancellationToken)
         at Microsoft.Azure.Gaming.VmAgent.ContainerEngines.DockerContainerEngine.<>c__DisplayClass16_0.<<StartContainer>b__0>d.MoveNext()
      --- End of stack trace from previous location where exception was thrown ---
         at Microsoft.Azure.Gaming.VmAgent.TaskUtil.TimedExecute[T](Func`1 action, MultiLogger logger, String eventName, String metricName, Int64 elapsedThreshold)
         at Microsoft.Azure.Gaming.VmAgent.ContainerEngines.DockerContainerEngine.StartContainer(String containerId)
         at Microsoft.Azure.Gaming.VmAgent.ContainerEngines.DockerContainerEngine.CreateAndStart(Int32 instanceNumber, GameResourceDetails gameResourceDetails, ISessionHostManager sessionHostManager)
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Azure.Gaming.LocalMultiplayerAgent.MultiplayerServerManager.CreateAndStartContainerWaitForExit(SessionHostsStartInfo startParameters)
   at Microsoft.Azure.Gaming.LocalMultiplayerAgent.Program.Main(String[] args)
   at Microsoft.Azure.Gaming.LocalMultiplayerAgent.Program.<Main>(String[] args)

I tried making a quick fix PR but seems to require reworking more than a few lines in order to avoid breaking other features. This seems to stem from SystemOperations being used for both the host (reading writing files) and the host (parsing paths in configuration).

Run with docker servers

In the PlayFab management console we can specify a Docker image.

Following this getting started guide it says that we should package the server as a zip folder rather than a docker image. And then update the LocalFilePath in the MultiplayerSettings.json file to point to the zip folder.

Is there support for using a docker image as opposed to a zip folder? or is it on the road map?

Local Multiplayer Debugging Stopped Working, Can't Figure Out Why

I have followed all the relevant guides, and I cannot get this to work again. It worked a couple of times and then stopped working, I have no idea why. I have re-installed windows, the playfab editor extension, the sdk, tried in different projects, everything, it will not work. Here is a link to a video where I include everything I think is necessary. From what I've seen, the GSDK_CONFIG_FILE Not Defined error and the other error go away once the container is running but for me it persists even once I have the container running; so that may have something to do with it. If theres any other logs or files you need me to send I can send them. Here is a copy of the logs from the container server build logs. The logs show that "%Server Started From Agent Activation" which means my game and the server build are communicating, so I don't see what's causing the issue.

SessionHostInfo is null

Captur
Hi there! i was just using the local multiplayer agent with docker, everything seemed to work fine, until i reach this error, the multiplayer json have the paths and the data right, i don't understand at all as i'm still learning about this debug process for validating the gsdk, it would be great if i can get tips on this.

here is how i start GSDK on the server app "I may have to do something else":
Captur2

My editor is a kawai fest.
Thanks!

Support for certificates with passwords

We currently do not support certificates that have passwords (both in testing with LocalMultiplayerAgent and attempting to creating a build)

public X509Certificate2(string fileName, string password);
public X509Certificate2(string fileName, SecureString password);

We need to find a way to pass the certificate password as a variable. A user environmental variable is one way this could be done, or dynamically asking user for input

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.