実際、steamがゲームをインストールするとき、まだインストーラーがあります。かなりの数のインストーラーパッケージがあります。インストーラーをビルドするには、これらのパッケージのいずれかを使用し、インストーラーソフトウェアに次のことを指示するインストールスクリプトを記述します。
- ファイルをローカルPCに移動します。
- COM dllを登録します。
- 複雑なスクリプトに応じて、レジストリエントリを追加します。
- コピー防止アルゴリズムを実行します
- サービスを登録します。
- 複雑なスクリプトに応じて、環境変数を設定します。
- 追加のサードパーティインストーラーを実行します(最もよく知られた例であるDirectXと.Net Frameworks)
- デスクトップおよびスタートメニューにショートカットをインストールします。
- アンインストール手順を登録します。
そこで行う決定はSteamによって行われるのではなく、インストールスクリプトによって行われます。WiX、NSIS、Steamのいずれのインストーラパッケージを使用する場合でも、それを記述する必要があります。
Unixにも同様の手順があります。そのロジックの多くをアプリケーションの最初の起動に移動できますが、ロジックはまだ存在します。インストーラーを複数のピースに分割し、インストーラーの代わりに1つのピースをゲームに配置するだけです。そうすることには賛否両論がありますが、別の質問で議論したいと思います。