I wonder why games need installation at all. I can understand that some software like a browser needs it so it can associate some file types with it and start an executable, or add the icon to the Programs/Features component on Windows. But what's the purpose of installing, say, a Steam game? The Steam itself handles installation/removal of a game, updating, starting etc. If I develop my own game launcher (which will use installation) what are the reasons for me to use also an installer for my games?
-
20\$\begingroup\$ Steam is MUCH more than an installer. Steam also includes many community features, cloud saving, achievements, payment processing, etc. So your question "Why would I use an installer?" is a different question than, "Why would I use Steam?" \$\endgroup\$– Almo ♦Commented Jul 20, 2016 at 15:19
-
4\$\begingroup\$ Steam also provides a compilation toolchain that acts as a common base to compile linux games for maximum compatibility across distros and stuff, Steam and Valve provide an entire ecosystem of tools for game developers to more easily share their works with the world. \$\endgroup\$– user5665Commented Jul 20, 2016 at 15:36
-
11\$\begingroup\$ I'm having trouble understanding the question. What's a "game launcher which uses installation", that isn't an installer? \$\endgroup\$– Mooing DuckCommented Jul 20, 2016 at 20:19
-
5\$\begingroup\$ With all due respect, if you used your own Steam-like launcher I'd be much less inclined to buy your game than if you used Steam. Steam has a 12 year history, is backed by a large well-liked company and is itself well trusted. Even if you were part of a large well established company you'd still have to convince people your system is superior. Also, what @almo says about the community is crucial. Steam is my primary method of communicating with friends - I do not use the popular forms of social media. \$\endgroup\$– PharapCommented Jul 21, 2016 at 1:49
-
3\$\begingroup\$ @Pharap - I personally don't really care about any of the extra features of Steam, yet given a choice between using "Bob's Homemade Totally Trustworthy Not-installer Installer" and Steam, I'd prefer to go with the latter. I also use GOG a lot, so a choice between that and Steam would merit more consideration but, in short, I'd prefer a more tried and tested way of getting games than a random other software for the same. \$\endgroup\$– VLAZCommented Jul 21, 2016 at 16:24
3 Answers
There are quite a few reasons you'd want to use an installer. Some of them, off the top of my head:
Most games (and indeed, most applications) these days require the use of some supporting DLLs (such as a dynamically-linked C++ runtime or the Direct3D runtimes). Sometimes these DLLs cannot legally be distributed directly and must be installed via redistributable installers. This used to be the case for D3DX DLLs, for example. It's important to read and understand the licensing terms for your dependencies. If you have such a dependency, wrapping up its installation in your own installer can smooth the process out for end-users.
A well-behaved modern program will not require elevated (admin) access to run. However, it might require such access to be installed, and an installer provides a reasonably simple process for doing so that users are more-or-less familiar with.
Similarly, some games will want to generate registry entries to associate file types and the like, as you noted. This can also require elevation.
If a game relies on system-wide installed versions of some of its dependencies (as above) it can benefit from security updates and hotfixes made to those dependencies more easily (the OS takes care of them, not the game developer). But installing those dependencies in system-wise locations also requires elevation, and can be very easy to get wrong if you ask a user (particularly a non-technical user) to do it manually.
Finally, don't forget how easy it is, as somebody who is a tech-savvy user, to underestimate the non-tech-savvy view of computing. Sometimes "double-click to open" is the only skill you can assume (sometimes not even that much); double-clicking an installer launches a program the user can usually "okay, okay, okay" through. Double-clicking a .zip just extracts it ("well where did my game go?") or worse, opens it like a folder, where users will double-click on the .exe and it will fail to run correctly. Users don't always understand installers either, but it is closer to the paradigm they tend to get than "decompress archive and put files in 'the right spot.'"
As for Steam... Steam provides facilities for helping install and uninstall a game, but it does not do everything for you. It's also worth noting that not all games are distributed on Steam or exclusively on Steam, so relying entirely on Steam's installation services will mean those games end up duplicating work for non-Steam distribution channels.
-
3\$\begingroup\$ Thanks. Everything makes sense especially the last point. \$\endgroup\$ Commented Jul 20, 2016 at 18:35
-
5\$\begingroup\$ also, installers can be used to restore missing files using the 'repair' option in control panel -> Programs, if the installer supports it. \$\endgroup\$– ps2goatCommented Jul 20, 2016 at 19:17
-
1\$\begingroup\$ @ps2goat Such as the "verify integrity of game cache" button offered by Steam. \$\endgroup\$– PharapCommented Jul 21, 2016 at 1:46
-
1\$\begingroup\$ worth noting there is an option to create a self-extracting archive, so that it does work by double-clicking and blindly okaying \$\endgroup\$ Commented Jul 21, 2016 at 2:42
-
4\$\begingroup\$ I would add that one big reason a program should have an installer is so that it can register an UNinstaller. Forcing the user to manually find and delete files, shortcuts, configs and such when they want to get rid of your program, is a very bad practice. \$\endgroup\$– wavemodeCommented Jul 21, 2016 at 18:42
Actually, when steam installs a game, there's still an installer. There are quite a few installer packages around, and to build an installer you use one of these packages and then write an install script which tells the installer software to:
- Move files to the local PC.
- Register COM dlls.
- Add registry entries, possibly depending on a complex script.
- Run any copy-protection algorithms
- Register Services.
- Set environment variables, possibly depending on a complex script.
- Run additional 3rd party installers (DirectX and the .Net Frameworks being the most well known examples)
- Install shortcuts on the desktop and the start menu.
- Register the uninstall procedure.
The decision what to do there is not made by Steam, it's made by the install script, which you need to write no matter which installer package you use, be it WiX, NSIS, or Steam.
Unix has similar steps. You can move much of that logic to the first start of the application, but the logic still exists, you're just splitting the installer into multiple pieces and place one piece into your game instead of an installer. There are pros and contras for doing so, which I'd be happy to discuss in another question.
-
\$\begingroup\$ Why would a game need to register services? \$\endgroup\$– MedinocCommented Jul 21, 2016 at 9:49
-
8\$\begingroup\$ @Medinoc Mine don't. But there's stuff like anti cheat packages, or misguided developers out there. Or exotic game concepts that require the game to run even when you're not playing it. \$\endgroup\$– PeterCommented Jul 21, 2016 at 9:51
-
4\$\begingroup\$ @Medinoc In the past I have explicitly stopped playing a game because it introduced an anticheat system that required the installation of its own service. \$\endgroup\$– PharapCommented Jul 22, 2016 at 1:49
The question is incredibly ambiguous, but I think OP is asking why games need to be installed and run through a "store" application on the desktop instead of just being standalone.
The answer is simple: the distributor can make more money by tracking what you do, and the Digital Restrictions Management (DRM) is more effective when performed through a remote server operation. The store gateway also serves your eyes and clicks to their salespeople and makes additional purchases easier.
If you're distributing your own game, there is no need for such a store application. Use a simple installer and make your game DRM-free.