Surprised I haven't seen anyone else mention this

I get this problem on my phone (Galaxy S3) where the frame rate drops when the camera moves close to a mesh. This seems to occur regardless of texture and lighting settings which only seem to influence the degree to which it drops.

Has anyone else experienced something like this before?

I think because this is normal and expected behavior. Texture has not much to do here, but material (ie. shader) is probably culprit.
When you move camera close to mesh its shader fills up most of screen space if it has any complicated per pixel math it will slow down.
Also S3 is quite old hardware, I had Samsung Galaxy Tab 10.1, and anything more complicated than just diffuse color in material dropped it to 10-15 fps when shader was on most of screen.
On Galaxy S3 any light model at all will cause performance drops, so try to use unlit materials only.

Thanks but I have to ask, how is the galaxy S3 able to run games like GTA3 or even games like this

I have that game and it runs fine on my S3. I know it was built in Unity but do you think it’s possible to get similar results in Unreal?

The S3 is old but it’s still the most popular android device so I figure it’s a good target to aim for.

I dropped development of our game for android (google does not let us sell it from Iceland).
But when I still tried lowest supported hardware was Galaxy S5. On that phone I could do some kind of 3d game, but any particles or transparent material killed fps. I had 30fps without transparency.
While same game on Galaxy Tab 10.1 (about same as your s3) had 10-12fps.

Unreal is bad choice of engine if your target is current low end android hardware. Idea with this engine is to make game now for top hardware, release it in 2-3 years when such hardware will be average and most popular. (you do not make game over night)
This way you get very good game at release. Epic always had this same philosophy with engine, even on PCs. For eg. when UnrealTournament was released most of people could not play it, it took like 2-3 years for average PC to get to acceptable specs.
Same thing happened with UT3 but at that point gamers updated PC much faster.

For s3 you can do game like Tappy Chicken, forget about fps 3d shooter on S3 done in unreal engine.

But if you want try:

  • no light model at all, only unlit materials, there is topic somewhere about how to fake lights on mobile.
  • no particles that have sprites
  • no transparent materials,
  • do not use UMG, use old hud.

Agree with you.
UE4 has a slow steps in the mobile. And seems not care about the low end android too much.

So what we do ? leave this piece of art of engine and go to Unity ? i just started to learn this great engine aiming both PC and android but niow iam so disappointed here i wish epic team can make a method that let us to make a great game with great FPS.

Unreal Engine 4 is a Next-Gen Engine. Next Generation. That means for Next Generation Devices.
I’ve got Xperia Z1 Compact. When not using too complicated materials I can go with HDR lighting (even dynamic sunlight) + fake GI with a mixture of vertex colors and good material Z falloff. And it’s a phone for, like, 200 bucks?

Don’t drop Unreal just because it’s for better devices. Save some money (just like I did, I’m not a rich guy at all, I’m not even close to being middle class) and start developing having in mind that you can’t make a good game in a month. You need ten times more time to do that. And when that time passes there will be many more devices capable of running UE4 smoothly.

It’s an engine of future, not present.

I’m gonna upload a vid from my Xperia to show you how much I can get off of it in just 2 weeks. If you want I can help you a bit cause I hate when someone gives up too easily.

I agree with Z-enzyme.

The video below, showcasing my just recently published game in Android, is recorded in Xperia Z itself, that was released back in Feb 2013. vs Xperia Z1 Compact that was released in 2014

The whole UI uses UMG, and the materials is mix of unlit and lit. There’s no dynamic lighting, all are static/baked lightmap.

The game runs 20 - 60fps, depends on the current gameplay. 20 - 30fps when battling the AI, 30 - 60fps on everything else.

IMHO UE4 is a great game engine for mobile devices;now and future, as for devices from the past - well, better devices are always poping out fast everywhere, and it will be forgotten soon enough.

I devoted 8 months to UE4 because Epic promoted the engine with a flappy bird clone. Hence I assumed it would be good for producing low-demanding games which should run on low end devices. My bad.

Now i’m developing with other open source engine (cocos2d-x) and everything is smooth and I have already released two games (simple 2D games, kind of games I want to produce).

