Bluddy: I'd love to hear from the GOG devs on why they decided to create a new API for multiplayer (Galaxy) rather than just re-implement Steam's API on their own servers. ...
So why was the decision made to do things this way?
I don't really think that GOG devs will post a thorough essay about the decisions made and why these decisions were made the way they were made here. Usually they don't do this.
I can speculate a bit.
- Re-implementing the same API is not enough. You also have to make sure that the implementation under the hood behaves in the same way under all possible circumstances or you may run into subtle errors. However, having two independent implementations doings the same stuff is rather a waste of time.
- Re-implementing the same API is less of a drag than you think as long as you give people clear instructions what to replace with what and as long as the overall approach is fairly similar. Replacing some lines with some other lines doesn't take the longest part in software development.
- You're absolutely right that having a competing system is additional effort for devs and surely that's why some devs are Steam exclusive (for all the good or bad this does). Therefore I guess that GOG devs will have made the Galaxy API fairly similar if not identical in parts to the Steam API. We are already there.
- The Steam API is developed by Steam. Blindly copying it means you have to follow them wherever they may lead you. This means losing control. Maybe the Steam API is actually not optimal in some sense and you think you can do better - then maybe you should not copy it one to one.
- Maybe they wanted to, but there were legal reasons like Steam forbidding them to use their API. Currently there is a legal battle between Oracle and Google about usage of the API and some code of Java. It will be interesting to see the result.