XBOX ONE UWP performance?

  • digitalsoapbox What kind of numbers are you guys talking about? In Crystal Brawl, on player input (so characters start moving) it drops maybe 2-5fps. I figure this is normal due to the extra physics and animations kicking in. No particularly noticeable hitch to me. Are you guys seeing much greater frame drops?

  • BTW folks, i've started a thread on the Microsoft Dev Center forums regarding the Falls Update Expanded Memory Resource for HTML5 based apps if anyone interested.

  • Cryptwalker Nice, I also added a reply.

    FYI, this subforum is Xbox specific:

    https://social.msdn.microsoft.com/Forum ... boxlivedev

  • digitalsoapbox What kind of numbers are you guys talking about? In Crystal Brawl, on player input (so characters start moving) it drops maybe 2-5fps. I figure this is normal due to the extra physics and animations kicking in. No particularly noticeable hitch to me. Are you guys seeing much greater frame drops?

    It occurs where there are no physics at all, where there are no animations, and with no objects responding to player input. As soon as player input occurs, every second or so, even after input has stopped, there is an obvious hitch.

    For example:

    Spawn a small sprite with no animations (just a green square, for example), behaviors, or shaders off-screen to the right every second or so, and move them across screen to the left (self.X = self.X - 100*dt), deleting them when X position < 0 + self.Width/2. Make sure the Gamepad object is in the project. As soon as there is player input, repeated hitching will start. With so little going on, it's had to justify any framerate dip at all, and because it only happens after player input, it's unlikely that it's connected to anything going on in-game outside of the input.

    The issue, as I said earlier, is also noticeable on desktop Edge, though it takes a heavier load to become more pronounced that I'm fairly certain is not connected to anything that has to do with physics. In Sombrero, which is much heavier than the above example, all physics run fine and there are no hitches in framerate until player input starts (though performance is overall much lower than in NW.js).

    UPDATE 11/13/2017: The latest Dev Beta OS released to Devkits over the weekend reduces the issue somewhat, but it's still there. Seems Microsoft is working on the gamepad issue.

  • digitalsoapbox What kind of numbers are you guys talking about? In Crystal Brawl, on player input (so characters start moving) it drops maybe 2-5fps. I figure this is normal due to the extra physics and animations kicking in. No particularly noticeable hitch to me. Are you guys seeing much greater frame drops?

    So just wanted to give an update on my progress with this. I decided to test a much smaller project of mine on Xbox and it actually ran really smoothly (which confirmed for me that it wasn't really a UWP problem or C2 problem necessarily, but that it's the code in my game that is not optimized for it.) So I made a copy of my project to be designated as the "Xbox Version" and started going through and removing all code and objects in my game that were unnecessary. For example, it was initially designed with PC in mind, so I had code for keyboard/mouse controls as well as gamepad controls. I have since removed everything that had to do with keyboard/mouse, and also removed any "Has Gamepads" check, since I know on Xbox I do not need to check if they have gamepads connected, since they always will. Since I removed all of that, I've seen significant performance increases and it no longer hangs up on player input. It still isn't quite good enough to be playable as there are still some performance drops every few seconds, but it's definitely way better. I can't really say if it was the keyboard/mouse code specifically that was causing the issue or just the fact that I made my project smaller, but either way I was able to resolve it for my game.

  • ^ Addition to this:

    I've gotten my game to the point where it runs very well for the most part. During real-time combat with enemies it might be between 45-50 fps but any other time it's steady 60 fps. The only issue is I get a little stutter every few seconds, and it will drop from say 60fps to 52fps for just a split second, but the stutter is pretty noticeable. This even happens in the main menu which has very little code/objects. It has done this not only on the Xbox but also in Edge sometimes on my PC. Anybody else experience this?

  • ^ Addition to this:

    I've gotten my game to the point where it runs very well for the most part. During real-time combat with enemies it might be between 45-50 fps but any other time it's steady 60 fps. The only issue is I get a little stutter every few seconds, and it will drop from say 60fps to 52fps for just a split second, but the stutter is pretty noticeable. This even happens in the main menu which has very little code/objects. It has done this not only on the Xbox but also in Edge sometimes on my PC. Anybody else experience this?

    I have it sometimes even running games with dedicated graphic card on PC.

    But it is not like 60fps to 52fps if is pretty noticeable it is like 60fps to 20fps and it comes back to 60fps.

    Even if it happens from a second it means 40 frames dropped, it is a lot but from 60fps to 52fps it is not that bad it is hard to see...

    After 30fps is hard for us to see diference.. Sometimes it looks like that for a second it freeze and comes back.

  • klabundee

    Interesting.. mine isn't that bad, and it only happens on Xbox and occasionally in Edge, but runs perfectly fine in Chrome and as a desktop app. But yeah, even though a drop to 52fps isn't too bad, the stutter is still pretty noticeable.

  • As long as your collisions don't need to be precise/you aren't making a platformer or fighter or shooter, it should be fine to drop a frame here or there.

    Players will notice it, but I don't expect performance of Construct 2+ to improve further than what everyone's reporting here unless it switches export to a C++ into Emscripten/ASM.JS method (basically the web version of assembly language). It's more likely to happen with Construct Classic (which is: never) since it's already in Visual C++, but for C2+ the plugins and entire engine are written on (mostly) hand-made JavaScript already, so it doesn't convert to ASM.JS

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • ^ Addition to this:

    I've gotten my game to the point where it runs very well for the most part. During real-time combat with enemies it might be between 45-50 fps but any other time it's steady 60 fps. The only issue is I get a little stutter every few seconds, and it will drop from say 60fps to 52fps for just a split second, but the stutter is pretty noticeable. This even happens in the main menu which has very little code/objects. It has done this not only on the Xbox but also in Edge sometimes on my PC. Anybody else experience this?

    Yes, I mentioned this exact issue that seems to be Edge-related earlier in the thread. It's hard to know if the root of the issue is the C2/3 engine or Edge, but so far has seemed (to me) C2/3-specific.

  • I put together a little test that shows the issue pretty clearly. It's not connected to any gamepad/keyboard input (or at least, that's not the only issue), collision checks are minimal, etc. Testing in the Edge browser on XB1 is comparable to performance when exporting to UWP.

    Just drag the slider to make sprites move faster/slower as they spawn in.

    http://site.pixelmetal.com/temp/Project3/

    It seems like even a stripped-down simple endless runner has performance issues that are Construct-specific on a platform that has more than enough power to run them. That's...disappointing. Note that performance is exactly the same w/ the shadows turned off, so that's not the issue. Despite claims to the contrary, the dropped frames are very obvious and are likely to cause gameplay issues in anything approaching a fast-paced game.

    Based on other tests, it seems to be something in Construct itself, as similar issues do not occur with phaser and a few other html5-based engines that can be tested through Edge on XB1. Wouldn't hurt if someone at Scirra took a look at the built-in profiler in Edge, there are obvious spikes in canvas compositing causing the hitches to occur, especially if they're going to claim XB1 as a supported platform...it has a much bigger install base than the Wii U ever did, so more people are more likely to see how well it's supported as a platform. Would be a shame if Construct got a rep as a continually shoddy engine for consoles, assuming they're looking for more developers to use the engine.

  • FYI I'm using VS2017 with C2, so that's working fine. I've given this tip to numerous people, but maybe the reason the .sln doesn't open is because of the target SDK version. Open the .jsproj file in Notepad, search for <TargetPlatformVersion>, and replace the 10240 with whatever SDK you have installed (14393, 15063, 16299, etc.) Make sure to leave the last number at .0 so it becomes 10.0.16299.0 etc. You can leave the <TargetPlatformMinVersion> at 10240. Save the file and then try to open the .sln in VS2017 again.

    @StudioMercato THANK YOU!!!! - this info was definitely helpful!

    im still having no luck getting my game onto the console.. keep getting the following error

    DEP6953: Failed to launch remote debugger with the following error: 'Command failed: 0x800705b4'.

    any insight would be much appreciated!

  • Why this error occurs, when I try to run the game in Visual Studio 2015, using remote computer (XBOX)?

    "Before starting the project, you must make its deployment"

    The IP of the console I made. Tick the "deployment" is enabled. And the game is running on the local computer.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)