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.