Log in

View Full Version : Ideas about Quests & Game mode



gpgpgpgp
05-21-2013, 06:02 AM
Revised! I know it's long. Please read it again, developers, thx!

There is no need for quest synchronization if players are just playing like this. Only the main player (server) needs to record his quest status, and other players (clients) play a role like "mercenaries", and fight along with the main player to help to accomplish his quest. Which means the "mercenaries" must try hard to protect main player from being killed, or the game has to go back to the last save (due to automatical reload). If a "mercenary" is killed, he'll be automatically kicked and forced reconnect to the server with his recorded inventory, and teleport to the main player (to avoid unsynchronization issue caused by automatical reload on the client game, such reconnecting should be completed within seconds as long as the connection is good). (Since it is almost impossible to play a FPS game if one's lagging all the time in the first place.)

How to save game as a "mercenary":
The Appearance, Inventory, Perks, Skills, SPECIALs and other stats of "mercenaries" can be easily saved in an encrypted local file when they exit the game or cut off from the server (lose connection or got kicked). The file is saved in the local game folder so that "mercenary" can connect to another server (if he wished) or start his game as a server with his character & inventory preserved. The file should be encrypted to prevent cheating, but during Alpha Tests the encrypting is not necessary at all. (And can be easily modified for all kinds of tests and funny results)
After the "mercenary" leaves the game (either be kicked or killed or he left himself), the server automatically delete those unused "mercenary" NPCs in the game world. So if no other player is connected to the server, it equals to a single playing on the server.

How to save game as the "lone wanderer" (main player, server):
The server can activate a function (called "Multiplayer saving", maped as "F1" or something replacing the original "Quicksaving" key) which shows a "The server is trying to save, Please leave the game and reconnect the Server in 5 seconds" message to everyone and kick all "mercenaries" after a few seconds. After all "mercenaries" are gone, the server then automatically save the game via the original in-game functions. This should avoid any saving issues on multiplaying, since as explained, if no one else is connecting to the server, it equals to a single playing. And Saving is Always done when the server is "Single-playing". After the save is complete, the server can be seen again on the server list, and those "mercenaries" are forced (or "invited" with a yes/no option) to reconnect to the server and continue their game. Similarly the server can press "Multiplayer Reload F2" to reload his game by the latest save file (though not recommended in Multiplayer mode) or if the server player is killed (and the game inevitably auto-reloads ), all "mercenaries" are immediately kicked and after server finishes its reloading, they're forced (or "invited" with a yes/no option) to reconnect to the server to continue their game.

