Poll: What do you think?
You do not have permission to vote in this poll.
Nice Work ( ill leech it Tongue )
100.00%
10 100.00%
Already been said
0%
0 0%
WTF?! are you on.... mmmm Shrooms
0%
0 0%
Wont Work
0%
0 0%
Total 10 vote(s) 100%
* You voted for this item. [Show Results]

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Infinite Players in a Game
#1
Ok i basically got a rush of blood to the head and while sitting in my ryuuzaki sitting style. I thought of this...

There is a main server that handles all of the logins...

After the third player logs in, the server gives some of its responsibility in sending data to players 2 and 3, to player 1.

Therefore by sending a packet to player 1, player 1 acts as the server for players 2 and 3 and parses the information onto them. Consequently the server only has to handle tasks for player 1 and organising, who parses the information between who.

Players 2 and 3 handle tasks for two other players each and two others for those two others and so forth. The result is a link between all players that delegate some of their bandwidth to the game.

There are two ways of getting every client in the chain to recieve data...


1. Any actions that have taken place by the clients will parse the information to the secondary server which compresses the data together afterwhich parses the data to the main server ultimately parsing the data to player 1 who then repeats the cycle.

OR

2. Simply the client sends its own information to all the other clients.


Diagram 1


[Image: wlutpvungj.jpg]
Diagram 2
its pretty easy to understand...


Needs a bit of work coz every minute i think of another question in this theory which i have to ponder about. Its full of problems but i think we can work it out together and make MS the best. (HA! LIKE THAT WILL EVER HAPPEN!)
Reply
#2
Sounds kinda odd, and from my understanding it cannot work. The server has information that needs to be sent to all players. For example the NPC AI. Do you mean that the server should overload player1 by sending everybodies NPC AI + everything else, and then send it of to the next player etc. Then I guess everybody would want to login last. I think this method would make the game lag even more.. =/
Reply
#3
well for a start send a few small packets wont make any difference to each player so i dont know why they would want to login last, plus you dont have to tell them and then they wont know.

Yes the server sends the starting data to player1 who saves this data and waits for 2 peers who it sends the data to which would only lag you for a second at most.

Lets say player 5 decides to move right,

according to 1. It would send the data to its server who sends it to the main server who sends it to player1 who sends it to 2 and 3 and so forth.

2. it would just call senddatatomap() and then everyone on the map would recieve the information.

The problem with MS is that the server thinks it needs to know everything when it doesnt. In my project the server has no idea where each players coordinates are, all the server does is send the information it recieves to anyone who needs it and the client determines what happens to the players on their map. Its much faster that way. Also only hacking that would work in this case would be packet editing.
Reply
#4
Well do your best to complete it.
Reply
#5
It will not work. You have two ways of making the server. Peer-to-Peer and with a main server.
Peer-to-Peer: Everybody send the data do everybody, no main server and that can not work with MS or any mmorpg. The reason is that when you don't have a main server, you cannot shutdown the game witch makes a lot of problem about updates and where will you save the players data, inside each client xD Makes no sense...
Main Server: Is how MS works right now. You have all this data inside the main computer that handle all the needed info and YES the server need to handle everything, else it would be much easier to hack and suck things.

The thing you are telling it is possible to do, maybe, just maybe can be accomplish and it would lag like hell... oh yes it would. Imagine the server doing SendDataToAll. Imagine the time the packets will take to get to the last logued player. And now just imagine this: 7 players are logued in. So you have like... 3 server heights, just like your example. Now imagine, like in your example. If player 2 or player 3 logs off. xD The things that need to be done with this are just too much to add to MS. In my opinion, if you realy wana keep doing this, make test clients and a test server and send it to us, the MS community so we can test, but I realy don't think it will work. Good luck anyways Smile
Reply
#6
Why would you want infinite players?

Most of these games will struggle getting 10 online at the same time.

mmmmm scrooms.

