Greetings dear community.
Although my question is not 100% game related, I didn't find the better place to put my topic.
I need to create a launcher for our game. This will be online game and I need a way to easily update it. Also launcher itself should be easily updateable. I mostly interested in high level architecture, i.e. how thing works at all. Our game will be cross platform, but for now I'm trying to do it for Windows (Win7). There's very little info in the web, so I don't know what is the "industry standard". I investigated how major launcher/programs work, and here's a quick description:
1. Launching Battle.net launches 2 exes - Battle.net.exe and Agent.exe. I suppose that Battle.net.exe is user interface exe and Agent.exe always runs in background. This Agent.exe can be found in C:\ProgramData\Battle.net\Agent\... folder. But what is this Agent.exe for? Why it's in ProgramData folder? Who starts who - agent starts launcher or other way? What I like about Blizzard's work - I don't have any system dialogs while run a program, like dialog asking to run as administrator.
2. Steam is seems only one process in task manager. When it's time to update, who updates exe? As far as I know the program can't update itself (at least on windows - you can't replace running exe).