Announcement

Collapse
No announcement yet.

Unreal Engine 4 is available for Win10 UWP app dev now

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    I changed the decimal value for Title Id to hex, without the leading 0x, and retrying.

    Leave a comment:


  • replied
    That would show up in the Visual Studio output window during the deploy step (might need to select Deploy explicitly in the Show output from combo). It should also show up in the Unreal Editor output log window when running in-editor deployment. It really should be fatal, but I guess it's not, and on initial inspection it's the only code path I see where xboxservices.config gets created but not filled in.

    Leave a comment:


  • replied
    Originally posted by jsyarrow View Post
    0 bytes for xboxservices.config is not a good sign. Does your output by any chance contain an error something like "Xbox Live Title Id was not in a recognized format. Specify a 32 bit hex number (without leading 0x)"?
    That is funny, because it does ring a bell. Where would I see the message? In the Log\files or Output window?

    EDIT: I see it in the Output window


    Originally posted by jsyarrow View Post
    As for the Appx/Engine folder, that is created as part of the Visual Studio Deploy step. Build on its own wouldn't create one.
    Yes, I noticed that above

    Leave a comment:


  • replied
    0 bytes for xboxservices.config is not a good sign. Does your output by any chance contain an error something like "Xbox Live Title Id was not in a recognized format. Specify a 32 bit hex number (without leading 0x)"? As for the Appx/Engine folder, that is created as part of the Visual Studio Deploy step. Build on its own wouldn't create one.

    Leave a comment:


  • replied
    After starting the debugger, the APPX folder was generated, and it does have the two files of interest present:

    AppX\xboxservices.config (0 KB)
    AppX\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\ThirdParty\XSAPI\UWP\build\native\lib\x64\v140\release\Microsoft.Xbox.Services.dll (9,778 KB)
    AppX\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\ThirdParty\XSAPI\UWP\build\native\lib\x64\v140\release\cpprest140_uwp_2_8.dll (1,310 KB)

    And stepping through FOnlineSubsystemLive::Init() threw an Unhandled Exception:

    Click image for larger version

