Multiple platform in one project?

Hi there,
currently I’m working with Unity and thinking about switching to UE.

How is the workflow in Unreal if you develop a game for multiple platforms? Maybe if I want to build a game for iOS, Android and Desktop (Win/Mac).

In Unity I can switch between the platforms inside my project.

When using UE you can select the compatible platforms for your project in the project settings. From android, ios, pc, html5 and consoles.

You do not need a new project for multiple platforms, you can just click a different platform when packaging.

Nice, so I can build ONE game and it works on every platform?

You can, but you’l likely want different HUD, UMG, and input configurations for PC/Console. Also performance on mobile devices is absolutely terrible, so you’ll likely not have a game that is for both mobile and another platform.

Ok, can I build multiple HUD, etc and select which should shown on which device?

Not without either having the player choose which platform they are on, or using c++ to expose the platform.

In Practice though this actually does not work as you have to setup the project for almost each platform differently. To pull all under one roof requires a stable engine and consistent configuration, but we do not have that in Unreal Engine unfortunately. Example: You can package for Android and specify in Package Settings all the needs, and then you want to package for Windows and realize you have to change the Package settings (not just the platform). The only crossplatform compability I see are the blueprint nodes being translated for each platforms correctly, but thats about it. I recommend to not mix mobile with console and desktop projects!

Just asking myself the exact same question and found this old thread. I have a project on Desktop and want to run on Mobile. Running into severe performance issues, caused by Occlusion. Playing with software occlusion and preccomputed visibility - helps a lot, now getting same bad performance, now being limited by GPU somehow.
The point is, that there are many changes in a level, and I do not see how to handle quite some stuff within a single project, as you say @Playasene94. On the other hand, there are scalability settings and device profiles to handle for example max texture sizes, there are material quality switches - all things, which seem to be exactly designed to handle multiple platforms in a single project.

The main question now coming into my mind:
How do you handle the blueprint/C++ code, if projects are completely separated?
Doesn’t this end up in a whole mess doing all work at least twice? Or endlessly migrating changes from one project to the other, which is error prone?