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

    What are the technical / coding hurdles for running UE4 on a Hololens?

    Will we ever see UE4 for it? Is it UWP, the Hololens API or a mix of both to get it working? Are there any devs out there working on it already?

    Don't like to use Unity for an AR project. ;-)

    Comment


      [MENTION=5350]Jerry.Richards[/MENTION] - the samples are written against the standard C++ version of XSAPI (headers + static lib, usable from C++ only), rather than its WinRT projection (winmd + dll, usable from any WinRT language). The appearance is slightly different because each version conforms to the typical style of its target platform, so XSAPI C++ looks rather like something you might see in std::, whereas XSAPI WinRT looks much like WinRT components in the Windows SDK. It is certainly possible that the difference is a source of bugs, but it's not that one version is right and the other is wrong. OnlineSubsystemLive is set up to use the WinRT version, and switching would require substantial modifications to the existing code.

      [MENTION=828801]Sparkash[/MENTION] - that does look very much like an older version of the UI. The relevant code is mostly here. That should then get compiled into UE4Editor-UWPPlatformEditor.dll. Seems like there must be something stale somewhere there. That said, if you've got something working now it might not be worth tracking down the problem. The stuff you're missing is primarily changes intended to make it easier to get started.

      [MENTION=10630]MaSe87[/MENTION] - I'd recommend taking a look at the dev_MixedReality branch. There's lots of work going on in there, but it should have some of the basics for developing a HoloLens app in place.

      Comment


        [MENTION=494622]jsyarrow[/MENTION] - I've been testing with the xbox-live samples, and the xbox-live-winRT scenarios, which as you may know are two different codebases. The winRT tests are aligned with the UE UWP. From my testing, using MS code, I encountered three errors/problems with Stats. The first problem, oddly enough, affected the Leaderboard Results:

        Code:
            LeaderboardQuery^ Query = ref new LeaderboardQuery();
            //Query->SkipResultToMe = true;
            Query->MaxItems = 100;
            Query->Order = SortOrder::Descending;
            mgr->GetLeaderboard(LiveContext->User, StatName, Query);
        Uncomment the SkipResultToMe line and results are not returned.

        Please check your Inbox for me info.

        Comment


          [MENTION=494622]jsyarrow[/MENTION] - Do you by chance know how I would callback into the user code after getleaderboard values are returned?
          Attached Files
          Last edited by Jerry.Richards; 07-27-2017, 02:23 PM.

          Comment


            Trying to compile, and I am getting the following message:

            '/FU' requires an argument

            Click image for larger version

