shmerl: Tying their users to Steam is bad. That was my point. Like the developers quoted above saying 98% of their games use Steam. If that's because of inability to write good network code, it's not a good excuse from my perspective. Sure they can do whatever they want. But if the end result is "Steam only", I'm not interested and don't consider such result professional. And I'm actually thinking from the project perspective. Hard dependency on Steam is not something I'd recommend to any serious project.
Define what a 'serious project' is. Shogun: Total War is not a serious project? Dishonored is not a serious project? In gaming industry, AAA titles define what a 'serious project' means. Well it doesn't really mean anything, it's really a term you have just made up - but you get my point. As far as quality assurance goes, you don't get better than AAA projects. And QA is the only measurable way in which you can call a project 'serious'.
You are also avoiding a lot of points I have made, so I'm going to sum them up again a little bit:
- Let alone inability, writing and testing a net code takes away from development time of other aspects of the game. Now even with the Steam API, you have to write it anyway, obviously - but a lot of headaches associated with it are not on your shoulders anymore. What if a developer decides to forbid a part of his potential user-base to make a better game? And do keep in mind that coding all the stuff yourself, regardless of your ability, directly takes away time from the development of your game. Basically, coding it yourself means you're going to make much more compromises in the game itself, effectively creating a smaller / less tested / worse product. How do you suggest developers get around this issue? It's a bit of a rhetorical question really, they can't.
- What about all the other aspects that Steamworks provide and you have ignored? You keep talking netcode, but for some games, modding can be just as important. Or other things, like business model - free2play titles are going to have a much easier time using Steamworks. Patching, community features... Do you propose developers make all of that themselves? Do you realize how much development time would all of this take up?
- What about the issue of relying on on-line communities for support? You see, if you take your product on Steam and write up an agreement with them, Steam guarantees you that as long as it exists, you will get support and they won't do anything to just flatout break your game - because when they do, they're in a world of trouble. You have a guarantee that the API you are using will be up to date and functional and you are genuinely backed by a very powerful company. The first thing that most open-source project give you is 'We don't guarantee that our software will work with yours in any way, shape or form' - and that's just not enough.
Now you would actually be in a much stronger position if Steam was Windows-only, but it's not. You get a multi-platform API for all your needs. As I said, it would be amazing if such an open-source API existed - but it just doesn't. Developers can either opt for giving a lot less development time to their game or to depend on Steam. You can't even argue that it cuts down their user base, as Steam has the biggest user base in the industry - not being on Steam actively do that.
Sadly, idealism will only take you so far.
shmerl: But when too many corners are cut, the product can't be considered having an adequate quality from user's perspective and from perspective of developer peers.
I will take this a bit out of context - you can either choose to use a tested and functional API for your game, or you can make your own, not as good one. This move will force you to cut a lot more corners. Do tell me which one of these seems more professional to a customer:
a) He wants to play with his friends, so he creates an internet game. His friends try to locate him on a server list, but can't. Of course, that's just about the extent of what the usual user can do, so they don't play
b) He wants to play with his friends, so he creates a lobby, sends out invitations and the game works.