Advertisement

Properly determining minimum requirements

Started by September 25, 2021 09:27 AM
4 comments, last by MidLevelGameDev 3 years, 1 month ago

It's easy for some things:

  • My minimum CPU requirements are easy to find because I set them myself on the executables and shared libraries I distribute.
  • Same with minimum GPU features or OS versions - they're determined by my code.
  • My minimum disk space requirement is trivial to find.

But the minimum RAM requirement is absolutely non-trivial to find. Not surprising as today's systems are so complicated we have to call it “computer science". Here are my findings:

Using massif, I've found that my entire game, as of now, uses 10.07MB at its peak. These are allocations done with the basic re/c/malloc functions and exclude the lower-level functions like mmap. That's not a problem, as I, nor do my libraries use mmap.

Now, when enabling the --pages-as-heap=yes option, it counts all allocated pages, which makes it include mmap. Here, it jumps to 1.23GB. But looking at the tree, it seems like most of these allocations are done by the system files, like the OpenGL or audio drivers. The C standard library also appears to allocate heaps in chunks of 384 megabytes. This is, for me, unacceptable, especially for such a small game.

But as these are system files, there doesn't seem to be anything I can do. It would make sense that in lower-end systems, the system files would themselves use less space, but then what should I state as my minimum requirement? Both 10MB and 1GB end up being potentially misleading and thus aren't satisfactory.

The only reliable way to test minimum system requirements is to actually test your game on the oldest computer that you can find that can your game. Go buy some cheap old used computers and start testing. Theoretical calculations are unsatisfactory for these reasons:

  • They don't account for the resources used by the operating system itself. (Good luck running a modern version of Windows on a 1GB system, with or without your game.)
  • In the case of GPU and CPU requirements, you're only only measuring if the system can run the game at all, not if it can at an acceptable frame rate.
  • By testing on real hardware, you will inevitably find bugs and performance issues that you can actually fix.
Advertisement

There exist hardware compatibility labs you can rent, and you can even pay their staff to run a script for you based on media/downloads you provide, and report results back. Of course, this is not cheap – it's probably cheaper to buy various older systems on eBay and doing it yourself – but it is a well known part of shipping a game in the industry.

enum Bool { True, False, FileNotFound };

Or you can do as an empty-pocket-indie-dev would do and either have your own memory management system in your game or just geuss. Minimum requierements for a windows game should always be 8GB of RAM as everything below doesn't make sense anymore. 4GB RAM sticks are more costly than 8GB and you need at least one to run Windows anyways, so take that as the minimum specs and 16GB is usually recommendet

Thanks for the replies, everyone. The oldest hardware I have is from 2008, while the game should work on older devices, too, so that's not very satisfactory, either.

In the end, I decided to just test it out on some virtual machines. With VT-x I can get near native performance. Although not exact, it's the best I have.

This topic is closed to new replies.

Advertisement