cpp_is_king said:You make some good points about the reservation system. FWIW, I am a programmer on an actual online game currently in development and I actually implemented a very similar reservation system for our own game. There are some differences though, and in particular the level range requirement creates some complications.
It's difficult to say "find a player in the following level range that meets the following conditions, but do it in such a way that no other players also end up finding the same player". I mean there is an obvious solution, but it would completely destroy scalability. And in fact that may very well be why they decided to go with multiple disjoint "lobbies".
I can think of other solutions as well, but they are not simple and all have other pros and cons, such as memory usage explosion or not being reliable.
That being said, I don't think that's really an excuse. There are solutions that would have worked, and I think ended up being better than the current solution.
Keep in mind that part of this separation into lobbies may have been totally non-technical, and a design decision. In Demon's Souls you had the issue where many random people had difficulty finding co-op partners because people would decline them and say "sorry waiting for a friend". They may have been trying to remove this by design.
Thanks for the feedback
I suppose having a system where you can align worlds only at Firelink would mean that you were REALLY keen on playing with someone, and that seems somewhat of a compromise. I think it's good if a studio has integrity to make "unpopular" design choices, but they could compromise and possibly get a reception of the game.