I'm obsessed with the Idea of playing morrowind online. That's why I spent a lot of time collecting thoughts on it and possibilities to solve them. Although there was a topic before that discussed Multiplayer, I have to say it`s title doesn't say anything about Multiplayer so we could just use this topic here to discuss the ideas. I will also add quotes from the last multiplayer topic talking about problems and I'll try to find a solution.
I decided to rethink my MMO Ideas and stick to the smaller scale co-op Idea. (Maybe up to 8 players) I'll post my co-op Ideas another time and I'm gonna edit this post once again.
These are my old Ideas, summarized in one Spoiler, but I think it's not going to happen.
- Spoiler: Show
- Morrowind MMO...
First of all there needs to be a dedicated server tool and a client that can be each launched on different platforms. (Windows, Linux, maybe Mac)
Server need to be able to save stuff in mysql or other (better) database structures, like player stats, inventory and so on.
The Server needs some kind of synchronisation/interpolation (punch me if I'm missing the correct term) so every player sees the same with low delay or even without delay. (Otherwise it would be laggy, making (melee) pvp, joint missions etc. impossible)
Synchronisation also means, that all NPCs are in the same place for each player, so NPCs have to be calculated by the server and sent to the clients. I'm talking about NPCs a bit more later on.
Coding
Changing "little" things would be much easier, if there was a server config and a gamemode file.
The Server config contains options like player slots, password, rcon password, the map that's loaded, the gamemode that's loaded and various other stuff, maybe how long a day in game lasts for example.
The gamemode is the more complicated thing, but it would be very nice if there was an editor (c++ based) making changing gameplay easier for the server host by giving predefined functions to the scripter.
(Even if it annoys some of you, here are links to the SA:MP wiki articles about the scripting functions and callbacks:
http://wiki.sa-mp.com/wiki/Category:Scripting_Functions
http://wiki.sa-mp.com/wiki/Category:Scripting_Callbacks
This might be the best example I could give for what I want to say, so have a look what the possibilities are in SA:MP. Please notice aswell that SA:MP took some years to develop to the current point and functionality and keep in mind that it's about giving examples of what could be done somtime in the future.
The gamemode editor could contain some of the following features as :
- Setting a players level, skill, attributes, life, mana, stamina, position, spells, inventory...
- restricting skills, races, classes, zodiac signs, spells, items, potion effects...
- Allow adding of new menu windows, like trade windows for trading between players, mail systems or even writing books oneself,...
- make NPCs invulnerable, change their stats or inventory, make them respawn after a certain time when they got killed, disable looting from them...
- admin ranks & commands like kicking, banning ip and nickname, restarting server...
- turn pvp damage, damage given to NPCs, mob spawning, on / off for certain areas,
- lock house doors, chests, containers with keys or trap spells
- spawing mobs, npcs
- checking if the clients game is modded or trained, if he got cheats
Problems and solutions
Turning a singleplayer game into a multiplayer game may let many problems occur. Here are my first thoughts on them:
Sleeping
The basic problem with sleeping is that in single player, the hours just run and all of a sudden, it's night. In multiplayer, you can't just have one player have day and the other one night. So basically, the server needs to determine when it's day or night. One possible solution would be animating the player laying down and slowly regenerating health, mana and stamina while the player is watching his character sleep. The player shouldn't be able to wake his character from sleeping unless he has regenerated or he's assaulted by npcs, mobs or maybe even other players. Regenerating while sleeping shouldn't take longer than 5 minutes. Another Idea I took from here is to make sleeping the same as it is in Minecraft: When all players are in their beds, you can sleep.
Inventory and Menu
I don't see another option here than just not pausing the game, which is more complicated than it sounds. Of course it sucks to be attacked while brewing stuff, but it would suck more if any player could pause the game.
Player's Death, PvP & Looting
These are 3 sensitive points I like to summarize under one headline because they all belong together. In singleplayer mode, the player has to reload his last saved game when dying. This function is of course not possible in multiplayer mode. Instead of that, we could use an event, like some god saying: "Your body may have been slain, but your soul just found itself a new body. You'll get along just fine!" or somewhat and see the "new" character sleeping. (Attributes, Skills etc. stay, Items....see below :) ) For open world style gameplay looting can be a huge problem. Players could just loot off players (or NPCs, NPC loot is commented under the headline NPCs) and the player would lose all his equipment. That's of course not what we want. Let's imagine a variable named e.g. "sv_pvp_lootfactor" in the server config with possible values of 0-100. (yeah, I've played cs aswell) This is the percenteage of randomly selected items that stays with the player's "old" body and is available for loot for any player passing. If the player got killed by a mob, he could just walk there and pick the stuff up from his old body. (weird thoughts O_o ) There needs to be another protective measurement if you want to prevent morrowind from being turned into some midieval day-z shit. For example, I thought about an option for hosts to deploy "deathmatch-free" zones, where a player can hold a weapon or spell ready, but is prevented from casting/punching/shooting so no npcs and players can be harmed. It would be more wise though to determine a certain zone as a deathmatch zone where players can harm players.
NPCs & looting
First I'd like to divide the vast amount of NPCs into 6 Groups:
- 1) VIP NPCs:The NPCs you get a warning when attacking them in singleplayer mode
- 2) fraction NPCs: All NPCs that belong to a fraction
- 3) Traders: includes trainers, spell-techers and all that
- 4) Side-Quest NPCs: NPCs needed for little side quests
- 5) Unique NPCs: All of the above are unique aswell, but this group includes for example npcs like umbra or other NPCs that dont have a quest for you.
- 6) Trash-NPCs: Not Unique! (e.g. the guards in a city, dagoth-worshippers, assassins...)
I gave this a bigger thought aleady. You could now decide as a server host, which NPC groups should be Invulnerable, can't be looted, fight back...
Example:
sv_npcgroup_invulnerable "1,2,3,4"
sv_npcgroup_noloot "6"
sv_npcgroup_fightback "5,6"
Drinks and spells
In singleplayer you can drink hundreds of potions making your character nearly invincible. Some spells would be pretty overpowered in multiplayer mode aswell. So there has to be the possibility for a server host to limit the active spell and/or potion amount to a certain number (maybe via config, sv_limitpotioneffects "5", sv_limitspelleffects "3") and in addition restrict certain spell effects in some .ini file or in the gamemode (All effects need an ID, for example fire damage would be ID 1, Cold Damage ID 2, .... ,Levitation ID 33,...) restrict_effects {2,15,33,67}
limited houses
Everybody likes to own a house in morrowind but there are only limited houses. I see two possible options:
1) Mapping houses...
...which costs a lot of time for server hosts but doesn't need NPCs to be killed
2) Removing certain NPCs in your gamemode & creating real estate agent NPCs in front of the houses :D (house vendors would probably fit better into the feeling of the game)
Well, that's my MMO Idea so far, I very much appretiate your feedback and thoughts!