How to make a multiplatform game?

We have a code base working on both PC, Android, MacOS and OSX i hope. But how to make a project working on both PC and Mobile.
We need to swap some assets for different platforms, like using more simple models and materials for Mobile. Is it possible to organize project that way? Anybody was doing this?

Normally, you have some BP functions to check the current platform executing you project, after you can adjust the render settings and the quality for all platforms separately. After to adjust your materials, I think that using the Devices Profiles can be useful.

How to use devices profiles? Can I switch models with them, or only select maximum LOD? Don’t want to pack high poly LODs to mobile version.

To adjust LOD for different devices you can check this link. I think you can only adapt the LOD for each platform you have plan to deploy on instead of switching assets for each patform.

When you package for a platform, your assets are cooked for that platform.

So when they are cooked are higher LODs are thrown away? or they still take space in assets.

Still asset switching can be a must, mobile version can have completely (a little bit) different art style, more suitable for mobile games, while sharing the same code base. Ok, I setup to store source and content in different repositories, but there are still problems - first: some part of the content is a “code” (blueprints, dataassets, curves etc.) and should be shared. The other problem is - our game is heavily build around plugin based architecture, and splitting code and content of plugins to different reps would be a pain.