Name:	LiveException.jpg
Views:	1
Size:	137.9 KB
ID:	1129270

    Leave a comment:


  • replied
    Originally posted by jsyarrow View Post
    - have you provided your title id and scid in the UWP platform settings? These are what back the XboxLiveAppConfiguration instance you're trying to load on that line.
    Yes, and the information is saved across sessions.

    Originally posted by jsyarrow View Post
    - does your output package layout (in [Project]/Binaries/UWP64/AppX, or [Project]/Saved/StagedBuilds/UWP64) contain an xboxservices.config? This is the file from which that title id and scid are actually read at runtime.
    I cleaned the UWP64 binaries folder and rebuilt. Appx isn't there, but debug executable is UWP64-Debug.exe. More importantly (I think) is that the xboxservices.config has a file size of 0 bytes. Is this okay?

    Originally posted by jsyarrow View Post
    - does your output package layout contain the file Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\ThirdParty\XSAPI\UWP\build\native\lib\x64\v140\release\Microsoft.Xbox.Services.dll?
    After deleting the binaries and performing a Build from within VisualStudio there is no Engine folder. It may have been there before though. Let me perform a complete rebuild. . .but it will take some time to perform.

    Originally posted by jsyarrow View Post
    - does your output appxmanifest.xml contain a block like the below (note in particular the element for Microsoft.Xbox.Services.XboxLiveAppConfiguration)
    Yes, AppxManifest.xml is present (7 KB), and it from a cursory view it looks the same. I will take a detail look at it in a moment. But I can confirm the following are present:

    Code:
    		<Extension Category="windows.activatableClass.inProcessServer">
    			<InProcessServer>
    				<Path>Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\ThirdParty\XSAPI\UWP\build\native\lib\x64\v140\release\Microsoft.Xbox.Services.dll</Path>
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.XboxLiveContextSettings" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.System.XboxLiveUser" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerSessionReference" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.System.TitleCallableUI" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Social.SocialGroupConstants" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Social.ReputationFeedbackItem" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.XboxLiveAppConfiguration" ThreadingModel="both" />
    				:
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.System.XboxLiveServicesSettings" ThreadingModel="both" />
    			</InProcessServer>
    		</Extension>

    Leave a comment:


  • replied
    That should be enough. Things to check:

    - have you provided your title id and scid in the UWP platform settings? These are what back the XboxLiveAppConfiguration instance you're trying to load on that line.
    - does your output package layout (in [Project]/Binaries/UWP64/AppX, or [Project]/Saved/StagedBuilds/UWP64) contain an xboxservices.config? This is the file from which that title id and scid are actually read at runtime.
    - does your output package layout contain the file Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\ThirdParty\XSAPI\UWP\build\native\lib\x64\v140\release\Microsoft.Xbox.Services.dll?
    - does your output appxmanifest.xml contain a block like the below (note in particular the element for Microsoft.Xbox.Services.XboxLiveAppConfiguration)

    Code:
    		<Extension Category="windows.activatableClass.inProcessServer">
    			<InProcessServer>
    				<Path>Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\ThirdParty\XSAPI\UWP\build\native\lib\x64\v140\release\Microsoft.Xbox.Services.dll</Path>
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.XboxLiveContextSettings" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.System.XboxLiveUser" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerSessionReference" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.System.TitleCallableUI" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Social.SocialGroupConstants" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Social.ReputationFeedbackItem" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.XboxLiveAppConfiguration" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.UserStatistics.RequestedStatistics" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerQualityOfServiceMeasurements" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Tournaments.TournamentTeamResult" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerSessionCapabilities" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Tournaments.TournamentReference" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerRoleInfo" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerRoleType" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerSession" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerGetSessionsRequest" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerQuerySearchHandleRequest" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.MultiplayerSearchHandleRequest" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Presence.PresenceData" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.TitleStorage.TitleStorageBlobMetadata" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.XboxLiveContext" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.XboxLiveHttpCall" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Multiplayer.Manager.MultiplayerManager" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Privacy.PermissionIdConstants" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.Social.Manager.SocialManager" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.ServiceCallLoggingConfig" ThreadingModel="both" />
    				<ActivatableClass ActivatableClassId="Microsoft.Xbox.Services.System.XboxLiveServicesSettings" ThreadingModel="both" />
    			</InProcessServer>
    		</Extension>
    Last edited by jsyarrow; 06-08-2017, 06:40 PM.

    Leave a comment:


  • replied
    Do I need anything in DefaultEngine.ini:

    [/Script/Engine.GameEngine]
    !NetDriverDefinitions=ClearArray
    +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")

    [OnlineSubsystem]
    DefaultPlatformService=OnlineSubsystemLive

    Leave a comment:


  • replied
    Originally posted by jsyarrow View Post
    Do you know the specific exception type? Perhaps ClassNotRegistered?
    Let me try to get it. It looked odd given that it appeared to be a simple assignment.

    Leave a comment:


  • replied
    Do you know the specific exception type? Perhaps ClassNotRegistered?

    Leave a comment:


  • replied
    I have OnlineFramework disabled. My setup is as follows:

    Code:
    	PublicDependencyModuleNames.AddRange(new string[]
            {
                "Core",
                "CoreUObject",
                "Engine",
                "InputCore",
                "InputDevice",
                "AIModule",
                "GameplayTasks",
                "UMG",
                "XmlParser",
                "OnlineSubsystem"
            });
    
            // Uncomment if you are using Slate UI
            PrivateDependencyModuleNames.AddRange(new string[]
            {
                "Slate",
                "SlateCore"
            });
    
            //DynamicallyLoadedModuleNames.Add("OnlineSubsystemLive");

    It was throwing an exception in FOnlineSubsystemLive::Init()

    Code:
    		// [MENTION=59935]A[/MENTION]TG_CHANGE : BEGIN 
    		ApplicationConfig = XboxLiveAppConfiguration::SingletonInstance;
    		// [MENTION=59935]A[/MENTION]TG_CHANGE : END

    Leave a comment:


  • replied
    OnlineFramework depends on ICMP, which doesn't have a complete UWP implementation at the moment. Are you sure you need OnlineFramework? If so, you may have to fill in some gaps yourself. The Windows desktop implementation (in ICmpWindows.cpp) will almost certainly be a good start - it may even just work.

    You shouldn't need OnlineSubsystemLive in your build.cs either - just enabling the plugin should be sufficient. Though I doubt that's causing your hang.

    That line from the server spew is, unfortunately, not very useful. Can you get the output from the client by running it under the VS debugger?
    Last edited by jsyarrow; 06-08-2017, 06:14 PM.

    Leave a comment:


  • replied
    I'm having a couple of issues:

    1. If I enable the Online Framework with Online Subsystem, I get unresolved externals for HtoNS, and others.

    2. When I enable Online Subsystem, and OnlineSubsystemLive, the debugger connects to the Cook Server, but the game doesn't get past the splash screen. The logs does contain some information, which may not be useful:

    [2017.06.08-21.05.33:146][ 0]LogFileServer : Display: Client Client For UWP connected.
    Last edited by Jerry.Richards; 06-08-2017, 05:49 PM.

    Leave a comment:


  • replied
    Actually, I forget to enable the Online Subsystem Live plugin. But now I'm getting an unresolved external NtoHS from the UDPEchoImpl class. Searching for it fails too.

    Leave a comment:


  • replied
    When I include OnlineSubsystemLive in my Build.cs, while debugging, my game doesn't load, it hangs at the splash icon being displayed. Is my setup below correct?

    Code:
    PublicDependencyModuleNames.AddRange(new string[]
            {
                "Core",
                "CoreUObject",
                "Engine",
                "InputCore",
                "InputDevice",
                "AIModule",
                "GameplayTasks",
                "UMG",
                "XmlParser",
                "OnlineSubsystem"
            });
    
            // Uncomment if you are using Slate UI
            PrivateDependencyModuleNames.AddRange(new string[]
            {
                "Slate",
                "SlateCore",
                "OnlineSubsystem"
            });
    
            DynamicallyLoadedModuleNames.Add("OnlineSubsystemLive");

    Additionally, in DefaultEngine.ini I have the following:

    Code:
    [OnlineSubsystem]
    DefaultPlatformService=OnlineSubsystemLive

    Leave a comment:

Working...
X