As you can see, such game mode avoids most issues on multiplaying (saving can be done), and preserved the most game content (doing quests and DLCs together, the Main Player runs the quest script and the Mercs are teleported near the MP via a timed script that checks distances regularly ). The program development is also made easy( much easier than what you've planned to do, in my understanding, making it an MMO ).

Forgive me if I'm still not explaining the above things well. If any questions can make them clearer, just ask them.

Basic functions needed:
Client: 1.Saving current Character into a simple local txt file, not really necessarily DB since the information is pretty neat and small itself, and should be stored locally;
2.Able to receive invitations ( see below );
Server:1.Kick Players;
2.Check Player Distances and Teleport them if they're too faraway or in other cells (Clients should be able to handle teleporting between cells); Check and Teleport can be done either by Timed Scripts/ A function called by a mapped key/ A function called by a mapped key with a delay before start checking and send a message "Get Closer or Get Teleproted!"
3.Mark the IP of playing Clients before saving/reloading and send them invitations after finishing it;

That's all! So simple! If you don't use the Invitation mechanisms in the Alpha Test, it's even simpler! As long as you finish NPC/Monster sync, the game will be very playable.

Time Stage: Right after NPC/Monster sync is stable.

Volumed
05-21-2013, 01:24 PM
That is a great idea for something like a role-play server, but VaultMP is not one thing. You are right there is no need for quest sync and it's not going to happen Foxtacles already said so "to much work". But still there will be quests, they are going to work with server sided scripts the same with AI(NPCS/Creatures). The firsts quests will be really basic like kill 20 radroachs and you get 200 bottle caps or something.

I hope if VaultMP is at a playable stage for servers I don't think and I do not hope it's not going to work with .text files to storing information x'D. That is more the work for a database like PHPMyAdmin and others.

gpgpgpgp
05-24-2013, 02:59 AM
You mean we'll probably miss most of the original quests if we want to multiplay the game? I hope there's a way to preserve those quests, so that we won't have to rebuild everything of the game world by ourselves.

If game saving can be completed without any issue on a single-player mode, it can certainly be done in a multiplayer mode when there is actually no other player connected to it. Everything of the server player can be saved with the original save function, including quest status. So the original quests are preserved, and can be multiplayed (in the "main player" & "Mercenaries" mode).

I get the idea of such game mode mainly from the Left 4 Dead and Dead Island. And these are perfect LAN co-op games. It doesn't matter who's the "main player" when we're all playing the game in a 10 square meters room. Luckily it suits the game mechanisms well and so programming is easy and game content is preserved. Sadly it doesn't fit the mode of Internet multiplaying very well (you can hardly play a complete main line story as "Merc", though you can do it by playing as the server).

I find that you guys seem to be very ambitious, willing to turn the F3 to a game of MMO, or something with Internet Dedicated Server etc, I'll appreciate it if you succeed, but I don't think it's going to be easy. Especially at the cost of the original F3 game world.

Anyway, if you want to adopt/further discuss my idea on the game mode, just say it. Or you want to build it into an Internet game, and need any asistance in filling the world, I'm always here willing to suppport you.


PS: I revised the first post to explain itself more clearer. Strongly recommend that you should try my mode as a beta test stage after you finish monsters/NPC synchronizations. After all it should be really easy to script my ideas.

Volumed
05-24-2013, 01:00 PM
Sorry, but the saving part in your text doesn't make any sense if you know anything about the complex concept of multiplayer.

"First rule in multiplayer games: never, ever, trust a client. Never."

Read this also: https://www.vaultmp.com/showwiki.php?title=What+vaultmp+is+-+and+what+it+isnt

gpgpgpgp
05-25-2013, 06:24 AM
Guess I've got to pick up cpp codes again. No pains, no multiplaying. Fair enough.

roby65
05-25-2013, 03:15 PM
Hi,
i didn't read all the post as i'm in hurry now, but i will reread it later and answer better.
For now i just wanted to tell that the save part doesn't really makes sense:
the save MUST be done server side, client isn't authoritative, server is.
Also using the same save for every server is not acceptable, as every server decides is own game mode.

The only thing that comes to my mind now is stats saving, that could be done on a central server if players could be uniquely identified.
Anyway nothing of this is doable and is not what vaultmp is made for.

cOOLsp0T
06-22-2013, 01:51 PM
I guess saving the player stats and more can be realised with a mysql hook up. The best would be, if the masterserver would save an account and the clientservers saves the playercharacter.

Masterserver -> Account auth succes -> Return: Client Server List -> Choosed ClientServer -> Return: Character List -> Play

The biggest problem would be, that the map coordinates must be saved or the player starts everytimes from the same location.

Volumed
06-22-2013, 02:24 PM
I guess saving the player stats and more can be realised with a mysql hook up. The best would be, if the masterserver would save an account and the clientservers saves the playercharacter.

Masterserver -> Account auth succes -> Return: Client Server List -> Choosed ClientServer -> Return: Character List -> Play

The biggest problem would be, that the map coordinates must be saved or the player starts everytimes from the same location.

This is true.
I do not hope that it's going to work from the master server this will give less freedom to server hosts, and that is against the idea of VaultMP.
I hope I can can just host my own MySQL database that would give a lot of freedom and easiness.

That is pretty easy, there is already a mod doing it https://www.vaultmp.com/showthread.php?1393-EX-Easy-server-setup ;-)

cOOLsp0T
06-23-2013, 11:01 AM
I cant see any limitation for freedom, because the mainserver given only the account requests. Mod Gamerules or other variable things are hosted by the clientservers. So 2 different clientsevers can host different game modes with different map, models and so on. I see the masterserver more as loginserver and the clientserver as worldserver.