Hi Polycounter,
I've been making levels for PC platform. Recently,We'r downgrading same scene/assets for the mobile version now.
1) Since mobile has less resource , what are the things to be considered during this process ?
2) I had modular pieces for dungeons and caves for PC version, mobile doesn't support hardware instancing, so do I have to combine them in Maya and again reexport ?
3) If re-combined, the UV lightMapping getting smaller and smaller, that would definitely degrade the shadow quality , so whats the work around for it ?
4) Regarding Texture:
Let me explain first with an example: I've around 10-15 houses, each houses uses like 4-8 different textures(roof,brick,concrete,windows...).Is that fine ? We could combine the texture(texture atlas ?) but the problem would be these texture are also shared , so what can be done in much situation /
[P.S. We are working on Havok's Project Anarchy Engine]
Any Help/Suggestion regarding the same is highly appreciate. Since new to making level for mobile for performance issue, just abit nervous or say want to start optimizing from the start.
Do help as you guys always do
Replies
My advice would be to just port a level over to mobile as it is and see how it runs. if it doesnt run well then identify why it doesnt run well and start to optimise assets and change workflow to suit the things youve learned.
I was surprised that the latest devices can handle a lot of raw polys, they cant necessarily handle tons of textures though so be careful about that. Creating an atlas is usually necessary if you have lots of small textures so that you can use one material with one texture and shader across a lot of assets and cut down on draw calls. Also overdraw can be a massive frame rate killer so big alpha cards and post processing are usually a bad idea.
And avoid transparency if you can help it. Overdraw seems to kill mobile GPU's.
-Abt Modular piece, I have different textures.. you'r right only way to find out would be to port in mobile and experiment.. Also heard if you put them in a static mesh group it would be considered as 1 mesh(like combined) but not tested or sure abt it.
-flying Monk: sounds good, but going for android for now..
Have lots of props with lots of props seems I've redo lots of things again..
thanks guys
First is drawcalls, which is how many packages of data you are sending to GPU. Each new object and/or new material is a new drawcall. There is certain overhead associated to preparing and sending data to GPU, so too many drawcalls are generally bad.
Second is vertex/triangle count, which is how much data you are sending to GPU per frame.
Third is fill cost, which is how expensive it is for GPU to 'convert' your geometry into pixels.
I suggest doing a quick port of your game and profiling it on target device. If you have too many drawcalls, merge your meshes and use atlased textures (so that you have less objects and less materials). If vertex count is your culprit optimize actual geometry, make sure you don't have too many hard edges, UV splits. Try introducing LODs, hide faraway objects etc etc.
If you are fill bound, simplify shaders, remove heavy calculations from them, reduce or get rid of transparent geometry (overdraw).
Also, it might be possible that your graphics content is not problem at all, maybe physics calculations are eating up your processing power, maybe you have too many skinned animations, maybe gameplay scripts are not optimized. That's why profiling is crucial - optimizing things that are not bottleneck is pretty much butchering your content needlesly. I don't know what profiling tools anarchy engine has, but if you are sure GPU is going to be a problem you can always head to GPU manufacturer's site and grab their profiling tools. As far as I know iPhones have PowerVRs.
P.S. This is an artist's perspective on optimization - I'm not engineer nor programmer so this post might contain some generalizations and inaccuracies.
I'll start watching over the debug stats and will start learning the profiling tool(Havok has it, but need to learn how to use it)
Moving on to making LODs next.
Again thanks alot, other questions might arise once I start testing on mobile but pretty informed for now.
(Hoping not to sound to negative).
The success of mobile games are largely viral. It's similar to what constitutes a success on youtube.
- It's not based on quality
- It's not based on originality
- It's not based on polish
- It's based almost completely on timing (largely on a cultural level)
- Is based on an exploitation of a single mechanic, and easy to get into.
Big Budget/Big Staff publishers, to conventional indie developers are having a LOT of problems appropriating their business and marketing practices to mobile.
Neither big dollar marketing campaigns, or grass roots type indie campaigns are having trouble catching the mobile market.
The most predictable method, (from what I can tell) has been to make a successful game on PC/Console, then port it to mobile.