World Wide Servers + LAN Servers

Started by
7 comments, last by Twisttid 9 years, 10 months ago

World Wide Servers:

I was wondering exactly how I can make multiple servers inside of a game where people all over the world can join into the one of their choice. Also how would you do it so they have to create an account and then that will be put 'somewhere' or whatever so whenever they login they will be able to create a character and play on that account (and possibly link that account to all of the games)

LAN Servers:

Also, how would you make it so you can easily setup and LAN Server such as they did in Minecraft or something and then get your friends join that server but only on the same internet?

Multi-Server In One:

So, I had this idea (please no-one steal) where you you have such as in WoW where you have Battlegrounds but it's every server coming together in one massive battle, on one massive map...how would this be done?

Desktop Application:

Some of you who may have played WoW would know about the new desktop feature they have in the game, where you have the program downloaded on your computer and you have your account logged into that and then you have all of their games along the side, where you can either click Play or if you haven't already Install and this also contains stuff like News and Store etc. How would this been done also?

On a quick note, I have had literally NO experience with network programming so this is all 100% new to me, but I would really like to learn how to do this, despite not knowing anything about it at all.

Advertisement
The answer to all of your questions of "how would I do X" is "by writing the appropriate code."

From your questions, you give the impression that your imagination is running ahead of your development skill.

What kind of code are you trying to build right now, and do you have particular questions about that code? Being more concrete with immediate problems tends to get more concrete kinds of help and advice.
enum Bool { True, False, FileNotFound };

I was just hoping someone could do some sort of step by step walkthrough or tutorial on each that I can follow, and I C++ is the coding language I would use.

The "step by step tutorial" that you are asking for would look a lot like the source code for an existing MMO game.

So, I had this idea (please no-one steal) where you you have such as in WoW where you have Battlegrounds but it's every server coming together in one massive battle


I'm interested in the comment "please no-one steal" -- do you seriously believe that no other game developer has ever thought about the idea that we'd want massive battles?
(And, btw, Eve Online has something very close to that already.)
And, if you believe that other game developers have already had that idea, why do you think almost no games actually provide that experience?
enum Bool { True, False, FileNotFound };

World Wide Servers:

I was wondering exactly how I can make multiple servers inside of a game where people all over the world can join into the one of their choice. Also how would you do it so they have to create an account and then that will be put 'somewhere' or whatever so whenever they login they will be able to create a character and play on that account (and possibly link that account to all of the games)

LAN Servers:

Also, how would you make it so you can easily setup and LAN Server such as they did in Minecraft or something and then get your friends join that server but only on the same internet?

Multi-Server In One:

So, I had this idea (please no-one steal) where you you have such as in WoW where you have Battlegrounds but it's every server coming together in one massive battle, on one massive map...how would this be done?

Desktop Application:

Some of you who may have played WoW would know about the new desktop feature they have in the game, where you have the program downloaded on your computer and you have your account logged into that and then you have all of their games along the side, where you can either click Play or if you haven't already Install and this also contains stuff like News and Store etc. How would this been done also?

On a quick note, I have had literally NO experience with network programming so this is all 100% new to me, but I would really like to learn how to do this, despite not knowing anything about it at all.

Large scale battles on a single map is a hard problem, reading up on distributed simulations is a good idea. (it is a huge topic so you need to get some books), latency is unavoidable if you want it to scale to a truly massive level so you need to adapt the gameplay accordingly.

Noone will steal your idea, The reason it hasn't been done is not because the idea is new, it is because it greatly restricts the gameplay options,

Slow paced games like eve can handle "massive" battles but even they are forced to slow down the allready fairly slow simulation in order to cope with it, for a game with faster gameplay like WoW it is a very difficult and expensive problem to solve.

Consider the worst case for a 100 player battle where all players can see eachother, your servers will be forced to send information about 99 players to each of those 100 players (99*100*X = 9.900X), at 200 players you get 199*200*X = 39.800X just over 4 times as much bandwidth required for doubling the number of players, at 3200 players your worst case requirement is not 32 times as high as with 100 players, it is over 1024 times as high, a 6400 player battle can require more than 4096 times the bandwidth of a 100 player battle (even though you only got 64 times the number of players).

