Mobile Game Art - tips?

Polycount Sponsor
Offline / Send Message
Noth Polycount Sponsor
I was wondering if anyone here had some good input or links to resources for creating game art for mobiles. I had a friend that told me, just avoid Alpha's, they kill performance. Now, I'm not too certain about this but I was hoping to find something to either back this up or refute it, but it basically lead me to thinking maybe there are more things like this to keep in mind. Anything would be helpful. I am creating all art included, environment, props, buildings, and characters. Rigging and animation will be a collaboration, but anything to keep in mind will be helpful. Basically now I'm keeping things uber low poly and resolution, but if there are other things other than those general rules of thumb like the 'say no to alpha' thing, I'd be happy to hear. Thanks!

Replies

  • RN
    Offline / Send Message
    RN polycounter lvl 4
    It's important to know which engine that you're using.
    They usually have recommendations in the documentation.
  • renderhjs
    Not just engine but also what kind of objects, how many and possible workarounds such as other ways of achieving transparency,...

    Imo. the reason why mobile as a platform is so restricted is because of its lowest common dominating platform: and that is often your crappy cheap android phone and the iphone4 (with its retina resolution but to weak hardware to truley push it). At least at my work that's our most common low platform. The iPad 2 is also a popular platform though in some cases faster than the iPad 3 because of the lower resolution.

    For those platforms we noticed often the following as slow
    • To many textures (pack as much as possible in a single sheet & drawcall)
    • Dynamic shadows: not yet ready - though possible but just slow. Good workarounds are some trickery around shadow blobs, projected shadow meshes,...
    • transparency: sometimes cheaper is just good old vertex colors - but if it has to be texture driven: maybe 1 bit transparency
      vgh_alfa_Test.jpg

    But far from performance issues you will easier get into memory issues e.g. can't use often 4k and up textures but instead split into multiple 2k textures if you need a lot of texture memory. Also when using more complex shaders that support normal maps, specular maps,... all that is in a way a memory issue for those platforms.

    I think its not by surprise that a lot of "mobile" games come with such a simple look and that is to cater in a smart way for such a tiny hardware.

    Also always talk to your dev - he is usually the one who has to deal and debug performance matters: he might be a good source for those questions.
  • adaweawe
    Offline / Send Message
    adaweawe polycounter lvl 2
    its more about the gestures than the details
  • RN
    Offline / Send Message
    RN polycounter lvl 4
    I remembered about an article where a team reused the daylight assets under specific blending and other in-engine effects to make night time levels:
    http://joostdevblog.blogspot.nl/2014/11/using-2d-daylight-assets-to-create.html
  • BagelHero
    Offline / Send Message
    BagelHero polycounter lvl 3
    On the alpha thing, having first hand experience with a game that used a lot of it, just be careful how you use it (unless you're using a proprietary engine in which case IDK how that'll work out for you, we used Unity).
    I'd image having a model with a low poly cloak that has a texture with two holes cut out using an alpha wouldn't be too much of an issue. It's when you have like 100 things with alpha showing at once, layering on top of one another, or don't cut alpha where you have no need for it. That's when you start having problems.
    Avoid it when you have other smarter options, sure, but in my experience it's not going to kill most devices if you just use it when you need to.

    EDIT: Full disclosure, we were 2D. Meshes were used from time to time, but because of that I have trouble giving you any other "tips" haha. Good luck, btw. :)
  • passerby
    Offline / Send Message
    passerby polycounter lvl 6
    Try to reduce drawcalls with texture atlasing, keep your overdraw down by keeping tranluency sparse, render textures will kill performance bad so try to use few of them or low res ones.

    Than try to use object pooling, especially if using unity to stop stutter from the GC kicking in, and write and optimize all of your shaders. I was able to get a nice fps gain in my last mobile game by simply writing my own shaders that only use the feautures I need and allow of optimizations specific to my game.
  • Noth
    Offline / Send Message
    Noth Polycount Sponsor
    Thanks for the input all, this is helpful. We are using Unity, our Art Style is nice and stylized so I'm hoping unlit shaders with baked AO diffuse maps will look great and be cheap, I may experiment with 1bit alpha cast shadows where needed. No dynamic lighting, I don't think we'll need it, but the camera will be rotation constrained, so it might not be too bad. Might try it out. Thanks for the custom shader tip passerby, I will pass that along. I'll also research object pooling. I'm figuring Unity out as I go for this one, I'm sure I'll be back with more questions. In the mean time, thank for the infos guys.
  • Bruno Afonseca
    Online / Send Message
    Bruno Afonseca Polycount Sponsor
    Transparency needs to be used carefully. The bottleneck on those high res mobile screens is usually the fillrate.
    8-bit alpha is actually cheaper than alphatest on iOS afaik.
Sign In or Register to comment.