Welcome, Guest.
Username: Password: Remember me

TOPIC: Open discussion about ReShade's UX: The Installer

Open discussion about ReShade's UX: The Installer 1 year 3 months ago #1

  • notnsane
  • notnsane's Avatar
  • Offline
  • Posts: 2
  • Thank you received: 2
Hi all! I'm a long time user and lurker of these forums. I've been using SweetFX and ReShade since quite a bit ago. They are amazing tools to shape any game into beautiful landscapes.

That said, it pains me to mention that the tool's UX has always been an absolute and complete nightmare to handle. The 2.0 GUI tools were specially inconsistent and overly complicated for something that should take at most one or two clicks to install. They felt completely engineered, not designed, sadly.

But! 3.0 has been an absolute jump forward in usability, with less than I'd say 5 major issues to fix, and then quite a bit of minor inconveniences that are easy to fix.

Important note: IANAC (I am not a coder), so I just can't send PRs to github, though I could create some user flows and wireframes... but I can't create issues on github, If a coder wants my aid to create these user flows, just contact me via my website, which is my username with a .net to the right of it.


I'm going to start the discussion with I think the least important topic but albeit an important one...

ReShade's Installer

Instead of just spawning a ton of bullet points, I'm going to present each case in the form of a question of a normal, non tech-savvy user , to clearly see where the tool is failing:

1. I have 3000 games on _my preferred download platform_,... How can I install ReShade on all of them at once?

While this is unpractical for a quite a ton of reasons, it's still a valid question. Currently, ReShade 3.x has no way to install itself on several games. It can be easily solved with a Profile Manager that allows for proper updating included in the tool, like 2.x had (but designed with usability in mind)

2. I have installed ReShade on 3000 games on _my preferred download platform_,... How can I update ReShade on all of them at once?

Another easy question, even more valid than the previous one: even installing ReShade in more than one game creates a major stepback in "time to use/play". Another good reason to have a Profile Manager or ReShade Manager of some kind.

Then we have minor usability issues with the installer itself

3. I have downloaded ReShade_Setup_3.x.x... Why it isn't installing anything with a wizard though the file name says it's a setup?

Nielsen's mental models (THERE'S A LINK THERE) tell us that user expectations are based on beliefs, not facts. Therefore, if you're using the word "Setup" or "Install" you'd better have a setup or an install. The ReShade tool right now is a standalone tool, so it might be confusing for a first time user. Also, consider that you had completely different installations since 1.0, every major release was handled very differently, causing even more issues.

4. I have downloaded ReShade_Setup_3.x.x... Where do I put it?

I know you have a "newcomers guide" on the website: ReShade shouldn't have one. All the basics of the tool should be 100% handled by the tool itself. Redirecting a user into an online website isn't a good idea, since he/she might be offline. And maybe he/she can't use the tool.

I don't _ever_ recommend using an Installation Wizard. Just a portable .zip of the tool will be enough to make the user understand that they can put that folder wherever they want, and that they need to run the .exe to start the tool.

Besides, if the tool doesn't access the registry in any way, it can be ported to a UWP app via Project Centennial and published to the Microsoft Store, which might allow for super easy and straightforward automatic and SECURE updates. It's outside the scope of this open discussion, but worth mentioning.

5. I have reached this part of the setup What do I do next?

I think the most commom problem would be to reach this stage and waiting for something to happen, because there's no next button.

More questions from the user: What's a rendering API? Why should I select any of these options if there's one already selected?

A personal question: Can't this step be completely skipped? I guess it's there because the tool might not correctly guess the API?


I think that's it for the major issues. One of the issues I have with the current design is that there is a huge big button that's also used to display help text/hints on what to do next!!
This is a big no-no in any baseline usability test. Just move the hints below the button... it's a complex issue that can be easily solved, though.
I can provide some mock-ups for the installer if needed, right now I'm a bit tired of writing all this.


And that's it for my first part of the UX analysis of ReShade. Sorry if I sound too harsh, but I've been told once and again that constructive criticism based on facts is fundamental to the improvement on almost anything, and I'm a firm believer of that. Please don't take it personally.
I think ReShade it's a fantastic tool that can be so, so much more in the coming years. With just some quick UI and UX changes, it might reach mainstream in a couple years, paired with easy to use resources as the Windows Store or similar autoupdating tools like itch.io (I can help with documentation for both of them). But before that we need a Profile Manager again.

