Best Practices for Mobile Game Developers and Artists
Arm Developers
The Samsung Developers team works with many companies in the mobile and gaming ecosystems. We're excited to support our friends, Arm, as they bring timely and relevant content to developers looking to build games and high-performance experiences. This Best Practices series will help developers get the most out of the 3D hardware on Samsung mobile devices.
Developing games is a true cross-disciplinary experience for developers, requiring both technical and creative skills to bring their gaming project to life. But all too often, the performance and visual needs of a project can be at odds.
Leading technology provider of processor IP, Arm has developed artists’ best practices for mobile game development where game developers learn tips on creating performance-focused 3D assets, 2D assets, and scenes for mobile applications. Before you cut those stunning visuals, get maximum benefit from Arm's best practices by reviewing these four topics: geometry, texturing, materials and shaders, and lighting.
Geometry
To get a project performing well on as many devices as possible, the geometry consideration of a game should be taken seriously and optimized as much as possible. This section identifies what you need to know about using geometry properly on mobile devices.
On mobile, how you use vertices matters more then almost any other platform. Tips around how to avoid micro triangles and long thin triangles are great first steps in gaining performance.
The next big step is to use Level of Details (LOD). An LOD system uses a lower-poly version of the model as an object moves further away from the camera. This helps keep the vertex count down and gives control over how objects look far away to the artist. This otherwise would be left to the GPU, trying its best to render a high number of vertices in only a few pixels, costing the performance of the project.
To learn more, check Real-time 3D Art Best Practices: Geometry.
Texturing
Textures make up 2D UI and are also mapped to the surface of 3D objects. Learning about texturing best practices can bring big benefits to your game! Even a straightforward technique such as texture aliasing, where you build multiple smaller textures into one larger texture, can bring a major performance gain for a project.
You should understand what happens to a texture when the application runs. When the texture is exported, the common texture format is a PNG, JPG, or TGA file. However, when the application is running, each texture is converted to specific compression formats that are designed to be read faster on the GPU. Using the ASTC texture compression option not only helps your project’s performance, but also lets your textures look better.
To learn other texturing best practices, such as texture filtering and channel packing, check Real-time 3D Art Best Practices: Texturing.
Materials and shaders
Materials and shaders determine how 3D objects and visual effects appear on the screen. Become familiar with what they do and how to optimize them.
Pair materials with texture atlas’s, allowing multiple objects in the same scene to share textures and materials. The game engine batches this object when drawing them to screen, saving bandwidth and increasing performance.
When choosing shaders, use the simplest shader possible (like unlit) and avoid using unnecessary features. If you are authoring shaders, avoid complicated match operations (like sin, pow, cos, and noise). If you are in doubt about your shaders’ performance, Arm provides tools to perform profiling on your shaders with the Mali Offline Shader Compiler.
There is a lot more to learn, so check out Real-time 3D Art Best Practices: Materials and Shaders for more information.
Lighting
In most games, lighting can be one of the most critical parts of a visual style. Lighting can set the mood, lead game play, and identify threats and objectives. This can make or break the visuals of a game. But lighting can quickly be at odds with the performance needs of the project. To help avoid this hard choice, learn about the difference between static and dynamic light, optimization of light, how to fake lighting, and the benefits of the different type and settings of lights.
Often on mobile, it is worth faking as much as possible when it comes to shadows. Real time shadows are expensive! Dynamic objects often try using a 3D mesh, plane, or quad with a dark shadow texture for a shadow rather than resorting to dynamic lights.
For dynamic game objects, where you cannot fake lighting, use light probes. These have the same benefits of light maps and can be calculated offline. A light probe stores the light that passes through empty space in your scene. This data can then be used to light dynamic objects, which helps integrate them visually with lightmapped objects throughout your scene.
Lighting is a large topic with lots of possible optimizations. Read more at Real-Time 3D Art Best Practices in Unity: Lighting.
Arm and Samsung devices
Arm’s Cortex-A CPUs and Mali GPUs power the world’s smartphones, with Mali GPUs powering mobile graphics. This means you can find Arm GPUs in an extensive list of popular Samsung devices, including the Samsung Galaxy A51 and Galaxy S21. Arm provides practical tips and advice for teams developing real time 3D or 2D content for Arm-based devices.
Mobile game performance analysis has never been more important
Every year mobile gaming grows! It is now worth 77.2 billion US dollars in revenue in 2020. Growth in this sector is expected to continue in 2021 and beyond. With more mobile devices coming out each year, it is important for your content to be able to run on as many devices as possible, while providing players with the best possible experience.
The Artist Best Practices is just one part of the educational materials from Arm. Alongside these best practices, you can explore the Unity Learn Course, Arm & Unity Presents: 3D Art Optimization for Mobile Applications. This course includes a downloadable project that shows off the many benefits of using the best practices.
For more advanced users, check out Arm’s Mali GPU Best Practices Guide and learn about performance analysis with Arm Mobile Studio.
Follow Up
Thanks to Joe Rozek and the team at Arm for bringing these great ideas to the Samsung Developers community. We hope you put these best practices into effect on your upcoming mobile games.
The Samsung Developers site has many resources for developers looking to build for and integrate with Samsung devices and services. Stay in touch with the latest news by creating a free account or by subscribing to our monthly newsletter. Visit the Marketing Resources page for information on promoting and distributing your apps and games. Finally, our developer forum is an excellent way to stay up-to-date on all things related to the Galaxy ecosystem.