Name:	Capture.PNG
Views:	1
Size:	11.8 KB
ID:	1131639

            I am running a fresh install of VS2015 U3.

            I can successfully compile UE4 from github, but the UWP version is giving me this issue.

            TIA!

            Update: Reverted to Visual Studio 2015 update 2, and applied Windows SDK 10.0.14393.795 suggested by [MENTION=494622]jsyarrow[/MENTION] in a previous reply and successfully compiled
            Last edited by iicolsandersii; 07-28-2017, 10:10 AM. Reason: fixed the issue.

            Comment


              For anyone that may be looking for an UE Leaderboard example the UE ShooterGame may be a good starting point. You can download it using the Epic Games Launcher, near the end of the Learn tab, under the Games section. A few example code snippets are below:

              Code:
              ShooterLeaderboars.h
              
              // these are normally exported from platform-specific tools
              #define LEADERBOARD_STAT_SCORE				"Score"
              #define LEADERBOARD_STAT_KILLS				"Frags"
              #define LEADERBOARD_STAT_DEATHS				"Deaths"
              #define LEADERBOARD_STAT_MATCHESPLAYED		"MatchesPlayed"
              
              /**
               *	'AllTime' leaderboard read object
               */
              class FShooterAllTimeMatchResultsRead : public FOnlineLeaderboardRead
              {
              public:
              
              	FShooterAllTimeMatchResultsRead()
              	{
              		// Default properties
              		LeaderboardName = FName(TEXT("ShooterAllTimeMatchResults"));
              		SortedColumn = LEADERBOARD_STAT_SCORE;
              
              		// Define default columns
              		new (ColumnMetadata) FColumnMetaData(LEADERBOARD_STAT_SCORE, EOnlineKeyValuePairDataType::Int32);
              		new (ColumnMetadata) FColumnMetaData(LEADERBOARD_STAT_KILLS, EOnlineKeyValuePairDataType::Int32);
              		new (ColumnMetadata) FColumnMetaData(LEADERBOARD_STAT_DEATHS, EOnlineKeyValuePairDataType::Int32);
              		new (ColumnMetadata) FColumnMetaData(LEADERBOARD_STAT_MATCHESPLAYED, EOnlineKeyValuePairDataType::Int32);
              	}
              };
              
              class FShooterAllTimeMatchResultsWrite : public FOnlineLeaderboardWrite
              {
              };

              Code:
              SShooterLeaderboard.cpp
              
              
              void SShooterLeaderboard::ReadStats()
              {
              	StatRows.Reset();
              
              	IOnlineSubsystem* const OnlineSub = IOnlineSubsystem::Get();
              	if (OnlineSub)
              	{
              		IOnlineLeaderboardsPtr Leaderboards = OnlineSub->GetLeaderboardsInterface();
              		if (Leaderboards.IsValid())
              		{
              			// We are about to read the stats. The delegate will set this to false once the read is complete.
              			LeaderboardReadCompleteDelegateHandle = Leaderboards->AddOnLeaderboardReadCompleteDelegate_Handle(LeaderboardReadCompleteDelegate);
              			bReadingStats = true;
              
              			// There's no reason to request leaderboard requests while one is in progress, so only do it if there isn't one active.
              			if (!IsLeaderboardReadInProgress())
              			{
              				ReadObject = MakeShareable(new FShooterAllTimeMatchResultsRead());
              				FOnlineLeaderboardReadRef ReadObjectRef = ReadObject.ToSharedRef();
              				bReadingStats = Leaderboards->ReadLeaderboardsForFriends(0, ReadObjectRef);
              			}
              		}
              		else
              		{
              			// TODO: message the user?
              		}
              	}
              }

              Comment


                Just wanted to give an update, that I was successfully able to compile the editor, and package my game into a UWP .appx.

                I was also able to switch my Xbox One over to DevMode, and upload my game for play testing!

                Thank you all so much for your posts, there were all a huge help!
                Last edited by iicolsandersii; 07-28-2017, 02:50 PM.

                Comment


                  Originally posted by iicolsandersii View Post
                  Just wanted to give an update, that I was successfully able to compile the editor, and package my game into a UWP .appx.

                  I was also able to switch my Xbox One over to DevMode, and upload my game for play testing!

                  Thank you all so much for your posts, there were all a huge help!
                  Glad to learn of your success

                  Comment


                    I've encountered a linking order issue when running of a UWPx64 build via the UAT command line tool. Specifically,

                    Code:
                    dxguid.lib(d3d10guid.obj) : error LNK2005: IID_ITextStoreAnchorSink already defined in uuid.lib(textstor_interface.obj)
                    dxguid.lib(d3d10guid.obj) : error LNK2005: IID_ITextStoreACPSink already defined in uuid.lib(textstor_interface.obj)
                    dxguid.lib(d3d10guid.obj) : error LNK2005: IID_IAnchor already defined in uuid.lib(textstor_interface.obj)
                    dxguid.lib(d3d10guid.obj) : error LNK2005: IID_ITextStoreACP already defined in uuid.lib(textstor_interface.obj)
                    dxguid.lib(d3d10guid.obj) : error LNK2005: IID_ITextStoreAnchor already defined in uuid.lib(textstor_interface.obj)
                    D:\mygame_416_uwp_merge\engine\Engine\Binaries\Win64\CrashReportClient.exe : fatal error LNK1169: one or more multiply defined symbols found
                    I found this forum post which suggested that library link order was the problem. The only relevant inclusion of uuid.lib seems to be in UEBuildWindows.cs:818. Manually including a library dependency for dxguid.lib right before it seemed to resolve my issue. Obviously this solution isn't ideal though. Is there a better way to force library include orders?

                    Strangely I don't get the error when I run builds from within the editor.

                    Comment


                      Originally posted by iicolsandersii View Post
                      Just wanted to give an update, that I was successfully able to compile the editor, and package my game into a UWP .appx.

                      I was also able to switch my Xbox One over to DevMode, and upload my game for play testing!

                      Thank you all so much for your posts, there were all a huge help!
                      Awesome! Thanks for keeping us in the loop. Always comforting when a developer shares their success. As others are able to build, please share here too.
                      Tech Evangelist & video game person at Microsoft | @DaveVoyles
                      Other games I've created and my UnrealScript tutorials
                      Author: UnrealScript Game Programming Cookbook

                      Comment


                        When I run WACK on my shipping package, I get the following error -

                        Code:
                        API D3D12SerializeVersionedRootSignature in d3d12.dll is not supported for this application type. MyGame-UWP64-Shipping.exe calls this API.
                        I can't see a direct call to this function anywhere in the source, and I've even got DX12 disabled in Win10 UWP builds (via the bUseD3D12RGI flag in UWPTargetSettings). Any thoughts on where this is coming from and how I can remove it?

                        Comment


                          That API is part of the d3dx12 helper header, here in the source tree.

                          If you don't ever want to use DX12 for UWP then you can try removing the customization here that brings it in as a dependency. If you did want DX12 for UWP you should get in touch with your Microsoft rep about this issue.

                          Comment


                            Is support for Windows Mixed Reality headsets available with this fork or somehow else?

                            Comment


                              Originally posted by wjakobczyk View Post
                              Is support for Windows Mixed Reality headsets available with this fork or somehow else?
                              The dev_MixedReality branch of this fork has work-in-progress support for Windows MR headsets. Be aware that support is still early and there's lots of active development going on in that branch.

                              Comment


                                Is there a way to test the Xbox Live services with test accounts that are not Xbox Live accounts?

                                As you may know, on the Dev Portal, under the Xbox Services page there is a link to enter Xbox Test accounts. It implies that these are established Xbox Live accounts. Is there any other option that doesn't involve purchasing additional accounts?

                                I'm trying to test my Leaderboards and obviously would like a variety of (test) gamers to test with.

                                Comment

                                Working...
                                X