*goes to get some herbs*
Quote:Robin:
Why aren't maps and shit loaded up in a dynamic array?
Jacob:
the 4 people that know how are lazy
Robin:
Who are those 4 people?
Jacob:
um
you, me, and 2 others?
Reply
#7
If you would've just said

"I wanna change TCP into UDP" most of us would've gotten your idea too.


Problem with UDP is that you can never trust a client. Never.
Reply
#8
Kite Wrote:Why would you want infinite players?
Most of these games will struggle getting 10 online at the same time.
mmmmm scrooms.
*goes to get some herbs*
I dont see a problem getting more than 10people to play a game. Hell my old game Marocia sucked, and it pretty much crashed all the time because there were to many players online (15players)..damn es engine Tongue
Reply
#9
You go on the assumption that theres complex data needing to be calculated. In the long run, you'd probably just slow down the server even more by packing the data, sending it, and waiting for the results. If it doesn't slow it down, it wont help much. But you really can't do much without getting that data back in many cases.

And having players handle data for you? Yikes... ever hear of packing sniffing/manipulating? Or what about RAM editing? If you ever trust any data in the client's hands that could alter gameplay to their advantage, you're just asking for trouble.

If its any relevance, this was my idea on handling larger servers:
http://www.vbgore.com/forums/viewtopic.php?t=1729
Reply
#10
Uhm, Wouldn't that overload the server? If all the players lets say just sat there and made ++++++ for like 10 min. Then sent 'em in chat...That would result in a crash right? I used to sit there and crash the server with $$$$ in some game. Tongue But I don't know. Just asking...

Proxy
Reply
#11
Why would typing something crash a server? If you want to flood a server, you don't just type as fast as you can, you edit the packets... anyways, that'd only work on a server that:
- Is hosted on a poor machine
- Has no flooding prevention
Reply
#12
Ive decided to start with peer-to-peer udp for stuff that gets sent repeatedly and tcp for less frequent stuff.

also yes i have heard of packet/editing and sniffing, i have even done it. But only wankers do that to a mirage source engine, and i havent seen any recently.

Also packet editing is way harder than you might think, have you heard of maplestory's packet hacking prevention?

Maplestorys hacking prevention is so weak that you can server side hack using hex editing. which could mean that packets are sent to other clients from your computer (hence the reason why it never lags... ever... even with thousands of players).

Luckily for Maplestory they have randomized packet sending and recieving. So packet editing is almost impossible because you cant resend the same packet twice, and no one has worked out the formula or the seed.
Reply
#13
How exactly does random packet sending and recieving work?
Reply
#14
I'd say.

Every packet's header starts with the name, for example ATTACK, followed by 3 random numbers generated based on the minute, or day, or week, or anything.

Personally, I'd never use a system like that.
Reply
#15
Could be good, but I dont see a point on using that for MS.
Reply
#16
I'd only use UDP for chat, and since like, only 0.1 % of the packets are chat, it won't have much use for any non-massive game.

All other data is vurnable to editing.

And a bad thing about UDP is that the client'd have to forward a port, and most people that make games using MS/ES/blah have no idea how to do that, let alone the users.
Reply
#17
That whole peer-to-peer thing is just asking for serious trouble. If people don't want to decrypt your packets (which you are definitely going to have to do), they can just stop some from sending, or simulate lag. Even something like chat needs to be passed through a central server, or else you are opening yourself for very heavy spam and no filtering or authority over a user's chat. Hell, you could even ban them, but they can just reconnect to the other clients and spam them.
Reply
#18
I was just reading something and it said that servers can only compute so much data digits or w/e. It gives an ID to each person on the server ect. Maybe i'm just crazy. I just figured i'd ask.

Proxy
Reply
#19
Or maybe this is going no-where.

Proxy
Quote:Robin:
Why aren't maps and shit loaded up in a dynamic array?
Jacob:
the 4 people that know how are lazy
Robin:
Who are those 4 people?
Jacob:
um
you, me, and 2 others?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)