Selecting Min-Spec Hardware For Windows 8 Games

We recently set up a number of devices with Windows 8 for development and testing of a Windows Store port. It is important to me to that we understand and test the platform variations we will release on. This is both to ensure we provide the best customer experiences and because I have found it typically just takes less time overall.

Quite a bit of research and experimentation was done to choose a suitable selection of hardware so I have put together this summary of our experiences in the hope it makes things more straightforward for those that follow.

What Can Run Windows 8 Store Apps

Microsoft provide minimum system requirements for Windows 8 here however some digging is required to find what available hardware meets those requirements and has suitable drivers available. I have concluded that:

  • The earliest CPU's supported are Intel Pentium 4 and AMD Althon 64.
  • The earliest GPU's with driver support are Intel GMA 950, Nvidia 6x00 series and ATI/AMD 2x00 series.
  • 1GB of memory is required for 32 bit Windows 8, 2GB for 64 bit.
  • Windows Store apps require a minimum display resolution of 1024 x 768.

It is interesting to note that Nvidia's driver support goes back significantly further than AMD or Intel's. In theory it should be possible to run Windows 8 on AGP graphics hardware, however we did not bother to test an AGP configuration. (If you know whether AGP is supported please comment below, I am interested in knowing the answer).

I should also note that the GMA 950 driver support appears to be less than perfect. 3DMark along with many games crash and exit when run on either of my GMA 950 equipped devices. However some games with undemanding graphics such as Rayman Jungle Run do run correctly. It appears certain Direct3D features are not implemented - I will provide more details as we understand them better. Later GMA devices such as the GMA X3100 do not have this issue.

Absolute Lowest End Device

From our testing, devices based on early Intel Atom processors are at the bottom of the pack by a very large margin. These were used heavily in netbooks. Our test device is an Asus EeeBox PC, essentially an Atom N270 based netbook re-packaged into a tiny desktop design.

  • The CPU performance is quite slow, at best about as fast as a single ARM9 core commonly used in 2011/2012 tablets and phones. Further, there is only a single CPU core. Windows 8 runs many background operations that result in constant pauses and slowdowns.
  • The N270 uses a GMA 950 GPU. This is the slowest GPU supported by Windows 8 and in the N270 it is underclocked by a factor of 3. That is correct: the slowest GPU running at 1/3 speed. For even the simplest of graphics at the lowest possible resolution of 1024x728, expect framerates to peak at 30 fps.
  • Most netbooks with this CPU will have 1GB of RAM. With this RAM configuration, apps, web pages etc. are constantly being closed in the background. Increasing RAM to 2GB on our test device improved things to the level of "painfully slow".

I do not recommend targeting netbooks or other early Atom based devices. Apart from woefully insufficient performance, the 1024 x 600 display used in netbooks necessitates the use of an external monitor to run Windows Store apps.

However, we do still have ours set up for basic compatibility testing - the slow performance, low RAM and the GMA 950's problematic driver support are all things likely to identify crash problems and situations that require a graceful error message.

A More Reasonable, Practical Minimum Specification

If your game is targeting Windows RT (the ARM version of Windows) then choices of a minimum spec become a little simpler. Windows Store requires that if the app supports ARM devices, it must also support the lowest Direct3D feature level on x86/x64. It turns out that the specifications of the Windows RT devices are an excellent guide to choosing a min spec PC:

  • At least two processor cores (Intel Pentium D or AMD 64 x2 or better).
  • 2GB of RAM
  • Any GPU with Windows 8 driver support as mentioned earlier will provide sufficient performance.

All desktop and laptop PCs meeting the above requirement will meet, and in most cases greatly exceed, the performance of the RT devices. One exception is the GMA 950 GPU. We could not profile it as well as I would have liked since 3DMark does not run on it. From what I can deduce, it is perhaps a little slower than the GPU in the Tegra 3*.

All 2012 ARM and Atom based tablets provide similar specifications and performance as the Surface RT.

What about PCs with a single CPU core? Windows 8 background operations can often consume 100% of an entire processor core. When there is only a single CPU core the resulting pauses and slowdowns are, in my opinion, unacceptable for games.

