Overland Map Multiplayer (Plausible Idea)

Users who are viewing this thread

I might have thought of an idea to make the overland map have multiplayer capabilities, with the proper scripting and modification, without editting the .exe file!

HOW IT WORKS

First, the mod files are downloaded and installed as usual. The player loads the game, and selects 'Start New Game'. This, instead of loading single player, opens a connection to a remote database so the player can host a game (see problem 1). They then are placed on a starting position in a map hosted by a certain server, which houses all the data about everything occurring on the map. For example, an entry into a .txt file possible could be the party information, name, location, number/types of soldiers, destination. Each player would have party information displayed on other's game. Similar to the player character intercepting an AI lord, when players intercept, a 'chat room' sort of thing comes up (time still passes at all times) with options to battle or leave.

Upon selecting the battle option, the involved parties would have their inventory, exp, party information saved, kicked from the server, and put into (or allowed into) a regular battle server that loads the party/inv/exp information and applies it to the character where they then battle (see problem 2). After the battle, the server that hosted the battle re-reads party information and sends it to the overland map server, where it is promptly updated and the player returns to the overland server to continue on their way (no taking players as prisoners).

Entering towns and buying things can be run on the players' computers; upon purchases and selling, information on the database is updated. Same for recruiting from villages.

There will be NO AI PARTIES, since the server would likely be overloaded and laggy already (see problem 3).

After the database does not receive updates from the game for 5 (?) minutes, party information is deleted.

MAJOR PROBLEMS

Problem 1:
    How can a player host an overland map game?
  Possible solution:
      Constantly sending party information to a remote database to be distributed unto other players's games
Problem 2:
    How can the players be sent into a battle without everyone else and without crashing the game?
  Possible solution:
      Kicked from the overland server after party information is saved, given a password, and use that password to get into a regular server
Problem 3:
    How can information be updated frequently enough as not to reduce playability, but have as little lag as possible?


I know this has been suggested hundreds of times before, but I think there would be a way around certain blocks. Take cRPG for example, similar, but not exactly. Think of this as taking Strategus to the next level.
Post your ideas and what you think about this system!
 
Actually.. this seems plausible.

I wonder if you can send & receive URL message in singleplayer. You could simply send your party data every minute to the server containing troops, position etc (as you said) and also receive other peoples party data which simply gets "pasted" onto a blank party.

Once you get into combat you'll simply have a flag, something like flag_in_battle = 1, and parties with that flag will get ignored on the "pasting" part.


In overall;
great idea..
 
Sinisterius said:
Actually.. this seems plausible.

I wonder if you can send & receive URL message in singleplayer. You could simply send your party data every minute to the server containing troops, position etc (as you said) and also receive other peoples party data which simply gets "pasted" onto a blank party.

Once you get into combat you'll simply have a flag, something like flag_in_battle = 1, and parties with that flag will get ignored on the "pasting" part.


In overall;
great idea..

Would take a god or two to program then  :o
 
Sounds like it might be possible to me. My only worry would be that I think overuse of the send_message_to_url could lag massively. HTTP is not a fast protocol and not really appropriate for this sort of thing. Also the server side set up would be very complicated to implement. But good thoughts on this anyway!
 
thanks for replies, and not flat out rejection (dang you suspicious pilgrim XD)

lag is the main problem with this, but we ought to try it anyways. playing on EU servers extensively has made me kindof used to the whole lag thing
 
Suspicous Pilgrim said:

Obvious troll, is obvious.

Yeah this sounds plausible actually. Some way to get all the work to actually be done on the local comps and to just update servers that return information to these locals everytime a certain event (trigger) occurs. Why not? You could have triggers for kills/deaths...etc
 
Interesting idea, sounds like it could work indeed. Though it'd take an awful lot of workarounds, and workarounds tend to give unwanted results.

Another thing that could be a problem is the amount of battle servers needed. To be on the safe side you'd need one for each player (or one for every two players since there's no AI parties). Which would be... problematic.
However, I was thinking of a possible solution to that problem. Since this already includes a lot sending messages back and forth between different places, I suppose it couldn't hurt with some more. So one could write a program that starts up a new server when one is needed, and closes it after the battle is over. So upon entering a battle you'd get a server name (e.g. "Overland_Battle_Server_13") and a password and then gets kicked out from the overland map to go and join that server. And after the battle was over the server would automatically close down until needed again.
 
