这些天需要安装游戏吗?


36

我不知道为什么游戏需要安装。我可以理解,某些软件(例如浏览器)需要它,因此它可以将某些文件类型与之关联并启动可执行文件,或者将图标添加到Windows上的“程序/功能”组件。但是,例如安装Steam游戏的目的是什么?Steam本身可以处理游戏的安装/删除,更新,启动等操作。如果我开发自己的游戏启动器(将使用安装程序),为什么还要在游戏中使用安装程序?


20
Steam不仅仅是安装程序。Steam还包括许多社区功能,云节省,成就,付款处理等。因此,您的问题“我为什么要使用安装程序?” 与“为什么要使用Steam?”的问题不同。
Almo

4
Steam还提供了一个编译工具链,可作为编译linux游戏的通用基础,从而最大程度地兼容发行版和其他内容。Steam和Valve提供了完整的工具生态系统,可让游戏开发人员更轻松地与世界分享他们的作品。

11
我很难理解这个问题。什么是“使用安装程序的游戏启动器”,而不是安装程序?
Mooing Duck

5
出于所有应有的尊重,如果您使用自己的类似Steam的启动器,那么与使用Steam相比,我购买这款游戏的意愿会大大降低。Steam已有12年的历史,并得到一家大型知名公司的支持,并且自身也广受信赖。即使您是一家大型公司的一部分,您仍然必须说服人们您的系统是卓越的。另外,@ almo对社区的看法也至关重要。Steam是我与朋友交流的主要方法-我不使用流行的社交媒体形式。
法拉普

3
@Pharap-我个人并不真正在乎Steam的任何其他功能,但是可以选择使用“ Bob的自制完全值得信赖的非安装程序”安装程序和Steam,我更喜欢后者。我也经常使用GOG,因此应该在Steam和Steam之间进行选择,但总之,我宁愿使用一种经过尝试和检验的方式来获得游戏,而不是使用相同的随机其他软件。
VLAZ

Answers:


82

您要使用安装程序的原因有很多。其中一些,在我的头顶上:

  • 如今,大多数游戏(乃至大多数应用程序)都需要使用某些支持的DLL(例如动态链接的C ++运行时或Direct3D运行时)。有时,这些DLL 无法合法地直接分发,必须通过可重新分发的安装程序进行安装。例如,D3DX DLL就是这种情况。阅读并理解依赖项的许可条款很重要。如果您有这种依赖性,则将其安装打包在自己的安装程序中可以为最终用户简化该过程。

  • 行为良好的现代程序将不需要提升的(管理员)访问权限即可运行。但是,可能需要安装这种访问权限,并且安装程序提供了一个相当简单的过程来使用户或多或少地熟悉。

  • 类似地,如您所述,某些游戏将希望生成注册表项来关联文件类型等。这也可能需要抬高。

  • 如果游戏依赖于某些依赖项的系统范围内已安装的版本(如上所述),则可以从安全更新和针对这些依赖项的修补程序中更轻松地受益(操作系统由他们负责,而不是由游戏开发人员来负责)。但是在系统位置安装这些依赖项需要提升,并且如果您要求用户(尤其是非技术用户)手动进行操作,则很容易出错。

  • 最后,不要忘记,作为一个精通技术的用户,低估了非精通计算的观点是多么容易。有时,“双击打开”是您可以假定的唯一技能(有时甚至不那么多);双击安装程序将启动一个程序,用户通常可以通过它“正常,正常,正常”进行操作。双击.zip只会将其解压缩(“我的游戏去了哪里?”),或更糟糕的是,将其像一个文件夹一样打开,用户将在.exe上双击,它将无法正确运行。用户也不总是理解安装程序,但是它比“解压缩存档并将文件放在正确的位置”更接近他们倾向于获得的范例。

至于Steam ... Steam提供了一些有助于安装和卸载游戏的工具,但它并不能为您做任何事情。值得注意的是,并非所有游戏都在Steam上发行或仅在Steam上发行,因此完全依赖Steam的安装服务将意味着这些游戏最终会为非Steam发行渠道复制工作。


3
谢谢。一切都很有意义,尤其是最后一点。
nikitablack

5
同样,如果安装程序支持安装程序,则可以使用控制面板->程序中的“修复”选项来还原丢失的文件。
ps2goat's

1
@ ps2goat,例如Steam提供的“验证游戏缓存的完整性”按钮。
法拉普

1
值得一提的还有创建自解压选项,以便它通过双击工作和盲目包括确认
user1306322

4
我要补充一点,一个程序应该具有安装程序的重要原因是,它可以注册一个UNinstaller。强迫用户手动删除文件,快捷方式,配置等,以摆脱他们的程序,是一种非常糟糕的做法。
wavemode '16

5

实际上,当Steam安装游戏时,仍然会有安装程序。周围有很多安装程序包,要构建安装程序,您可以使用其中一个程序包,然后编写安装脚本,告诉安装程序软件:

  • 将文件移动到本地PC。
  • 注册COM dll。
  • 添加注册表项,可能取决于复杂的脚本。
  • 运行任何复制保护算法
  • 注册服务。
  • 设置环境变量,可能取决于复杂的脚本。
  • 运行其他第三方安装程序(DirectX和.Net Frameworks是最著名的示例)
  • 在桌面和开始菜单上安装快捷方式。
  • 注册卸载过程。

Steam不会决定要做什么,它是由安装脚本决定的,无论使用哪种安装程序包,无论是WiX,NSIS还是Steam,您都需要编写该脚本。

Unix也有类似的步骤。您可以将大部分逻辑移至应用程序的第一个启动位置,但是该逻辑仍然存在,您只是将安装程序拆分为多个部分,然后将一个部分放入游戏中而不是安装程序中。这样做有利弊,我很乐意在另一个问题中讨论。


为什么游戏需要注册服务?
Medinoc

8
@Medinoc我的不。但是,诸如防作弊软件包之类的东西,或误导开发人员的东西。或异国情调的游戏概念,即使您不玩游戏也需要游戏才能运行。
彼得

4
@Medinoc过去,我明确停止玩游戏,因为它引入了一个防风加热系统,需要安装自己的服务。
法拉普

1

这个问题令人难以置信,但是我认为OP正在问为什么需要在桌面上安装游戏并通过“商店”应用程序运行游戏,而不仅仅是独立运行。

答案很简单:分销商可以通过跟踪您的工作来赚更多的钱,而通过远程服务器操作执行数字限制管理(DRM)则更有效。商店网关还可以吸引您的眼球,并吸引他们的销售人员,并简化了其他购买过程。

如果您要分发自己的游戏,则不需要这种商店应用程序。使用简单的安装程序,使您的游戏无DRM。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.