Thank you both Z-enzyme and RynerAJ for your advice i didn’t give up i saw some tips on how to make the game run in higher FPS and i know that new device can run games with better FPS but as developer we know that 80% of the market using GPU like mali 400 or worse so if you want to aim marketing then you need to make games that can run on at least 70 % of the device that people own now , i saw and i am sure you all saw the demo of epic citadel that can run smoothly on old devices like mail 400 then my question is how can we make something like that ? hope we get a sample from someone or unreal engine team who can make that kind of project with that much detail and still get same smooth as that demo that we have .

both of your project look amazing but can they run as epic citadel demo detail and with same FPS ? i think there are a lot of things we need to learn on how to make something in detail and optimized in the same time and iam new to this engine so i will ask you help later :slight_smile: thanks again .

i wish if you make an android project one day you can upload it for us here for free so we can test them in our device and see what kind of material an d lighting you used to make it smooth .

Unreal Citadel was developed in UDK, that is Unreal Engine 3.

yes you are right but they made 3d scene with very low spec needed any way i am learning now and i found many thing that were killing the FPS like the dynamic light and the post processing so the much we learn the much smooth and optimized game we can make , thanks for your advice .

Right now, mobile is probably the most difficult platform to publish to for 3D engines. If you want to develop for mobile using 3D engines you really need to dig a little deeper and understand the basics of how a GPU works, specifically pixel/fragment shaders and vertex shaders. And you need to keep an eye on the instruction count in your materials. Many popular games use a lot of clever trickery to get good looking and low cost shaders in their games.

Once you understand how shaders run, the 3D engine you’re using becomes largely insignificant. I wrote an old article on this, just understand that fragment shaders basically run for every pixel on the screen (so if the object is larger on the screen it requires running more pixel shaders, 1 for each fragment) and vertex shaders run for every vertex. Mobile performance boils down to whether or not the GPU can process all the fragment and vertex shaders in your scene.

In all engines, Unreal especially, you need to consider:

  • Vertex count of models
  • Material complexity on each model
  • Post Process effects

Comparing engines starts to become silly once you understand these things as what you’re really doing is comparing overall vertex + fragment shader instruction counts. Gee I wonder what the hardware will handle better, 1,000,000 instructions/frame or 200,000 instructions/frame:confused: The places people forget to look are usually Post Process effects which are basically running a fragment shader for the full 1920x1080 pixels, so having even a single one of these enabled can easily saturate your fragment shaders on fixed function pipelines.

Most of the mobile stuff I’ve worked on had fragment shaders that were max 28 instructions and that was too much for some devices only 1 year ago. So you can’t expect to grab one of these lovely 200 instruction materials and have it run with bloom, motion blur and all these fancy screen space shaders! For mobile you need to learn and use the profiling tools religiously, in many ways I think mobile is much harder to develop for than PC.

@ hyperdr1ve thanks for sharing your great article i am going to read it as you know we don’t know everything about everything so to be good in everything is hard , so in my opinion the unreal team need to give us a sample already done project for android games just like what they did with PC so we can easily find the step on how to make stuff with low hardware need .

I can understand wanting a good example but I honestly don’t think an example project is the solution here. The problem is that without the knowledge, the project itself will be a black box. Meaning it works but nobody knows why, the internals are a mystery. So as soon as a piece of content is added that is bad for mobile, the black box will break and the engine will be blamed, even though it’s not the engine’s fault.

It would be very difficult for an example project to convey that only independent texture fetches should be used in a material. Or that textures that are non-power of 2 are terrible because mip-maps won’t be generated. Or that precomputed visibility volumes are a necessity in an FPS. This is the realm of documentation and on that note the Mobile Game Development section of the docs should be your Bible. Especially the Performance Guidelines Section, which will essentially open up the black box and give you the what/why of mobile performance.

If you want to develop for mobile, don’t give up, anything can be learned. Just know that there isn’t a simple answer here for UE4 or any 3D engine. The complexity of the answer is a reflection of the complexity of the topic. PC is easier because desktop GPUs aren’t the size of a postage stamp with passive cooling… and stuff :slight_smile:

I didn’t give up :slight_smile: i’m trying to find the things that kill the fps in mobile and i found the light is the main issue so i am trying now to learn the tricks or alternative method to make a game without using the complex light in the game .thanks for the advice

I’m developing a 2D game and is going great. Will upload advances soon