Clever design, less frequent updates of players further away, and similar tricks can improve these numbers(and thus allow you to increase the size of your battles further) but at the end of the day, if your players are interacting with eachother in any way(which they really need to do in a battle) it is impossible to scale linearly so each additional player you add to the battle will cost you more than the one you added before it and sooner or later you will reach a point where adding more players becomes prohibitivly expensive.

Instancing solves the problem by limiting the size of each battle and since there is no real interaction between battles it is possible to increase the number of battles (and thus the number of paying customers you can serve) indefinitely.

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

The "step by step tutorial" that you are asking for would look a lot like the source code for an existing MMO game.

So, I had this idea (please no-one steal) where you you have such as in WoW where you have Battlegrounds but it's every server coming together in one massive battle


I'm interested in the comment "please no-one steal" -- do you seriously believe that no other game developer has ever thought about the idea that we'd want massive battles?
(And, btw, Eve Online has something very close to that already.)
And, if you believe that other game developers have already had that idea, why do you think almost no games actually provide that experience?

Well, I guess you're right...

World Wide Servers:

I was wondering exactly how I can make multiple servers inside of a game where people all over the world can join into the one of their choice. Also how would you do it so they have to create an account and then that will be put 'somewhere' or whatever so whenever they login they will be able to create a character and play on that account (and possibly link that account to all of the games)

LAN Servers:

Also, how would you make it so you can easily setup and LAN Server such as they did in Minecraft or something and then get your friends join that server but only on the same internet?

Multi-Server In One:

So, I had this idea (please no-one steal) where you you have such as in WoW where you have Battlegrounds but it's every server coming together in one massive battle, on one massive map...how would this be done?

Desktop Application:

Some of you who may have played WoW would know about the new desktop feature they have in the game, where you have the program downloaded on your computer and you have your account logged into that and then you have all of their games along the side, where you can either click Play or if you haven't already Install and this also contains stuff like News and Store etc. How would this been done also?

On a quick note, I have had literally NO experience with network programming so this is all 100% new to me, but I would really like to learn how to do this, despite not knowing anything about it at all.

Large scale battles on a single map is a hard problem, reading up on distributed simulations is a good idea. (it is a huge topic so you need to get some books), latency is unavoidable if you want it to scale to a truly massive level so you need to adapt the gameplay accordingly.

Noone will steal your idea, The reason it hasn't been done is not because the idea is new, it is because it greatly restricts the gameplay options,

Slow paced games like eve can handle "massive" battles but even they are forced to slow down the allready fairly slow simulation in order to cope with it, for a game with faster gameplay like WoW it is a very difficult and expensive problem to solve.

Consider the worst case for a 100 player battle where all players can see eachother, your servers will be forced to send information about 99 players to each of those 100 players (99*100*X = 9.900X), at 200 players you get 199*200*X = 39.800X just over 4 times as much bandwidth required for doubling the number of players, at 3200 players your worst case requirement is not 32 times as high as with 100 players, it is over 1024 times as high, a 6400 player battle can require more than 4096 times the bandwidth of a 100 player battle (even though you only got 64 times the number of players).

Clever design, less frequent updates of players further away, and similar tricks can improve these numbers(and thus allow you to increase the size of your battles further) but at the end of the day, if your players are interacting with eachother in any way(which they really need to do in a battle) it is impossible to scale linearly so each additional player you add to the battle will cost you more than the one you added before it and sooner or later you will reach a point where adding more players becomes prohibitivly expensive.

Instancing solves the problem by limiting the size of each battle and since there is no real interaction between battles it is possible to increase the number of battles (and thus the number of paying customers you can serve) indefinitely.

I feared that this would be expensive, but I wanted to check whether or not it would be just in case it isn't. Anyway Thanks for the tip! Could you give me any information on the other topics?

Could you give me any information on the other topics?


First write, and ship, a multiplayer networked Pac-Man.
enum Bool { True, False, FileNotFound };

Okay?

This topic is closed to new replies.

Advertisement