Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 15 Feb 2013
Offline Last Active Today, 03:49 AM

Posts I've Made

In Topic: Unity 5 or Unreal engine 4

09 March 2015 - 06:17 AM

I am a noob, so my opinion might not matter much. I have only spent a week on trying out UE4 / Unity.


I have been wondering the same question the past week since both became more accessible and both free versions offer so much. I am making mobile game, so I spent some time getting something simplistic working, like custom camera that I would need. My basis of choosing unity was because it seemed to be more mobile friendly, and worked faster on my mobile phone. Until yesterday when I decided to let my friend test out something simple I made, the speed the game ran on my friends phone was quite unexpected compared to my nexus 5. The performance was just terribad, and I have been trying to revalue of things.


I personally have liked more Unreal Engines "openness". The debugging tools just feel phenomenal, not saying that unitys profiler is bad either, it is really good, but I like the fact that i can run console commands on mobile phone. Out of a box I feel like unreal offers a bit more than unity does, and the fact that you can actually export your assets out of unreal makes me feel more safe about it. Like if I made stuff with unity, there is no way to just possibly pull my project out of unity if I suddenly for example felt like source 2 would be the thing I really want to develop on. I have a strong feeling that in Source2 you can use C++. The truth is though, that I know that both of the engines are massive over kill for my small 3d game.


I like watching youtube videos for learning things, and unity has so much material in the internet. The bad thing about it is though, that most of it is out dated, although a lot of stuff has remained over the time, but a lot has changed as well.


Where I feel that unity works like charm is for importing stuff from blender to unity. With UE4 it seems bit more complicated to get working armatures from blender, but I am quite confident it will improve over time.


In my personal opinion somehow I feel to be more in control on UE4 than Unity. Also my gut feeling is that team collaboration works better in UE4 than Unity, but that probably doesn't matter to solo developers like us.


In the end it comes down to personal liking, for me my liking has started to lean more towards UE4 for some unexplained reason, although they both seem very capable for pretty much everything. Maybe my reason for going UE4 road is just having weird feeling of being a bit more safe with UE4, like the whole Free vs Pro with Unity has some possibility of being problematic for in the future, if I end up having a bigger team than going solo. I cannot really describe this fully with words.

In Topic: Looking for 3d engine suggestions for android+windows development.

04 March 2015 - 05:27 AM

Now that Unity 5 personal edition has most of the limits that have been stopping me from using unity, gone, I decided to run my test on unity as well. I put 121 units like before, boom 60 fps on unity on my mobile (Nexus 5). I pumped it up to 15x15 clones of same unit, fps starts to drop, where as in urho it still running at 60 fps. I bump this up to 400 units, 20x20 and unitys fps drops to 20, where as on urho runs at 40. I figured there is probably something that I am missing, so I check the options for unity, btw I had removed all shadows and stuff like that before, so I was only drawing the animated mesh. Finally I try to remove hw skinning, and fps goes up to 40, same as on urho. This makes me wonder if the ue4 mobile version of my test iis ounded by gpu skinning on my mobile (the fps was higher on unity/urho with 4x amount of animated units). Sadly I didn't find a way to turn of gpu skinning for my mesh in ue4 to test it out.


Also this means that most likely my test itself, like I've suspected, is bit faulty by using a lot of copies of one animated mesh. Basically it would be something like rts-type of a thing, where there are tons of simple clone units moving on a screen without having any other components like AI or navigational mesh for path finding involved. I have no idea how different would it be if all my meshes were different and/or used different skeleton for deforming.


Edit: I spent couple of hours trying to figure out the UE4 and mobile. I noticed there is a console command stat anim, that I can use to see animation things. On there it says "RefreshBoneTransforms" 25ms and SkinnedMeshCompTick = "28"ms, rest of the things were under 10ms. I chekced cpustalls, and it only showed wait for an event a lot of time and a lot of calls and sleep some time, few calls.

In Topic: Looking for 3d engine suggestions for android+windows development.

03 March 2015 - 10:41 AM

So UE4 came out and is free now. I was eager to test out my test on performance on my android... and it was worse than libgdx, cocos2dx, unity and urho3d...


Most likely there is something wrong with my model, settings with UE4, maybe I would need to figure out how to batch animated models with ue4 to get the performance up.


So what I had was: I used the nothing scene, setup mobile, scalable and no starting content. I generated blue print that spawns 100 animated objects. The mesh was imported from blender and uses 1 diffuse texture. The ue4 engine added some specular lightning to objects though, which might explain some of the performance.  Each model has somewhat of 1.1k faces, 13 bones and no ik-rig. It ran roughly 30 fps, before the processor started to slow down the process down to 17fps. The draw calls were something like 120, so most likely it doesn't use more than 1 draw call per mesh.


So I guess ue4 isn't my silver bullet to fast mobile graphics without any need to know optimize things either. Although I am pretty sure it is something to do with the configurations I have. I tried to disable just about everything from the render options except culling.

In Topic: Architecture vs Performance [Android game]

01 March 2015 - 05:35 PM

I would probably test out how much you can even output tiles per frame. From what I've tried before using sprite batches on libgdx for example, on my android (Nexus5) I can spam around 10k tiles per frame. So basically as long as you try to avoid changing textures in middle of drawing you should be all good.


If you really are worried about the speed of your solution, you might want to make sure that you try to avoid cache misses, in other words from quick glance swap the for loops around, so that it loops y, and x inside y. So for(y ... ) { for( x ... } }, when you are using tiles[ x + y * tilesX ]. I am not even sure how much difference it would make.

In Topic: Looking for 3d engine suggestions for android+windows development.

12 February 2015 - 06:16 PM

I suppose these past few days have really showed to me how thin my knowledge about 3d is.


I did notice that urhos profiler is really nice, but after playing around with different engines and testing stuff, I realised that what I measured was not exactly what I should be measuring. There were many things said about draw calls, and I figured 1 draw call per model is not so bad and 130 draw calls would be fine.


I noticed that in both libgdx and cocos2dx both I think one of the problems for the slow downs is actually animation. If I use non-animated objects I can put a lot more of those, which made me try more vertices per bone. I subsurfaced my model 2 times, so it had 16 times the verticles in blender. So in blender I had 12530 triangles, which seems to become close to 40k triangles.


So I tried rendering 121 40k triangle animated mesh, to my surprise the fps dropped to around 15 from 30 on cocos2dx, and to 15 from the roughly 50 fps without shadows and 40 with shadows on urho and on libgdx the fps remained 11 like what it was with the old mesh. I guess adding even more triangles would make them all equal, when it fully uses the whole capacity on rendering.


So my conclusion is, that the speed doesn't seem to be issue as long as I understand why the slow downs do happen. Also I am sorry if someone else who has been reading the posts and my own tests have drawn wrong kind of conclusions from my wrong kind of testing methods. At least I myself am now more aware of this.