Acquiring Test Hardware

Despite such a lengthy discussion, it is actually fairly easy to set up a min-spec PC configuration. Used PC's equipped with an Intel Pentium D CPU and Intel 945 chipset (GMA 950) are commonly available from auctions, classifieds, etc. Check that the PC has a connector for the on-board GMA 950 graphics as some HP and Dell systems for example do not. To check GPU driver compatibility the lowest end, supported video cards by Nvidia (GeForce 6200) and ATI/AMD (Radeon HD 2400) should also be acquired.

The above GPU's all make use of older versions of drivers. I recommend also testing against at least one sample of each of NVidia, AMD and Intel GPUs that are supported by latest driver revisions. Anything from the last 3 years should be fine. To be confident of compatibility with all GPU drivers a 2012 Atom Z2000 series based tablet should also be used for testing. These feature a PowerVR GPU, commonly used on iOS and Android, but quite unusual for Windows and Direct3D. We also set up a number of other CPU and GPU combinations for our needs since our game has a wide range of detail and performance options.

Avoiding Older Devices

If you are not targeting tablet devices then it may be desirable to avoid a lot of the earlier, slower PCs. This can be done by specifying a higher minimum Direct3D feature level, even if the application does not strictly require it. Customers will not be able to purchase or download the game from devices that do not meet this minimum specification. Note that apps are supposed to still run and display a "not supported" messages on lower feature level devices in case graphics capabilities are changed.

Specifying feature level 10_0 will approximately limit the game to PC's based on Intel Core2 and later processors. 2012 Atom Z2000 series based tablets will be excluded. Nvidia GeForce 8x00 series and AMD Radeon HD 4x00 series are the earliest supported GPU's. Unfortunately it also includes the relatively slow Intel GMA X3100 and later GPUs. Driver support for DirectX 10 features may not be 100% on Intel GMA.

Beyond this, I don't recommend specifying higher feature levels as this will begin to exclude well performing PC's while still including relatively slow PCs. I suggest instead just detecting problem hardware, if any, and displaying a "not supported" message. Note that the Windows Store supports written recommended system requirements.

* I find it rather ironic that the GMA 950 and Tegra 3 GPU have similar performance. When released in 2005, the GMA 950 was generally considered much too slow for gaming. I am being generous when I say it was not well respected. I have worked on one project where CPU based software rendering was considered more palatable than bothering with the GMA GPUs. 7 years after the GMA 950 released, the Ouya placed the Tegra 3 at the heart of a living room game console, enjoying a wildly successful Kickstarter campaign.

New Dungeons of Daggorath Development Blog

We've added a new development blog describing the ongoing development of side project Dungeons of Daggorath.

Dungeons of Daggorath

Eufloria HD Number 1 on BlackBerry 10!

Eufloria Number 1!

Thanks NVIDIA!

Tegra 3

We have been helping our friends at Omni/Tuna with performance issues in their Android version of Eufloria HD. Knowing for sure that the popular Nexus 7 was not performing as well as it should, we started with that device. And since it uses NVIDIA's Tegra 3 SOC, we reached out to NVIDIA developer support to see if they could provide us with assistance.

NVIDIA were excellent and went the extra mile to help out with expert one on one support. Not only did they provide us with all the technical details requested, they offered informed suggestions and followed up several times to see how we were doing. NVIDIA also make available a number of excellent tools, all packaged with the Android NDK making the development process.

With the help of NVidia's very good PerfHUD ES tool we were able to quickly find a 250% performance increase which ironically had nothing to do with the hardware platform. We also found other issues we suspect are affecting a majority of hardware but were not previously able to find because of lack of tools.

Overall, the excellent and inexpensive Nexus 7 combined with NVIDIA's tool chain and support make for a great choice of primary development platform.

Eufloria HD is Number 2 on App World

Eufloria HD is Number 2 on App World

Opening up BlackBerry App World on the Playbook this morning revealed a wonderful surprise: our port of Eufloria HD is the number two paid game, right after Angry Birds Space.