[Sponsored feature] How games can scale across the spectrum of platforms
A clear theme at the recent Develop Conference was just how much gaming hardware had changed. It’s not just about consoles any more. It’s about phones, TVs, tablets, laptops, netbooks, desktops, and much more.
One talk on the subject was from Aras Pranckevicius from Unity
There are challenges in targeting different platforms, he said, including the different input schemes (I blogged previously about the challenge of using the right input devices for games), different attention spans (mobile is for quick bursts of gameplay, whereas PC gamers might sit for a couple of hours), different levels of player skill (the typical iPhone gamer won’t know about the conventions used in modern first person shooters), and different monetisation models (from boxed product, through to free games supported by advertising and/or in-app purchases).
These are the bigger challenges, he said. By comparison, the coding problems are relatively easy, he said, with most platforms Unity develops for supporting C/C++ and assembly language for lower level work. The platform-specific portion of the code is a small portion of the total code base, and graphic and other assets can usually be relatively easily ported across.
While the programming is easy, the testing can be quite tricky, though. Unity has a device zoo with lots of PCs with different configurations, as well as a set of mobile devices running different operating system versions on different hardware models.
It’s essential to test with a wide range of representative devices because the configurations that players have can be radically different. Pranckevicius said that those installing the Unity web client had PCs that ranged from 1 to many cores, and 128MB to 16GB of RAM, for example. The performance difference can be as much as 100 times, although once the top and bottom 5% are taken out of the equation, the performance difference across the range is 10 times, still a lot. On mobile devices, Unity has also seen a 10 times difference in performance between the high and low end of device specifications. A particular problem is that some mobile devices have a super high resolution screen, but lack the oomph in the GPU to enable complex games for it.
His tips for creating games that scale were:
· Set a baseline configuration that the game will not go below, and then add additional eye candy on top. It’s unfortunate that the superior power of advanced machines is just being used for aesthetics, but if you change the artificial intelligence or game logic, you actually create a different game.
· Move all the fancy stuff you can offline, so that you’re not using processor cycles creating images or other assets that you could have prepared in advance.
· Look to the past to see the future: think of the techniques used in games of the 90s to create shadow and light effects despite having limited processor capability.
· Consider whether you can drop features if somebody runs the game below your minimum recommended spec. In the upcoming Unity demo of a top-down 3D shooter, if you use weak hardware, it’ll drop to a text mode adventure game. That’s a funny way of making a valid point: you need to decide whether to drop some features and give people a worse experience, or shut them out completely.
Once you’ve cracked the technical challenges, you still have the game design and marketing challenges to address. You might well need your own device zoo for testing, or at least, a healthy community of friendly playtesters.
Aras’s speech covered lots of challenges and opportunities faced by developers today and here at AppUp we believe you can minimise the pain of selling across different form factors and stores, by including the Intel AppUp Center in your marketing plan. It’s a store that provides a single place where you can submit apps and sell them through app stores belonging to major hardware companies and retailers (including Dixons in the UK). Find out more by joining the Intel AppUp developer program for free here.