I'm currently just making a concept for a MMORPG-like (much less massive) game, in which the player can do all the usual stuff (farming, talk to NPCs, accept quests, kill monsters etc.). An important aspect is, that as an MMORPG you can see the other players walking around in the world, and taking care of their business. Although most of the smaller quests aren't much of an issue, I also want to have a few bigger quests which would contain more story, simple cutscenes and might even have an impact on the world. And this is where it gets problematic, because I don't want to spoil a quest to a player who hasen't begun with it yet, but at the same time the first player should generally see other players who have.

An example would be that if you let an important NPC die in a certain quest, it will not appear again for you. Or in a cave the way is blocked, until you complete some other quest which removes the stones which where in your way. Maybe it's even just that an NPC will lead you the way to some place, but it should not become inaccessible to other players. That is fine and perfectly doable for a singleplayer-game, but it gets difficult for a multiplayer game.

I can let other NPCs react differently when you let the NPC from the first example die, but I don't really know how to make the game behave when you stand where the dead NPC should be, but he's not there for you. I've thought about cheking the quest state before the client receives the information that the NPC is there, but that would get really messy very soon. Not showing an NPC is one thing, but having multiple instances of it where one leads the way for player A and one sells items to player B will grow more and more into a readability nightmare for developers.

And it gets even worse when the map changes; did you just see that other player pass through the wall of stones I see here? Someone of the devs really screwed up the player experience and immersion in the story there...

Something else I thought of are (singleplayer-)"instances" which some games use for such areas. But that also won't work for every case (eg. when the changes are permanent), and when you suddenly enter an instance where you wouldn't expect one to be because you haven't progressed far enough in the storyline would confuse me as a player.

Are there any solutions to this? Or will I have to go with NPCs which never leave their position, and a never-changing world?

  • \$\begingroup\$ your question is very confusing. As in, it isn't clear. You need to clear state your issues in each paragraph. It feels as though you rushed writing this question \$\endgroup\$ – Kitanga Nday Apr 28 '17 at 8:30
  • \$\begingroup\$ I think one issue you talked about is players affecting other players by killing important NPCs. Well you can coccon each player in their own little world. When they want to do a quest the map for it loads on their PC and they can do what they want. Maybe even invite a friend. King's Road does this, and boy does it work. you can play with your friends by inviting them and the only time you see other players running around who aren't your friends is a t the meeting hall. \$\endgroup\$ – Kitanga Nday Apr 28 '17 at 8:33
  • \$\begingroup\$ @Kitanga It would work, but as an MMORPG-like game you should be able to see other players - just not their progress in a quest. I'll edit and try to clarify what I mean later, I don't have the time right now. \$\endgroup\$ – Namnodorel Apr 28 '17 at 11:55
  • \$\begingroup\$ Ah I see, then only render what need to be rendered on the client side. (lol, so I tried to give an example to back up the previous sentence and run into the issue you run into. Wow, this one's tough, no?). OK forget the last idea. Are players allowed to see other players attacking outposts or raiding camps etc.? \$\endgroup\$ – Kitanga Nday Apr 28 '17 at 12:07
  • \$\begingroup\$ @Kitanga Yes, you should be able to see everything other players do except when what they do requires more quest progress than you have \$\endgroup\$ – Namnodorel Apr 28 '17 at 13:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.