Theoretical Multiplayer Setup
-
- Posts: 79
- Joined: Sun Apr 03, 2011 10:21 am
Theoretical Multiplayer Setup
This should act as a sort of Blueprint for a Multiplayer feature if we ever get to the point of having one and how it could work.
Connection Types: direct IP and LAN
Basic setup:
Upon hosting you'll be brought to a player gathering lobby from where you'd be able to setup the game universe/starting conditions just like in singleplayer.
The host also determines the amount of AI players.
This lobby is a place where joined players who have connected to the host can customize their race like in singleplayer and mark themself as "ready".
If every player has been marked ready, the host can start the game.
One tiny addition would be important. The host chooses a standard player distribution among the galaxy or can choose them to start in close proximity to other human players. Very much important for cooperative gameplay.
A basic Multiplayer feature would be that it is ensured that everyone has the same game files and the same is used among players "custom theme/mod etc." for the current game. It's just a basic safety think to ensure that no desyncs happen if modding or else is expanded in the future.
Ability to set a Lobby password as a host.
On the fly join/drop taking over 1 AI player.
constant connection retry if connection drops until connection has been established or host cancels the retry process. Upon connection loss the game should be "paused" and instantly "saved" just for security.
Gameplay:
Very much is like in singleplayer with a minor tweak that the game doesn't stop in menus. For comfort the host can pause/unpause the game and kick players out. A kicked players property is instantly erased and planets get empty.
Players can send others messages through diplomacy.
Players get the ability to set beacons on the galaxy map "attack this", "defend this", "rally here" to be seen by their allies. It serves as better communication tool between human players. It serves no purpose for the AI.
save/load:
If the host "saves" , the game pauses and distributes a savefile to each player. This way anyone could act as the host next time. (could be disabled by on option if players fear bigger file transfers.
Upon loading a Multiplayer savegame you'd sit in the Multiplayer lobby with the game allready setup/loaded and every joining player could pick their race or if the system is smart enough you are automaticly placed to your race. After everyone is done and marked as "ready" the game continues from the point it where it has been saved.
Let's say you want to load a Multiplayer game but 1 player or more have dropped permanently out and don't want to continue playing in the future. If a Multiplayer game is loaded and all players are marked as "ready", the host can "force" a start and all missing players are erased from the galaxy.
closing words:
Although it may sound as much it really isn't. Everything else regarding the game is 100% like in singleplayer. Except for the Multplayer basic core stuff we only have 4 minor things. Starting points for human players (close,even distribution) -> done by the system,no pause in menus,beacon placement and message writing to others. I hope it is as much detailed as it can get. This isn't some super fancy Multiplayer but more isn't needed.
Connection Types: direct IP and LAN
Basic setup:
Upon hosting you'll be brought to a player gathering lobby from where you'd be able to setup the game universe/starting conditions just like in singleplayer.
The host also determines the amount of AI players.
This lobby is a place where joined players who have connected to the host can customize their race like in singleplayer and mark themself as "ready".
If every player has been marked ready, the host can start the game.
One tiny addition would be important. The host chooses a standard player distribution among the galaxy or can choose them to start in close proximity to other human players. Very much important for cooperative gameplay.
A basic Multiplayer feature would be that it is ensured that everyone has the same game files and the same is used among players "custom theme/mod etc." for the current game. It's just a basic safety think to ensure that no desyncs happen if modding or else is expanded in the future.
Ability to set a Lobby password as a host.
On the fly join/drop taking over 1 AI player.
constant connection retry if connection drops until connection has been established or host cancels the retry process. Upon connection loss the game should be "paused" and instantly "saved" just for security.
Gameplay:
Very much is like in singleplayer with a minor tweak that the game doesn't stop in menus. For comfort the host can pause/unpause the game and kick players out. A kicked players property is instantly erased and planets get empty.
Players can send others messages through diplomacy.
Players get the ability to set beacons on the galaxy map "attack this", "defend this", "rally here" to be seen by their allies. It serves as better communication tool between human players. It serves no purpose for the AI.
save/load:
If the host "saves" , the game pauses and distributes a savefile to each player. This way anyone could act as the host next time. (could be disabled by on option if players fear bigger file transfers.
Upon loading a Multiplayer savegame you'd sit in the Multiplayer lobby with the game allready setup/loaded and every joining player could pick their race or if the system is smart enough you are automaticly placed to your race. After everyone is done and marked as "ready" the game continues from the point it where it has been saved.
Let's say you want to load a Multiplayer game but 1 player or more have dropped permanently out and don't want to continue playing in the future. If a Multiplayer game is loaded and all players are marked as "ready", the host can "force" a start and all missing players are erased from the galaxy.
closing words:
Although it may sound as much it really isn't. Everything else regarding the game is 100% like in singleplayer. Except for the Multplayer basic core stuff we only have 4 minor things. Starting points for human players (close,even distribution) -> done by the system,no pause in menus,beacon placement and message writing to others. I hope it is as much detailed as it can get. This isn't some super fancy Multiplayer but more isn't needed.
RE: Theoretical Multiplayer Setup
Just one thing to add:
Would be nice to have an optional jump in feature... Something like the one in Sword of the Stars where you can always join a MP game and take control over a AI player.
Would be nice to have an optional jump in feature... Something like the one in Sword of the Stars where you can always join a MP game and take control over a AI player.
- MartialDoctor
- Posts: 391
- Joined: Mon Mar 07, 2011 10:01 am
RE: Theoretical Multiplayer Setup
You're really gung-ho on this whole MP part, aren't you Eagle [:)]
Ah, that is a nice feature they have there.
ORIGINAL: crazy_guy
Just one thing to add:
Would be nice to have an optional jump in feature... Something like the one in Sword of the Stars where you can always join a MP game and take control over a AI player.
Ah, that is a nice feature they have there.
RE: Theoretical Multiplayer Setup
Well, this type of MP should not be so demanding to implement imho.
...Igniting stellar cores....Recharging reactors...Recalibrating hyperdrives....
-
- Posts: 79
- Joined: Sun Apr 03, 2011 10:21 am
RE: Theoretical Multiplayer Setup
Yes i think so too. This stuff is very basic and taken from my various experiences of similar games. Really the last intention is to change the game. MP should only be there as a further option but should never change a game.
I'm into coding myself and although such things are "easy" to make, coding is always very time consuming even if you can code blindfolded.
With this said i hope we'll get this nice little feature and i can focus on my ideas regarding the game itself [:D] Hoooorrayy for the Animal Farms
I'm into coding myself and although such things are "easy" to make, coding is always very time consuming even if you can code blindfolded.
With this said i hope we'll get this nice little feature and i can focus on my ideas regarding the game itself [:D] Hoooorrayy for the Animal Farms
RE: Theoretical Multiplayer Setup
I think something like this could be added in the future. Even if I ain't the biggest fan of multiplayer for DW, this might actually work quite nicely. As long as it won't affect the quality of the SP.
Nothing is impossible, not if you can imagine it!
"And they hurled themselves into the void of space with no fear."
"And they hurled themselves into the void of space with no fear."
RE: Theoretical Multiplayer Setup
ORIGINAL: EaglePryde
closing words:
Although it may sound as much it really isn't. Everything else regarding the game is 100% like in singleplayer. Except for the Multplayer basic core stuff we only have 4 minor things. Starting points for human players (close,even distribution) -> done by the system,no pause in menus,beacon placement and message writing to others. I hope it is as much detailed as it can get. This isn't some super fancy Multiplayer but more isn't needed.
Actually it would require a distressing amount of work. Coding real-time multiplayer support is non-trivial. It might not look like a lot, but there's actually quite a bit to it. It's something worth considering for a future release of DW-2, but probably not worth doing with DW as it stands.
There is also the issue of play balance. For example, ping speed will give the host a distinct advantage, being that he can have an immediate response to his requests to retreat ships or re-focus his attacks. While there are ways to accomodate this, it's only the tip of the iceberg.
“That which can be asserted without evidence, can be dismissed without evidence.” ― Christopher Hitchens
-
- Posts: 79
- Joined: Sun Apr 03, 2011 10:21 am
RE: Theoretical Multiplayer Setup
ORIGINAL: Kayoz
ORIGINAL: EaglePryde
closing words:
Although it may sound as much it really isn't. Everything else regarding the game is 100% like in singleplayer. Except for the Multplayer basic core stuff we only have 4 minor things. Starting points for human players (close,even distribution) -> done by the system,no pause in menus,beacon placement and message writing to others. I hope it is as much detailed as it can get. This isn't some super fancy Multiplayer but more isn't needed.
Actually it would require a distressing amount of work. Coding real-time multiplayer support is non-trivial. It might not look like a lot, but there's actually quite a bit to it. It's something worth considering for a future release of DW-2, but probably not worth doing with DW as it stands.
There is also the issue of play balance. For example, ping speed will give the host a distinct advantage, being that he can have an immediate response to his requests to retreat ships or re-focus his attacks. While there are ways to accomodate this, it's only the tip of the iceberg.
Yes i know it's time consuming but that's something i have allready written. We aren't really talking about competitive multiplayer here and ping speeds really don't count unless someone connects with far to high ping that would make in not possible to play. You don't gain any advantage through it and this is no FPS where ping counts are of such a high importance. Because you can automate nearly everything it lessens the importance towards ping even more. You don't even have to tweak something for balance because if you play with or against humans it won't be any different than against the AI only. You basicly can choose your allies and enemies during the entire game, wage war or band together. It's like a game of "Risk" with AI players if you'd like to see it this way.
Realtime Multiplayer is a pushover regarding coding if you know your stuff. It's by far not a complex matter. Coding AI players is by far the most complicated stuff in any game but Multiplayer ain't. Specially if it changes nothing and doesn't have to change something.
We all know that a DW-2 won't come that soon because you'd be foolish to start a sequel if the actuall game is very well going and is still being expanded and worked on. Because of the high time frame this game will live, a multiplayer addition even if it's inside an expansion is worth every bit.
RE: Theoretical Multiplayer Setup
Ping may matter.
If you try taking down defense bases and space port of a planet that has single bases matching your attack force, you may notice that. Edge forward, shoot, turn, retreat, watch closely for someone going astray into range for another... Micro management can pay off.
If you try taking down defense bases and space port of a planet that has single bases matching your attack force, you may notice that. Edge forward, shoot, turn, retreat, watch closely for someone going astray into range for another... Micro management can pay off.
-
- Posts: 79
- Joined: Sun Apr 03, 2011 10:21 am
RE: Theoretical Multiplayer Setup
If you have to project a bullet in realtime and physic included, ping will indeed matter but such a game isn't ping sensitive or else there would have never been an realtime 4x game that worked. Even MMO's can run very well on ping's around 100 and those are another level up and not an 4x game with let's say 4+ human players.
Because network coding is one of the basic foundations you'd learn if you want to be a game coder this really is old school for the pro's in the game industry. They have the talent and the knowledge to do it. Everything else is hardware/connection dependant of the players.
Why we are talking about pings now? This is a direct connection/Lan setup where pings are very low unless you'd sit behind a crappy router or something from A-B is going wrong but that's hardly somewhere inside the code.
Because network coding is one of the basic foundations you'd learn if you want to be a game coder this really is old school for the pro's in the game industry. They have the talent and the knowledge to do it. Everything else is hardware/connection dependant of the players.
Why we are talking about pings now? This is a direct connection/Lan setup where pings are very low unless you'd sit behind a crappy router or something from A-B is going wrong but that's hardly somewhere inside the code.
RE: Theoretical Multiplayer Setup
ORIGINAL: EaglePryde
Even MMO's can run very well on ping's around 100 and those are another level up and not an 4x game with let's say 4+ human players.
That's a situation where all players have ping issues. The situation you're referring to has the host of the game having ZERO ping, whilst others are subject to the whims of the Internet.
ORIGINAL: EaglePryde
Why we are talking about pings now? This is a direct connection/Lan setup where pings are very low unless you'd sit behind a crappy router or something from A-B is going wrong but that's hardly somewhere inside the code.
Well, your original statement was:
ORIGINAL: EaglePryde
Connection Types: direct IP and LAN
... so how does that preclude playing with someone on another continent? Nothing about your original statement restricted it to LAN play. I can play L4D with my friend using his router's IP address. How does your original statement preclude this?
As for coding multiplayer - you're talking about reorganizing the entire architecture of the game, to accomodate the moves of multiple players. setting up the sockets isn't the issue I'm talking about - I'm talking about coordinating the game's responses to incorporate multiple sources - it would very likely require a non-trivial architectural change. Have you actually DONE any coding? I rather doubt it, or you wouldn't fob it off as such a minor task.
“That which can be asserted without evidence, can be dismissed without evidence.” ― Christopher Hitchens
RE: Theoretical Multiplayer Setup
Something a lot of non programmers don't know: A game programmer do NOT need to write everything himself...
There are network libraries out there that are written by specialists and are free for use.
Surely the implementation of the library to the game and the message handling must be done but thatare trivial tasks in comparison to network coding.
There are network libraries out there that are written by specialists and are free for use.
Surely the implementation of the library to the game and the message handling must be done but thatare trivial tasks in comparison to network coding.
RE: Theoretical Multiplayer Setup
ORIGINAL: crazy_guy
Something a lot of non programmers don't know: A game programmer do NOT need to write everything himself...
There are network libraries out there that are written by specialists and are free for use.
Surely the implementation of the library to the game and the message handling must be done but thatare trivial tasks in comparison to network coding.
Networking isn't an issue - I didn't say it was. What is being proposed is a radical architectural change to the game.
As for free libraries - you get what you pay for.
“That which can be asserted without evidence, can be dismissed without evidence.” ― Christopher Hitchens
RE: Theoretical Multiplayer Setup
ORIGINAL: Kayoz
As for coding multiplayer - you're talking about reorganizing the entire architecture of the game, to accomodate the moves of multiple players. setting up the sockets isn't the issue I'm talking about - I'm talking about coordinating the game's responses to incorporate multiple sources - it would very likely require a non-trivial architectural change. Have you actually DONE any coding? I rather doubt it, or you wouldn't fob it off as such a minor task.
Kayoz I don't know the exact structure of the game's datasource but from my view it should be enought to just relink the access to this datasource from the clients to the hosts one.
The question here is just how much changes(messages) per 1/25 second happens. 100? 1k? 10k? 100k?
The host needs to be the fastest machine of all players as it needs to host the full game and AI calculations.
Furthermore with this concept players which are only able to play small maps in singleplayer would be able to play big maps if the host is a powerful rig.
RE: Theoretical Multiplayer Setup
ORIGINAL: Kayoz
As for free libraries - you get what you pay for.
Ever worked with lidgren?
-
- Posts: 79
- Joined: Sun Apr 03, 2011 10:21 am
RE: Theoretical Multiplayer Setup
for the slow readers once more. From a technical standpoint it's easy and very common. Doing so on the other side consumes much time. Is there anything unclear in my words for you because you don't seem to understand it. And that's what i stated from the beginning. AND if you haven't read it in my first post i also included it to be a basic working setup. I never spoke of getting it done tomorrow..haven't i?
You also seem to compare a common person to one who actually IS working in the industry and is making this game and the knowledge and skill to pull such a game through is nothing you learn in 5 minutes. Even the most skilled programmers who can make any kind of application lack the fundamental knowledge of game design and creation.
what's wrong with direct IP connection? I don't seem to get your point here. With some "special" cases you can play very well cross continent but this is hardly used. Most players stay rather close to their country regarding direct IP sessions.
I really don't get your point in any bit of your post. Are you talking about it not being possible although indie programmers are doing such and game companies are doing such and not only for FPS but also for 4X games of any kind? Companies like maybe consisting of 2 people/coders and not more. Suppose you don't know how it works and you sure don't work in this part of the industry.
Hmm..if i have done any coding..well..i work with C#/.NET and the XNA Framework although i could offer you C++ and directx too. XML is nothing i need to mention and my skills at setting up linux based servers...blah blah blah...i hate this "you don't no anything" stuff where you always have to prove some guy who really doesn't know much, how well your background may be. I have even tried to pull of a game like this myself but it never got finished because doing it as a hobby with people from different countries won't work well. But that's something different.
Maybe you even want to know what a GDD is or even Tortoise SVN and how to set it up...what do you want to know?
You also seem to compare a common person to one who actually IS working in the industry and is making this game and the knowledge and skill to pull such a game through is nothing you learn in 5 minutes. Even the most skilled programmers who can make any kind of application lack the fundamental knowledge of game design and creation.
what's wrong with direct IP connection? I don't seem to get your point here. With some "special" cases you can play very well cross continent but this is hardly used. Most players stay rather close to their country regarding direct IP sessions.
I really don't get your point in any bit of your post. Are you talking about it not being possible although indie programmers are doing such and game companies are doing such and not only for FPS but also for 4X games of any kind? Companies like maybe consisting of 2 people/coders and not more. Suppose you don't know how it works and you sure don't work in this part of the industry.
Hmm..if i have done any coding..well..i work with C#/.NET and the XNA Framework although i could offer you C++ and directx too. XML is nothing i need to mention and my skills at setting up linux based servers...blah blah blah...i hate this "you don't no anything" stuff where you always have to prove some guy who really doesn't know much, how well your background may be. I have even tried to pull of a game like this myself but it never got finished because doing it as a hobby with people from different countries won't work well. But that's something different.
Maybe you even want to know what a GDD is or even Tortoise SVN and how to set it up...what do you want to know?
-
- Posts: 79
- Joined: Sun Apr 03, 2011 10:21 am
RE: Theoretical Multiplayer Setup
ORIGINAL: crazy_guy
ORIGINAL: Kayoz
As for coding multiplayer - you're talking about reorganizing the entire architecture of the game, to accomodate the moves of multiple players. setting up the sockets isn't the issue I'm talking about - I'm talking about coordinating the game's responses to incorporate multiple sources - it would very likely require a non-trivial architectural change. Have you actually DONE any coding? I rather doubt it, or you wouldn't fob it off as such a minor task.
Kayoz I don't know the exact structure of the game's datasource but from my view it should be enought to just relink the access to this datasource from the clients to the hosts one.
The question here is just how much changes(messages) per 1/25 second happens. 100? 1k? 10k? 100k?
The host needs to be the fastest machine of all players as it needs to host the full game and AI calculations.
Furthermore with this concept players which are only able to play small maps in singleplayer would be able to play big maps if the host is a powerful rig.
I have to agree with you. And in terms of host vs. clients the AI routines are host native and everything else is mearly "spawned" on the clients side.
RE: Theoretical Multiplayer Setup
When it comes to software, I am more familiar with architecture than networking, but I do also fail to see that making multiplayer should be anything near "easy".ORIGINAL: Kayoz
As for coding multiplayer - you're talking about reorganizing the entire architecture of the game, to accomodate the moves of multiple players. setting up the sockets isn't the issue I'm talking about - I'm talking about coordinating the game's responses to incorporate multiple sources - it would very likely require a non-trivial architectural change. Have you actually DONE any coding? I rather doubt it, or you wouldn't fob it off as such a minor task.
If the game is not made with multiplayer in mind, why should it be easy adding it? If the game operates on data in a db, and you can have multiple people updating the db (and the db handles concurrent users), it is potentially possible, though. Then it is just input and multiple views.
It is easier for a developer that has made multiplayer before, and has multiplayer in mind as a future development. But considering DW does not have multiplayer, is there reason to believe the game is made with this in mind?
There is probably exactly one person that knows if multiplayer is impossible, hard, or easy in DW. That is Elliot. And it depends on the curent DW, his skills, and his areas of interest.
Remember that there is a lot of skills involved in making a game. Game design, backbone programming, making the logic work, making the logic balanced game wise, making good presentation, .... .... , providing multiplayer support, .... ... You build a team out of people with different skills. In a one man team, it would be amazing to have all. I think DW is amazing as a one man product, even without multiplayer.
-
- Posts: 79
- Joined: Sun Apr 03, 2011 10:21 am
RE: Theoretical Multiplayer Setup
And imagine just the amount of lines Elliot had to write. That by itself is far above impressive. But doing the complete game alone shows very advanced skills.
The point is that "easy" is because he knows how to do it and that i'm sure of. The ugly point is the amount of work but if he decides for it to be worth the cause i'm sure he would do it for an expansion. patching it in could also be done but patch processes don't involve that amount of work. But making a patch in DW where you add multiple new game mechanics isn't just a 5 line code either.
There's nothing impossible in coding. Even if the current database wouldn't be usable for Multiplayer it still isn't impossible. I suppose from Elliots point of view he would do it IF the change and amount of work and benefit for the game (time vs. paying customers) is worth it. If you would get only 50 bucks for adding Multiplayer you wouldn't do it but if you'd gain popularity, additional customers and high praise everywhere that keeps the money streaming in, you'd do it anytime.
I've seen companies add Multiplayer into games that wheren't designed for it from the start but because it turned out to be a very big need, it got added through an expansion.
And just by writing my inital post as how Multiplayer would work out, i didn't demand anything nor did i claim that it would be a weeks work. It's just possible from a coding point of view. The last word in anything would be Elliots. And given the fact that it's a legit vote in the polls makes talking about also valid (would be anyway unless deemed dead through Elliot himself).
The point is that "easy" is because he knows how to do it and that i'm sure of. The ugly point is the amount of work but if he decides for it to be worth the cause i'm sure he would do it for an expansion. patching it in could also be done but patch processes don't involve that amount of work. But making a patch in DW where you add multiple new game mechanics isn't just a 5 line code either.
There's nothing impossible in coding. Even if the current database wouldn't be usable for Multiplayer it still isn't impossible. I suppose from Elliots point of view he would do it IF the change and amount of work and benefit for the game (time vs. paying customers) is worth it. If you would get only 50 bucks for adding Multiplayer you wouldn't do it but if you'd gain popularity, additional customers and high praise everywhere that keeps the money streaming in, you'd do it anytime.
I've seen companies add Multiplayer into games that wheren't designed for it from the start but because it turned out to be a very big need, it got added through an expansion.
And just by writing my inital post as how Multiplayer would work out, i didn't demand anything nor did i claim that it would be a weeks work. It's just possible from a coding point of view. The last word in anything would be Elliots. And given the fact that it's a legit vote in the polls makes talking about also valid (would be anyway unless deemed dead through Elliot himself).
RE: Theoretical Multiplayer Setup
Of course it is possible, everything seen in any game is for sure possible, it has been done.
He could write the game fresh from scratch, and claim it is an expansion. Not that it is going to happen.
He could write the game fresh from scratch, and claim it is an expansion. Not that it is going to happen.