In our upcoming “Ask Epic”, we’ll take your questions on mobile development in UEFN right here on the EDC. Topics may include how to design and optimize for mobile play, getting started with our recently launched mobile-specific tools (Mobile Preview and Custom Input & Touch Control), working with smaller screens, touch-interface considerations, and more. Post your questions before December 16 at 12PM ET to get help from our experts!
Team members will join us on the EDC forums on December 18 from 11AM to 12PM ET to answer your posted questions.
Ask Epic Guidelines:
Use the Reply button at the bottom of this post to submit your questions.
Please read existing questions to ensure yours hasn’t already been asked.
Do not reply to anyone else’s post. Replies will come from Epic team members.
If you want to discuss a related topic, please create a new thread.
Our experts will not be able to answer every question. They will also not be able to provide direct support for questions specific to your islands or account.
Please do not share any personal information in your post.
Posts that don’t follow these guidelines may be removed.
What % of the Fortnite playerbase is actually playing on Mobile?
How can we balance Mobile & higher-end platform optimizations?
Favoring one over the other will make either look or run worse.
Will UEFN experiences ever be able to manage their own Mobile UI?
ie. HUD Controller device does mostly nothing on Mobile. We shouldn’t be forced to design UI around Fortnite’s default clutter
What should the ‘baseline’ mobile device used for benchmarking performance be?
Latest iPhones and low-end Androids can both play Fortnite, so which one should we ‘optimize’ for?
Why does Fortnite on mobile vs any other platform have such differences in terms of UI? (e.g. a mobile player can literally pick any ui element and hide it or move it, even vehicle hud elements, while on any different platform we’re still waiting for dedicated hud controller flags to be added to do the same.)
If Fortnite is considered “mobile first”, then why is UEFN enforcing higher level geometry by enforcing Nanite to always be baked with every mesh? (e.g. a simple poly mesh that has multiple LOD levels doesn’t need an extra nanite geometry, that’s just extra overhead that is consuming the 400mb cooked size, which is already very small in certain situations.) To clarify, I’m not talking about the ability to disable nanite on a mesh component, but to disable nanite completely on a mesh asset.
Do the asset folders in the Content Browser represent individual asset bundle (or even sometimes grouped into the same bundle)?
ex: TipTop Terrace. Walls/nature/prop/etc. Separate bundles? One bundle with multiple folders?
The reason I ask is:
If I use the following in the same map, am I pulling down a bunch of extra unused assets on the download, and/or having to unpack and load extra assets into memory that I’m not actually using during gameplay?:
beefjerky log
FNEC log
Hades log
Hera log
willow log
pretzel log
Just trying to be efficient with asset use…. obviously there’s a greater risk of them also not using the same materials or being able to batch properly if pulled from separate sets.
As a follow up: if I AM using all Beefjerky assets, and they look like they’re sharing materials, DO they batch? or is that something I don’t need to worry about?
Question: Why don’t we have in scene tap events yet?
Big oversight imo, we don’t even have click events in UEFN for mouse click events, even though click/tap events come standard in UE5, even UE4 had this 5+ years ago.
It should have been the first feature on launch of mobile support. There were years to prepare for this given legal issues stalling mobile.
I am adding custom UI to my island which only displays information (doesn’t support interaction).
Where do you recommend to add it to the screen to work on all devices? The corners are typically already taken by Fortnite UI unless I disable one of them. I am guessing top center, bottom center, center left, and center right are my options.
Is there a way to customize the positioning of custom UI based on input method? Touch input tends to require the bottom left and right of the screen.
Is there a way to customize the positioning of custom UI based on screen ratio? Bottom center is great for wide screens, but center left/right may be better for 4:3 screens.
Is there a way to react to UI scale in Verse? I am building my UI based on default scale, but if the player scales their UI up or down, it would be nice if my UI reacts accordingly.
my question is a bit general but, is there talk about fixing ui bugs srrounding umg conditions it is a major issue facing manny players, including me which is making me delay gamedevelopment, and also is there talks about unifing ui between all platforms including mobile?
We see evidence of some experiences running out of memory on mobile platforms which can result in a crash, so in that sense memory would be the most important. That being said, drawcalls are also an important consideration in order to reduce load on the CPU/GPU to avoid throttling and bad performance. I recommend exercising care with the size of textures, and I would encourage contined use of streaming textures as well as mip-mapping to help on the memory front. For drawcalls, overall reduction of the “things” in your world will always help – even if things work great on PC and high end consoles, just be mindful of how your experience scales for mobile and low end platforms…
Scalability is key; the core engine does a great job of balancing assets between platforms.
For your levels, using World partition or Data layers, along with assets to break the line of sight, reduces the number of assets rendered at any given time.
For user-created content, building an asset that fully leverages the engine’s default behaviors. For textures and materials, this means ensuring they are streamable, mip-mapped, and using default compression settings. For meshes, this can be a mix of ensuring they are optimized in terms of vertex and triangle counts. Not going overboard with the polgyon count Nanite or non-nanite. Making sure LODs are created and have a minimum LOD set.
Reducing the number of draw calls is a great way to optimize for lower-spec hardware without sacrificing high-end platforms. One can reduce their draw calls by grouping objects into a single mesh rather than a ton of smaller objects. Similarly grouping materials to the smallest number too. Example: if there is a desk with 20 small items on it that do not need to move. Instead of having 20+ meshes and 20+ materials, export that group as a single mesh and combine it into a small handful of Materials. This can reduce draw calls, allowing all devices to run more efficiently and get the best experience.
Memory: large textures and or large meshes. Memory is usually very limited on mobile devices, so this is a big consideration.
Drawcalls: too many assets and/or with too many materials – this makes for more work for the GPU.
CPU: a lot of animated objects (not WPO) will be demanding on the CPU for example, so while mobile CPUs have gotten so much better, additional loads on the CPU can still create hitches and throttling.
We’re actively working on improvements to UI systems in UEFN for all platforms, including mobile. This work will allow developers to better realize their UI vision on mobile and all other platforms.
Mobile is unique in that players have access to the HUD Layout Tool (HLT) to allow customizing touchscreen buttons and the positions of a limited set of “default” HUD elements. The HLT is an important feature that allows players to customize their gameplay experience to meet their individual needs. UI Systems improvements for UEFN includes adapting the HLT to better suite the diverse needs for third-party games while still supporting the default HUD that UEFN inherits.
We generally recommend placing custom UI on the left side of the screen, such as the top, middle, or bottom, depending on the type of UI you are designing and the features you have enabled. Other areas, such as the bottom right or bottom center, are more likely to be affected by Fortnite HUD elements, depending on the platform. Testing across multiple platforms and aspect ratios is recommended to ensure reliable placement for your custom UI.
Currently, custom UI positioning can’t be adjusted based on input method. We understand this limitation and are looking at ways to improve it.
We are actively optimizing how assets are managed, so the folder structure doesn’t always represent how assets are packaged behind the scenes. In some cases assets are located in the base install, and sometimes they are included in plugins, but this is all in a state of flux as we continue to make optimizations… To give you a concrete aswer, when referencing something from a plugin, it will download the entire plugin, but in terms of run-time memory it will only load what is referenced.
In terms of your follow-up, there may be a couple of different meanings to batching. For all the assets in a plugin, those will be downloaded together. In terms of rendering, there is a form of batching which is particularly important for mobile rendering where drawcalls are economized by batching assets sharing a material instance. In the latter sense there is a level of batching that happens and this continues to be an area we will continue to improve in the future.
Epic is committed to improving our engine and platform to address the needs on mobile. With that being said, UEFN experiences continue to be enjoyed across several platforms including PC and new generation consoles that can take advantage of Lumen and Nanite for higher visual fidelity. At least on BR, even nanite meshes tend to be fairly conservative, so there’s definitely a balance and a need to have Epic and creators have a thoughtful use of nanite geometry.