Feedback on all this is very much appreciated!
The administrator has disabled public write access.
The following user(s) said Thank You: megazz, Sunesha

Open discussion about ReShade's UX: The Installer 1 year 3 months ago #2

Well, I originally typed up a nice, formatted response to this adding my 2c to everything, but upon submission I was graced with "Your session has expired", and my entire passage was wiped from existence.

Quicker response: (this time I've backed it up in Atom)

Right now, it's tedious to set up ReShade with a new game. You have to add shader/texture paths, re-bind keys, add new preprocessor entries, etc.
I think it would be a nice quality-of-life feature to have the installer create the [renderAPI].ini file from a template instead of using the preprogrammed defaults.

Your points.
1. I don't think it'd be possible to make a batch-installer for ReShade. You'd still have to manually add the filepath and select the API for every game. The only way you could speed it up is by adding specific support for a game library like Steam or GOG, which I think is outside ReShade's scope.

2. While that's a good point, it'd require the current installer to be scrapped for something more like 2.0's that keeps 'profiles' of everything.

3. I have no idea what you're trying to ask. Can you rephrase that?

4. You're probably worrying too much. I think the people who use ReShade also use things like ENB, Forge, tAPI, etc. I believe they read between the lines some, won't panic when an error occurs, so on, so forth. I find it hard to imagine my mother suddenly up and saying "I want to add a post-process injector to Farmville!".
This also applies partially to 5 and completely to the button-text issue.

5. Yes, it's pretty much a coin-flip as to whether it guesses the correct API or not.
Last Edit: 1 year 3 months ago by FierySwordswoman.
The administrator has disabled public write access.

Open discussion about ReShade's UX: The Installer 1 year 3 months ago #3

  • JBeckman
  • JBeckman's Avatar
  • Offline
  • Posts: 253
  • Thank you received: 53
Setting up a third party manager utility or just using batch scripting could be one method for automating management I guess (Or at least partially automating updating to newer versions of ReShade?) but would probably be a lot of work, personally I hold down CTRL after starting ReShade Setup 3.0.x (.6 as of the most recent version released.) and when pressing the big button for selecting a path it'll instead dump ReShade32 and ReShade64 .dll in that same folder which I then move over to another folder where I've set up premade config files (And the shader files an such, keeping it all in one place.) from earlier runs of the ReShade 3.0.x injector and then it's just a matter of copy/pasting ReShade32 and ReShade64 .dll to each of the ~500 or so folders of games I'm using it for deleting the existing d3d9.dll, opengl32.dll, dxgi.dll or d3d11.dll file and renaming the now copied over new version. (While that's still quite a bit of copy/pasting it's made far simpler now with the shader and texture files and preset config file being able to be kept in a single folder.)

Takes time of course but few people would keep such a large collection of games installed at once though having done it since 1.x I've gotten pretty quick although I can definitively see a manager utility or fancy batch script system being popular over doing it completely manually.
(Had to re-learn and re-do the process for 2.x and now 3.x but it's not too difficult once you've gotten a bit used to the in-game GUI functionality of 3.x)

Manual install like this also requires you to know if the game is 32 or 64-bit and preferably also which API it uses for graphics, Steam and some other client reliant games make it trivial via say steam_api64.dll over steam_api.dll confirming it's 64-bit without digging into the exe itself or similar though without launching said game at least once with a overlay utility such as Afterburner/RivaTuner it can be more difficult to say what API it uses for graphics. :)

Going back to a file manager tool the first setup via that might require selecting 32 or 64-bit and if it's DirectX 9 - 11 or OpenGL but if it could be saved via some config file and remembered having it copy new versions of the ReShade32 and ReShade64 .dll files or perhaps even using the setup exe directly while remembering those settings would make subsequent updates simpler although building that initial library of games or well folders to copy things to would also be a bit time consuming although I'm not sure a fully automated model could be made without at least some work on the users end.

EDIT: As for ReShade and selecting the correct API I think it checks the exe you set as the target (For the folder to copy the .dll to.) and depending what it finds first (References to D3D9, D3D10, D3D11 or OpenGL.) that will be used as the automatically detected API as I remember it being explained but that was a while ago so it could have been improved or changed since.
Last Edit: 1 year 3 months ago by JBeckman.
The administrator has disabled public write access.