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
    That (the build) worked. I renamed the original dll and winmd to .dll.BAK and .winmd.BAK, then copied the newly generated into the same EraAdapter folder.

    So, taking a quick stab, I copied the new DLL to my game Binaries AppX folder, figuring that since it's just a DLL it should be replaceable. Now I'm running my game in Cook-on-the-Fly Debug mode.

    [EDIT]
    That (Login) worked. Now I have a valid PlayerId

    Now I just need to get the gamertag and image and display it. . .
    Last edited by Jerry.Richards; 06-15-2017, 04:46 PM.

    Leave a comment:


  • replied
    Ok, worked out what was going on. This is related to VS2017 picking up winmd references from a SDK-version-specific subfolder of Windows Kits\10\References, but the Live Extensions SDK doesn't put its winmds in that location.

    Try this: remove the existing broken reference, edit the project xml, and add a block like the below

    Code:
        <Reference Include="Windows.Networking.XboxLive.XboxLiveSecureSocketsContract">
          <HintPath>C:\Program Files (x86)\Windows Kits\10\References\Windows.Networking.XboxLive.XboxLiveSecureSocketsContract\1.0.0.0\Windows.Networking.XboxLive.XboxLiveSecureSocketsContract.winmd</HintPath>
          <IsWinMDFile>true</IsWinMDFile>
        </Reference>
    This references the winmd directly, rather than as an 'Extension SDK', and is working for me.

    (edit)
    ...your path to Microsoft.Xbox.Services.winmd above looks about right, but note these are two separate winmd references that are needed. Microsoft.Xbox.Services.winmd for sign-in, leaderboards, etc. And Windows.Networking.XboxLive.XboxLiveSecureSocketsContract.winmd for secure networking (not used in Creators Program, but required for EraAdapter to build).
    Last edited by jsyarrow; 06-15-2017, 04:27 PM.

    Leave a comment:


  • replied
    [MENTION=494622]jsyarrow[/MENTION] - Well, I took different strategy and was able to open the EraAdapter project just by double-clicking on it. I modified the HintPath in the project file but still encountered the same error.

    Basically, I used VS2017 Open -> File -> Open With, selected XML (Text) Editor, replaced HintPath with:
    MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\ThirdParty\XSAPI\UWP\build\native\lib\x64\v140\Release\Microsoft.Xbox.Services.winmd

    Leave a comment:


  • replied
    No improvement after performing the above steps.

    [EDIT]
    According to the link https://docs.microsoft.com/en-us/uwp...ive-extensions
    we should have the following contracts:

    Code:
    Windows.Gaming.XboxLive.StorageApiContract, version=1.0.
    Windows.Networking.XboxLive.XboxLiveSecureSocketsContract, version=1.0

    Unfortunately, I don't see either of them. How can I tell if my XboxLive is working or not? I can access the services from within UE4 but my separate project is having a problem. Is it a compiler switch?
    Last edited by Jerry.Richards; 06-15-2017, 03:56 PM.

    Leave a comment:


  • replied
    That reference should be part of the Xbox Live Extensions SDK which you will have installed thanks to the GetXboxLiveSDK script. Try removing both the broken Windows.Networking.XboxLive.XboxLiveSecureSocketsContract and the Xbox Live Extension SDK references, and then readding the latter (Add reference -> Extensions).

    Leave a comment:


  • replied
    [MENTION=494622]jsyarrow[/MENTION] - I have a VS2017 solution setup for EraAdapter, and I can compile cleanly all the sources files, except one, Networking.cpp.

    Networking is referencing Windows::Networking::XboxLive namespace but I can't resolve it. I tried adding the reference
    Code:
    Windows.Networking.XboxLive.XboxLiveSecureSocketsContract
    but that didn't help, and the reference shows a caution icon next to it. Thinking that it was a compatibility issue, I tried adding it to a project with a wider range of support:
    Code:
    Build 15063
    Build 10240
    which showed the same caution icon after adding the reference. I was trying different from - to target combinations but VS2017 returned an HRESULT when trying to create the solution.

    For the EraAdapter project (15063 to 10586) the following references are present:
    Code:
    Windows.ApplicationModel.Calls.CallsVoipContract
    Windows.Devices.Printers.PrintersContract
    Windows.Foundation.FoundationContract
    Windows.Foundation.UniversalApiContract
    Windows.Graphics.Printing3D.Printing3DContract
    Windows.Networking.Connectivity.WwanContract
    Microsoft.Xbox.Services (from XSAPI path)
    Windows.Networking.XboxLive.XboxLiveSecureSocketsContract (warning icon)
    Xbox Live Extension SDK
    The other Contract references were added automatically after reopening the solution.

    Do you have any suggestions?
    Last edited by Jerry.Richards; 06-15-2017, 07:03 AM.

    Leave a comment:


  • replied
    Okay, thank you. I'll look at it more tomorrow. Trying to convert it to VS2017 first since that's what I have installed. If that fails, I reinstall VS2015 and try again.

    Leave a comment:


  • replied
    Right, I wouldn't try to add it to the UE4 sln, just build it independently and copy the binaries. I found it wouldn't open in VS2017 for some reason, but VS2015 was able to open the vcxproj. Anyway, as you fix up the MSBuild xml you'll want to deal with the HintPath in the reference to Microsoft.Xbox.Services - it's using an old path structure to locate XSAPI and will need edits to find your new Live SDK version.

    Leave a comment:


  • replied
    Originally posted by jsyarrow View Post
    (EraAdapter) may need a rebuild to pick up changes in the new Live SDK version you're using. The vcxproj is part of the fork in the OnlineSubsystemLive/ThirdParty/EraAdapter/Source folder, but it will need some tweaking to account for that XSAPI path change you ran into earlier.
    I wasn't able to add the EraAdapter project file to the UEUWP solution. Also, when I tried to double-click on it Visual Studio couldn't determine the type it is. Now I'm looking at the Xml Settings of the project to see if I can recreate a new solution for it, then add the source files for it.


    Originally posted by jsyarrow View Post
    If you get a building version, you should drop the output .dll and .winmd in the OnlineSubsystemLive/ThirdParty/EraAdapter/Binaries/UWPxx folders.
    If I understand you correctly, copy the files from a successful build to the directory listed above.

    Leave a comment:


  • replied
    That line is emitted at 'Log' level, which might be filtered out before it reaches the file. 0x80070057 is a credible code though - it is of course 'invalid parameter'.

    One thought on where this might be coming from - the EraAdapter library has some dependencies on the public interface exposed by XSAPI. It may need a rebuild to pick up changes in the new Live SDK version you're using. The vcxproj is part of the fork in the OnlineSubsystemLive/ThirdParty/EraAdapter/Source folder, but it will need some tweaking to account for that XSAPI path change you ran into earlier. If you get a building version, you should drop the output .dll and .winmd in the OnlineSubsystemLive/ThirdParty/EraAdapter/Binaries/UWPxx folders.

    Leave a comment:


  • replied
    That was funny, I was using disassembly and I came up with 0x80070057, which I don't know is correct or not:

    Click image for larger version

