На самом деле, когда Steam устанавливает игру, есть еще установщик. Вокруг довольно много пакетов установки, и для сборки программы установки вы используете один из этих пакетов, а затем пишете скрипт установки, который сообщает программе установки:
- Переместите файлы на локальный компьютер.
- Зарегистрировать COM dll.
- Добавьте записи реестра, возможно, в зависимости от сложного сценария.
- Запустите любые алгоритмы защиты от копирования
- Регистрация Услуги.
- Установите переменные среды, возможно, в зависимости от сложного сценария.
- Запустите дополнительные установщики сторонних производителей (наиболее известные примеры - DirectX и .Net Frameworks)
- Установите ярлыки на рабочий стол и в меню «Пуск».
- Зарегистрируйте процедуру удаления.
Решение о том, что делать там, не принимается Steam, а принимается сценарием установки, который нужно написать независимо от того, какой пакет установки вы используете, будь то WiX, NSIS или Steam.
Unix имеет аналогичные шаги. Вы можете перенести большую часть этой логики на первый запуск приложения, но логика все еще существует, вы просто разбиваете установщик на несколько частей и помещаете одну часть в вашу игру вместо установщика. Для этого есть свои плюсы и минусы, которые я бы с удовольствием обсудил в другом вопросе.