Yoshiboy said:
Sounds like it might be possible to me. My only worry would be that I think overuse of the send_message_to_url could lag massively. HTTP is not a fast protocol and not really appropriate for this sort of thing. Also the server side set up would be very complicated to implement. But good thoughts on this anyway!

I was saying the same thing to splint, and he said something about send the message every min - but that would result with players 'Jumping'

Beaver said:
Interesting idea, sounds like it could work indeed. Though it'd take an awful lot of workarounds, and workarounds tend to give unwanted results.

Another thing that could be a problem is the amount of battle servers needed. To be on the safe side you'd need one for each player (or one for every two players since there's no AI parties). Which would be... problematic.
However, I was thinking of a possible solution to that problem. Since this already includes a lot sending messages back and forth between different places, I suppose it couldn't hurt with some more. So one could write a program that starts up a new server when one is needed, and closes it after the battle is over. So upon entering a battle you'd get a server name (e.g. "Overland_Battle_Server_13") and a password and then gets kicked out from the overland map to go and join that server. And after the battle was over the server would automatically close down until needed again.

I'm doing something along the lines of this, except the map isn't ingame (As was said within this topic it would be too problematic - maybe in the future it could be done though).
There will be servers for locations and battles.

I'm not going to say anymore until I get further in development.

(If anyone is interested in this idea, and thinks they could help, they should PM me)
 
Another idea that you could look into is to make it so the 2 parties that started a battle still show up on the map and the fight could be joinable by allies of the 2 sides - much like when you stumble on two lords going at it in single-player. The thing is, you could even allow time to pass at the same rate on the map when the armies are fighting. This could simulate the number of days that the battle took to complete. Would it not be possible to have all of this happen in the one server?
 
It would be OK for players to jump around from update to update, but everything would have to pause for a few seconds and let people make decisions, like a turn-based game. 

I honestly think that it would be smarter to use a Presentation for overworld movement, and literally do turn-based movement of parties around the game-world, with a turn update every few seconds.  If two parties shared the same sector, then they could battle.  It would also help a little bit in terms of communications, because the mechanics would be much simpler and the amount of data the server would need to get and send per update would be small (party, X, Y).

With a nice-looking 2D map, it'd be almost as classy as using the overworld map, and it probably be a bit easier to realize.

 
xenoargh said:
It would be OK for players to jump around from update to update, but everything would have to pause for a few seconds and let people make decisions, like a turn-based game. 

I honestly think that it would be smarter to use a Presentation for overworld movement, and literally do turn-based movement of parties around the game-world, with a turn update every few seconds.  If two parties shared the same sector, then they could battle.  It would also help a little bit in terms of communications, because the mechanics would be much simpler and the amount of data the server would need to get and send per update would be small (party, X, Y).

With a nice-looking 2D map, it'd be almost as classy as using the overworld map, and it probably be a bit easier to realize.

I was planning to have a kinda turn based map based on a browser - until Splintert spoke to me about this.
I didn't believe it was possible, until today.

The turn based part won't be 'Turn based', it's just you'll move x distance every 'Round' aka update.
This was planned for the browser though, but seeing this, it may be possible to put it into the game!

I've got alot to learn, just bought two books on Python - one of the books includes doing databases.
 
ok, new terminology for us

Tick - update/round

one server can run multiple battles to limit server costs

each Tick can be 1 minute, every minute the character moves a certain amount determinted by speed (e.g. 4.6 units/tick across the x axis along the map)

1 minute ticks gives enough time to do more complicated procedures like selling/buying but doesnt waste too much time sitting around.

Server idea
each 'zone' on the map (original faction territory) will have its own server, to accommodate for multiple battles happening at once across the world
 
Wouldn't this need server-side programming? You would need the server to be able to process the data sent by the client. But this looks like an idea that needs to leave theorical-only phase and get being done! I know the dedicated server files can be modded since some servers have special mods, like giving random weapons and armors and so on.
 
well if its going to be done lets do it, we need experienced python scripters and thats about it since we are just using native items and stuff for now, later it can be ported to different mods!

nobody is going to make the thread under module development, he has more experience with mods than i.
 
Back
Top Bottom