But the kind of gaming that Linux lacks is the kind that need pricey components. I can play Organ Trail or World of Goo on Linux right now. If I want to play COD, I'm going to need something substantial. That narrows the user base even more.
That would be equivalent to, say, buying a desktop from Dell (300~500 USD) and an XBox One (500 USD), which is a reasonable cost if someone wants to play the more graphically intense games.
As a reference, the fastest home consoles now(XBO and PS4) are based on an AMD Jaguar core (AMD's version of the Atom), with 8GB of Ram. You can build a (Faster) AMD A10-based machine with the same specs for less than $400 in Canada.
Something like $40 case + PSU, $40 8gb stick of ram, $50 matx motherboard, $70 cpu, $50 500gb hard drive, and a $100 7790 (or even better, the recent price cut 7870s for $130) and you are still under $400.
Not really. More like $4-500.
For a price of a "next gen" console you can build a PC that can run modern games at 1080p. Granted, not the highest settings but even that is achievable for less than $1000.
Maybe we should instead speak to potential user base.
For OSX, the potential userbase is always whoever has the money to buy extremely pricey Apple hardware, at least if you want to game on it, since getting a competent gpu almost always requires the rest of the components be really pricey.
For Linux, it is the sum total of all PCs out there with compatible hardware and firmware that can boot a Linux iso. Sure, you have to subtract the subset of the population that would never be able to install it - which is quite sizable - but you also have to consider they don't have to do it themselves, a tech shop or techie friend could.
> It sounds like a development nightmare.
When I develop for Linux, I use the Open Build System and throw my build script up on the AUR. If you are writing games you are using SDL, and if you aren't I personally use qt. Through that, I get FS access, services acccess, apis for almost everything, such that I don't even need to care about what audio backend you use, what your window manager is, what display server you use, etc.
Yes, there might be bugs, but unlike the Windows model, which is write for the buggy APIs because you can't do anything about it, on Linux you send the bugs to the upstream projects they originate from. Yeah, it is about 2 years until that bug fix sees mainstream adoption, but it beats using a buggy DX call for 15 years.