Game development is pretty tough these days. Not only do developers have to contend with the ever-decreasing “half-life” of products on multiple platforms, but multiple OS versions present yet more challenges. And optimizing games for even a single platform is becoming even more difficult, as the complexity of systems continues to increase, and power now plays a critical role in game performance. But with billions of Windows* and Android* devices, the potential payback is enormous.
In this article we’ll show how a cross-platform suite of tools released last year, Intel® Integrated Native Development Experience (Intel® INDE) can help you quickly and easily create world-class games running at native performance on Windows* and Android* devices. And these tools are very useful even when using 3rd-party game engines such as Unity* or Epic’s Unreal Engine* -- the Intel INDE tools can still provide extra capabilities that help differentiate your game in a crowded market.
The end result when using Intel INDE is great games that immerse your customers in a compelling gaming experience.
Game developers are looking for tools that can help reduce time-to-market for an ever-expanding number of platforms. So many turn to commercial game engines, as they improve time-to-market and quickly get you access to a broad customer base on many platforms. But if you don’t use additional tools above and beyond those available within the game engine, you could be sacrificing some performance. And that extra performance could allow you to have a faster and more consistent frame rate, or the extra performance could allow you to more realistic terrain details or twice the number of zombies (!) that provide a compelling gaming experience no matter what platform you’re targeting. In other words, with a crowded marketplace, you need to differentiate yourself, and being there first with a great game is your key to success.
Even though this article targets those using commercial game engines, Intel INDE can also help independent game developers who like to “roll their own” game engines. But that’s the topic of another article in this series (watch for it!).
Using Intel INDE with a Game Engine Workflow
Using a game engine from Unity* or Epic* (Unreal Engine*), you might think that the engine is all your need, and that products such as Intel INDE aren’t useful. In particular, many developers expect the game engine to take care of everything from A to Z – all you need to do is worry about creating some game assets and ensure that you have the right number of zombies in each frame.
Luckily for you, Intel has been working with some of the key game developers to ensure that the game engines you’re using have been optimized with the tools of the Intel INDE product – the Intel C++ Compiler has obviously been key for providing these engines with platform-dependent optimization, but the other Intel INDE analysis and optimization tools help ensure that the entire game engine has been optimized for peak performance from top to bottom. In particular, Intel's partnership with both Unity and Epic ensures these game engines generate excellent performance no matter what Intel platform you’re targeting, either Windows or Android.
But even for developers using these game engines, the Intel INDE team believes that there are a few key areas where we help you get your game up and running more quickly, and running with even better performance that the game engine alone provides. Formerly released under the Intel Graphics Performance Analyzers product (aka Intel GPA), these tools are now available only within Intel INDE, and can help target these key areas:
- Debugging game assets
- Performance analysis and optimization
- Power analysis
For debugging game assets, the Intel INDE optimization tools can be very helpful. For example, browsing through the user forums for Unity, there are many customers who talk about their use of Intel INDE tools as part of their workflow. A common example is capturing a frame for detailed analysis, then use the Graphics Frame Debugger (Android only at this time), to step through the scene one draw call at a time. At each step, perform a “deep dive” into all visual aspects and properties of an object – rotate the object in real time to search for misplaced vertices, view a wireframe model to check for Level-of-Detail issues (LOD), examine the object’s graphics properties, and view both the frame buffer and the depth buffer. For example, if that zombie didn’t appear as expected, check the depth buffer and you may find that the zombie is actually being rendered behind the shack rather than in front of it.
For performance analysis, plan up front to set reasonable goals for performance versus visual impact, and then verify this throughout your development. For this you’ll find Intel INDE System Analyzer, Graphics Frame Analyzer, and Platform Analyzer to be invaluable analysis and optimization tools when used as part of your workflow. This article discusses some strategies for selecting different performance options and verifying the performance impact. As I mentioned, continually test and verify that you’re providing the best gaming experience possible for your target platforms. Again, the only way you’ll stand apart from your competitors is having a more compelling game experience than they have – for a specific frame rate have you really optimized to include the features and interactivity that your customers demand? Furthermore, since Intel is working closely with game engine developers, many game engines now include profiling hints that Intel INDE can collect while running your game – then play back that trace file with Platform Analyzer to visually check the interaction of your threads across both the CPU’s and the GPU – are you CPU-bound our GPU-bound?
For mobile platforms, understanding power utilization is another key factor. The most recent Intel systems share a fixed power envelope between the CPU and the GPU, and using too much power may actually cause the CPU or GPU to throttle down, affecting critical game interactivity. Run the Intel INDE System Analyzer to understand your power utilization – does the power suddenly spike during some scenes? If so, examine your game assets or other key parameters and options to see what’s happening.
In summary, don’t rely solely on your game engine for everything -- Intel INDE can be a useful tool in helping differentiate yourself from your competitors. The Intel INDE tools can help you figure out what options to use that give you the most “bang per buck”.
Of course, you’ll need the product before you can start using it – so get more information about Intel INDE from the product home page. There you’ll also see the differences between the various product “editions”, and how to download either the no-cost Starter Edition, or a free trial of the Ultimate Edition of the product.
If you’ll be attending the Game Developer’s Conference (GDC) in San Francisco this March, be sure to check out Intel’s various presentations (some of them in conjunction with top-tier game developers). Also, visit the Intel INDE booth, where we’ll be highlighting the latest versions of the various performance analysis and optimization tools.
And watch for other articles in this series that help explain in more detail how Intel INDE can help you develop great games quickly and easily! In particular, look for an article that shows how Intel INDE can help those who like to “roll their own” game engine – there are lots of additional features and benefits of Intel INDE that can help you with developing great games quickly and easily!
For more such Android resources and tools from Intel, please visit the Intel® Developer Zone