So, like all games these days, Diablo IV (and any other Blizzard game) requires the use of an unnecessary crappy launcher that is apparently truly unnecessary, as one of its settings is to close on game launch. This makes my brain twitch. Blizzard’s launcher is doubly annoying in that it cannot be running on more than one machine. You will see why this is an issue in a moment.
Wouldn’t it be nice if you could simply double-click the Diablo IV icon, and start playing the game? Well, you can’t. Not without some ugly hacks. If the launcher is already running, there is a single command/shortcut that will run it. But if it is not, the same command simply takes you to the launcher page for the game, where you then have to click on “Play”. This is not a huge deal in the scheme of things, but the sheer stupidity of the design really irks me every time I have to do it, especially on the Steam Deck or the RoG Ally.
To make things even more comical, if you look in the Battle.net folder, there is a launcher for the launcher. <twitch twitch> And inside the game, there is another launcher that the launcher launches. So seriously, the load sequence for Blizzard games is Battle.net Launcher.exe-->Battle.net-->Diablo IV Launcher.exe-->Diablo IV.exe
. I just don’t have the words to express…
I have been digging around the net, and found the command that will launch the game if Battle.net is already running:
"C:\Program Files (x86)\Battle.net\Battle.net.exe" --exec="launch Fen"
This can be put in a shortcut, or added as a non-Steam game in Steam to launch things. However, once again, if you don’t have Battle.net running, it doesn’t work as a rational person would expect it to. But, this got me thinking; if it has to be running, then I can load it. Then run the same command AGAIN to make it actually play the game. Now the launcher returns immediately, so you have no feedback or ability to know when it has actually finished launching, but the process is usually only a few seconds. So I expanded on this idea and created a DiabloIV.bat
file, and launch that from my shortcut. It contains:
"C:\Program Files (x86)\Battle.net\Battle.net Launcher.exe" --exec="launch Fen"
timeout /t 10 /nobreak
"C:\Program Files (x86)\Battle.net\Battle.net Launcher.exe" --exec="launch Fen"
This will run Battle.net, wait 10 seconds, then run the same Battle.net command again, which will then run the game.
In the Battle.net settings, I changed it so that Battle.net would disconnect as soon as possible:
- On Game Launch –> “Exit Battle.net completely”
- When Clicking X (Close Window) –> Exit Battle.net completely
- Uncheck: Launch Battle.net when I start my computer
So now, I add the batch file created earlier as a non-Steam game. You can choose the Diablo IV Launcher for the Icon by clicking on the icon, and choosing the .exe file from wherever you installed it.
This is an ugly hack to compensate for bad software design, but it works so you can run a game like you would expect it to run.
Warning: On the Asus RoG Ally, you cannot use this technique to launch directly from Steam. Their Armory Crate SE launcher conflicts with Steam’s launcher, and causes two problems. The built in controller will wig out and the “A
” button will randomly alternate between fire and opening chat. I have no idea why, but I confirmed it wasn’t just me in the forums, and the only option is to quit Steam to make the controller work as expected. Also, if you launch the batch file from Steam, it de-couples the running game, so external controllers may or may not work, depending on whether you did the right voodoo dance, and slaughtered the correct livestock.