Name:	02.ErrorCode.01.jpg
Views:	1
Size:	270.3 KB
ID:	1129709



    But I did found the logs, a lot easier I might add, and the below shows what was available:

    Code:
    [2017.06.14-23.47.04:183][  0]LogOnline:Warning: LIVE: No SecureDeviceAssociationTemplateName specified in the engine ini file.
    [2017.06.14-23.47.04:183][  0]LogOnline:Warning: LIVE: FOnlineAchievementsLive: Failed to find json OSS achievements config: ../../../LongshotHero/Config/OSS/Live/Achievements.json
    [2017.06.14-23.47.04:677][  0]LogOnline:Warning: LIVE: FOnlineSessionLive::GetSessionSettings: couldn't find session 'Game'

    "Error in SystemUI" was not found. I'm still searching.
    Last edited by Jerry.Richards; 06-14-2017, 08:08 PM.

    Leave a comment:


  • replied
    If you're running with latest and using cookonthefly, the logs get written through the cook server connection and land in (the slightly odd) Saved/Cooked/UWP64/[Game]/UWPLocalAppData folder. With pre-cooked content they get written to the standard UWP local appdata directory: %localappdata%/Packages/[Package_Family_Name]/LocalState

    Given your symptoms, the core sign in seems to be going through (and so getting cached, preventing UI from showing up subsequently), but the follow-up operation that retrieves the user's Xbox Live profile is failing. Some of this code lives in OnlineSubsystemLive/ThirdParty/EraAdapter/Source/SystemUI.cpp and OnlineSubsystemLive/ThirdParty/EraAdapter/User.cpp.

    Leave a comment:


  • replied
    [MENTION=494622]jsyarrow[/MENTION] - the returned value for the asynchronous call is 3, which is an error:

    Click image for larger version

Name:	01.StatusCode.03.jpg
Views:	1
Size:	114.5 KB
ID:	1129708


    Given this, the PickedUser is never set. Where is the log written to? It wasn't in AppData\Local, and I didn't see it under Binaries, and Saved\Logs don't seem to have the SystemUI error in it.

    Leave a comment:


  • replied
    Originally posted by jsyarrow View Post
    To log out you can use the Windows 10 Xbox app. After logging out there and then relaunching your game it should trigger the UI again.
    That is a nice one


    Originally posted by jsyarrow View Post
    As for exceptions, note that there are some internal retry paths where the Xbox Live SDK code may throw an exception, catch it itself, and ultimately return a successful result from an API.
    Okay, that is useful information.


    Originally posted by jsyarrow View Post
    Though if you're getting a null user id it sounds as though this isn't one of those cases.
    I'll try to track this down, without this working, I can't use the services.


    Btw, the packaging worked too.

    Leave a comment:


  • replied
    Hurrah!

    That summary looks right to me. I will make sure to apply those changes next time I have a chance to get the fork updated. Thanks again for working through them with me, and your patience!

    To log out you can use the Windows 10 Xbox app. After logging out there and then relaunching your game it should trigger the UI again. There is also a method in the core Xbox Live SDK that supports changing user in-game, but there's no wrapper for it in OnlineSubsystemLive currently.

    As for exceptions, note that there are some internal retry paths where the Xbox Live SDK code may throw an exception, catch it itself, and ultimately return a successful result from an API. Though if you're getting a null user id it sounds as though this isn't one of those cases.

    Leave a comment:

Working...
X