informa
/
3 MIN READ
Featured Blog

Optimizing Games for Low-End Devices

Developing mobile games to run great on a low-end device without compromising the experience on a high-end one can be a big challenge. Here are some tips to help you optimize your game for low-end devices.

This article was originally posted on Kongregate's Developer Blog.

One of the biggest challenges in mobile game development is having your game run great on a low-end device without compromising the experience on a high-end one. We tend to optimize and budget the best experience for our high-end devices. There are many good reasons for this: better monetization, better engagement, etc. Low-end devices seem to run away from us in scope and get poorly prioritized because of the focus on high-end devices. But they’re still important! According to a recent Mixpanel trend report, ~10% of iPhone users have an iPhone 5 or below.

Can we have older devices run the same graphics as new ones?

You simply can’t. Give your players a comparable experience across all devices. Allow them to accomplish the same core activities that your high-end users do. The experience may not be the same, but the core progression should be close.

Tips on Optimizing for Low-End Devices

  • Think about low-end devices very early on in the project. Add checkpoints to test low-end devices at a frequency or feature check-in.
  • Categorize your devices in buckets like Low, Medium, and High Quality. For example, the iPhone 6s is a High Quality device, the Samsung Galaxy 3 is low-end, etc. This list will continually fluctuate as new devices come online and technology advances. Some important things to keep in mind are device specs, chip sets, video memory, video cards, etc.
  • Leverage the built-in Quality Settings in Unity. You can find it under Edit->Projects->Quality. Remember you can add/remove as many levels as you like. Customize it for your needs. I’d recommend going with three total: Low, Medium, and High. Unity has a bunch of controls you can tune per bucket. This is very helpful for a 3D game, but not so much on 2D.
  • Deliver different assets based on the device quality. High-end devices get HD; low-end ones get standard. This will help with memory footprint and performance (better FPS and fewer low-memory crashes). You can leverage iOS’s app-thinning technology or Unity’s asset bundles for this as well.
  • Run your game through different code paths based on the quality settings. For example, your dialogs may animate in/out when they dismiss. On low-end devices, you may want to disable the animations.
  • Disable masks and alpha. They can put a heavy tax on your frames per second.
  • Be prepared to make game-specific calls such as, "Which animations should I disable? What PFX should I enable/disable? Should I disable sound?"
  • Lower concurrent HTTP connections for low-end devices. They usually have fewer CPU threads to work with. Also, make fewer HTTP connections in general, since they hurt your battery life.
  • Create custom shaders for low-end devices. Limit extra passes and functionality. As an example, a low-end user can still function in your game without having an outline around him when selected.
  • Use your game engine's profiler to find hot spots on performance. Make sure to run it on the low-end device.

Feel free to reach out to me by leaving a comment below -- I’d be more than happy to share any data or code snippets we have.


Siavash Ghamaty is the VP of Engineering at Ultrabit/Kongregate. He loves big engineering challenges. When he's not racking his brain, he loves eating Mexican food and fantasizing about being an interior designer in his spare time.

Latest Jobs

Cryptic Studios

Remote
1.19.23
Senior Producer

Anne Arundel Community College

Arnold, MD, USA
1.30.23
Instructor/Assistant Professor, Game Art

Night School Studio

Los Angeles, CA, USA
1.09.23
Level Designer / Scripter, Games Studio
More Jobs   

CONNECT WITH US

Explore the
Subscribe to
Follow us

Game Developer Job Board

Game Developer Newsletter

@gamedevdotcom

Explore the

Game Developer Job Board

Browse open positions across the game industry or recruit new talent for your studio

Browse
Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Subscribe
Follow us

@gamedevdotcom

Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more