Hacker News new | ask | show | jobs
by ryandrake 1687 days ago
> performance-hungry programs (read: games) sometimes have to check the spec of the PC they're installed on and tell the poor punter that their PC isn't fast enough.

This seems like the root problem. Developers, please don't do this. Just let the user run the software, and if it's not fast enough for them, it will be self evident. Don't insert your own personal judgment about what kind of PC is "good enough" and if you absolutely feel you have to butt in like that, don't make the logic faulty like these games apparently do.

When I buy a game, I expect to run it. If my PC is too slow, it will run slowly and I'll be motivated to upgrade or fiddle with the graphics settings. Trying to be this performance police is like saying "Your PC is pathetic. In lieu of letting you run this software you paid for, please accept this picture of my middle finger instead." I wouldn't want to do business with a developer that treats me like that.

3 comments

Also: Let API calls fail and return errors instead of trying to "predict" errors and be "helpful" to the user. You don't know how people are going to use the software you've written in the future.

Example: Old software that can't handle larger-than-expected disk free space. There are AppCompat shims in Windows for lying to applications re: free disk space quantity because some old applications stored the result of disk free queries in 32-bit integers. Who would ever have more than 4GB of free disk?!?

The integer overflows that result invariably cause unexpected behavior.

Just make the API call to write to the disk. If that returns "disk full" let the user know. Don't "check" first.

I want to know that there isn't enough disk space before going through a half-hour installation process...
Surprisingly, some really old windows software installers will ask you want to run the install anyways even after it determines there's not enough space. That seems to be the ideal solution.
> Just make the API call to write to the disk. If that returns "disk full" let the user know. Don't "check" first.

idk. Things don't always behave super gracefully if the disk is actually entirely full, this could lead to data loss as other applications can't persist their state as they expect to be able to.

I think you have a good point but with the worst example. Though the example is good in that it shows the nuance of how it's clearly not always the best choice.

If you're doing something like a system update where you're updating shared libraries, you don't want to get the kernel and glibc yet only half the libraries. You could easily end up in a state where you're not able to rerun the install or even free space without booting up a live USB or something.

Let something overflow seems like the exact opposite of empowering user decision.
On the other hand, if you are running a Pentium II I know that you won't even be able to get past the menu screen. If I simply don't let you in at all, you'll go right to steam and ask for a refund, get it, and not be mad at me. If I do let you in, you may spend a few hours trying to tweak the settings, fail, be unable to get a refund, and leave a bad review.
> If I simply don't let you in at all, you'll go right to steam and ask for a refund, get it, and not be mad at me

I think you underestimate the ingenuity and amount of free time available to PC gamers...

I think you may have bigger problems if your menu screen can't even run on a Pentium II.
I have many times seen this kind of error while running games in Proton. It has never actually prevented me from proceeding. It usually just says GPU too old / drivers out of date. Then it sets every graphics setting to its lowest value and lets you proceed.