![]() |
Flooding algorithm in Conquer Online
The game as it is it's laggy because almost everything you do is sent to the server, checked and you receive a response.
If the programmers are smart enough they can invent a flooding algorithm for conquer online which would send the cordinates of each player through other clients. So each player would become a movement/location/skill check server too. And the server would check only the items, monsters, trades, login and those type of things. The other things which can be checked between other players could be sent encoded within clients. So if there are 2000 people playing on the server you will still have like 50 ping. Because 50-100 people will play in America near the server, they will send 20000 connections in other areas in America and the other people will make more millions of connections around the world. And if you play with a decent internet speed you will share the connection through other clients. And because the world is so big you could just share your movement through 2000 clients and each client would receive your fb or jumping without delay if they got a decent connection. Each client would check the others and conquer will be able to run smoothly without charging the server with the movement checking and other features. This could be a great innovation for MMORPG's , the unimportant data could be flooded through players and the server would just check every 10 minutes if a player has made something illegal and automatically ban him. Same idea as with torrents, the difference is that you will send only the not so private data to the other clients. The things which can be delayed will be checked by the server. |
Quote:
Now just because there is 2000 people playing on the server, you don't get updates for all 2000. You only get updates for the ones within 3ish screens away. |
Quote:
like this: playerA [america] jumps from 100,100 to 110,110 playerB [america] gets event, verifies, accepts playerC [america] gets event, verifies, accepts playerD [america] gets event, verifies, accepts playerE [america] gets event, verifies, accepts playerF [america] gets event, verifies, accepts (the 5 player verify is becouse there is a 5/IP client limit) playerA [europa] jumps from 100,100 to 150,150 playerB [europa] gets event, verifies, denies [hack] playerC [europa] gets event, verifies, denies [hack] playerD [europa] gets event, verifies, denies [hack] playerE [europa] gets event, verifies, denies [hack] playerF [europa] gets event, verifies, denies [hack] server gets 5 verifications, denies [hack] and disconnects the user see? the idea behind this, is that the clients do stuff instead of the server and by letting all nearby clients verify it, the server dous less problem here is it requires a p2p network, and that means getting trough the firewalls so there would have to be a double system 1) direct client2client connections inside the p2p network 2) client2server2client connections to fake the p2p network [second connection the server only relays packages, and not verifies them] but the server would still have to verify people with less then 5 other players in range... but, although hard to do.. adding a system like this, would increase the server capacity combine it with the [much needed] recoding of the connection system.. and TQ could potentially change the groups into servers |
This would be great for atleast Guild Area, but I don't think TQ has got programmers good and cheap enough to do a good and very efficient algorithm.
|
Quote:
|
It does not work on other games I play :(
Ever find time to try the game S4 League, it uses a system like this! If another client has poor internet, then they become impossible to harm, and it even has small affect on those around them! |
Quote:
if the server dous not get a verification from all users in range, then it KNOWS something is wrong.... but TQ prolly sucks at coding such a system, but if it was created, the stress on the servers would be a lot lower |
Quote:
|
Quote:
the server having to check: - if someone can actually move there - if someone can actually move at their speed - ... - ... - ... - ... - ... - ... - ... - ... or... - userB says userA is ok - userC says userA is ok - userD says userA is ok - userE says userA is ok - userF says userA is ok get the picture? instead of just looking to see if enough users verify [and if not, verify it manually] it currently has to verify everything, for everyone especially in busy areas, this will result in hacks being impossible while removing the verifcation lag |
Quote:
And have you thought about this? Lets say you have 50 people in your area. Each action anyone does you will get a packet. 50 people doing things will cause 50 extra packets for your client to verify and 50 extra packets to send to server to say you verified it. That will increase lag on yourself and server. Causing your computer to work harder and possibly decrease your fps. Do you get the picture? |
Quote:
player1 jumps to point X > server dous verification > sends it to players2 trough 10 this is what would happen then: player jumps to point X > players2 to 10 receive the info > send verification to server if TQ can do it is not the point here.. but if they can, a system like this would cut back lag a lot.. immagine playing CO1 again, that kind of speeds, with todays internet and servers |
Quote:
Player1 jumps to point X Player1 sends packet to server Server verifies Server send packets to Player 2-10 Player2-10 updates accordingly What the suggestion is. Player1 jumps to point X Player1 sends packet to Player 2-10 Player2-10 verifies Player 2-10 sends packets to server Server changes coords Server sends packets to player 11-20(the ones on screen) Player 11-20 updates accordingly. It will not decrease lag, it will increase it because you are forcing the server to wait on player 2-10 instead of just player1. If one of those people are downloading something everyone will lag since the server needs that packet. |
Quote:
you see, the server would be nothing more then a backbone that makes sure everything goes right.. while 99% of the time, the clients manage eachother the server dous not send the packages to anyone, it just receives verification packages the amount of trafic in total is more, but due to the clients knowinging even before the server, lag is decreased |
This is a great idea! It would totaly end the botting O.o atleast when sum1 is botting on screen with a non botter^^
|
Quote:
Still do you not see how that is worse? Quote:
|
not laggy to me although i never bought a a db and i dont have a good comp or internet
|
not laggy to me although i never bought a a db and i dont have a good comp or internet
|
Like the suggestion, biased poll.
Not signed. |
Quote:
second of all, THE PACKAGE SIZE IS THE SAME! but instead of it going to the server, its immediately send to all other players! they themselves react immediately after choosing if its legit or not... and then tell the server what each client thinks.. should the majority say the player did something wrong, the server disconnects them and informs all other users about it.. instead of having the server verify everything, it only has to manage the connections |
Quote:
Your still increasing the traffic to and from every player and server which in turn will increase lag. The difference is the clients are staying ahead of the server which is generally always bad. Everyone is reliant on everyone else so if one person lags everyone lags. Why wouldn't someone send a fake packet? Isn't that the whole reason "hackers" do what they do? TQ did minimal security and look at what happened. TQ thought noone would figure out the speed variable held client side and then someone decided to mess around and found how to do speed. TQ thought noone would figure out how to change english to chinese inside the client to make a multi and then someone chnaged it and now we got multi made 3 sec after any patch. The server still has to update and manage everything because what if noone is on screen? Then the person can do what ever he wants. What if the person loses power and the server never gets a DC message. The server wouldn't know where to log him in at or how much HP or Mana or anything. |
Quote:
players2 - 20 send a verification package to the server that is it, unless something is wrong, then more packages are send to D/C the hacker |
Quote:
Do you understand why we get "lagspikes"? The client gets overwhelmed and it takes a bit longer to do things. Your adding ALOT more things that the client has to do. |
"in range" for 2-3 screens? What about the HUGE maps on the way to Adventure Zone? Not too populated, most of the time...
|
Quote:
take a CLEAN algorithm, not the one TQ currently uses with some changes, but a NEW CLEAN one... p2p networks work on the same principle as we are discussing here how would it cause lag, to remove stress from the server and increase speed? |
Quote:
There is a big difference between p2p networks and this. p2p networks are simple and there are no calculations needed. While doing this with any game will cause everyone to lag more and decrease fps for majority of the players. I just realized because a friend was complaining that his net was capped that this will own almost everyone who has a cap on their bandwidth. |
Quote:
ooh, and p2p networks are easier?? THEY TRANSFER HUGE FILES FFS! i am sorry, but saying a p2p network is LESS work then some simple character info is pure bull****.. i can, and have simulated a full P2P network... when transfering raw data it works faster then when its transfering full binary's... and the servers these days aint that much better then the average PC [and tq's are worse!], yet they manage to do all the calculations for every player on the whole server, so the PC's will be able to handle everything easy... |
Quote:
I've had to make a simple p2p network for class in 4 hours and my server has one hooked up to it for friends to use that I made as well. Mines even compatible with torrents and it was easy as hell. Servers are always superior to PC's for the fact they don't got to do anything besides basic computations. Do you think that it takes more time to render or update and send/receive packets? Besides horribly written collision and sorting algorithms, rendering is always the most time consuming part of the game loop. Actually I don't know why I'm even trying to explain anymore, you never programmed before and you just think everything will work perfectly although next to no PC game does anything like this for all the reasons I've said. |
clenk, why do you even bother? =P
|
Quote:
but appearently you do not know how C++ works, the language CO is written in [atleast, that is what people seem to say] and C++ is one of the FEW languages, that can support upto 64 threads being active at the same time, and even allow for them to interact without slowing eachother creating such a system is hard, but not impossible and why most games dont use it? cause client<>server is easier and their servers aint ****ty win95 PC's! |
I play two online games with p2p gaming network. A lot of hacking and lag comes from it :(
The other players internet must be very good for this to work. Everybody needs fast network for it, and this does not happen. . ! Even the game that uses p2p has a server for relay, and it adds up to 50 ping to normal times. I think it is a bad idea still. . :( |
Quote:
Quote:
You realize any information being used by one thread has to be locked if any other thread as access to it. Meaning if two threads come onto the same variable one thread will freeze as the other finishes what it does. Just to enlighten you a bit, your processor isn't very smart. A few lines in C++ equates to several lines in assembly. A while loop for example is atleast 6 lines for an empty loop. Your processor may stop in any line of assembly which could be in middle of a line of C++ code. Actually generally it always does since it has no idea what C++ is. Lets say in C++ in one thread you write SomeRandomGlobalVariable = 50. In another thread you do SomeRandomGlobalVariable = 60. The first thread may be switched over after it writes half the binary for 50 and then the second thread will write 60 then switch back to the first to finish writing the last half of 50. You also realize creating multiple threads on a single core machine will end up being slower than having only one thread? I would like to see you run a CO server and have a hundred people login it and see how much worse your PC is than TQ's servers. Quote:
|
Quote:
and i know servers these days aint that much diferend becouse i got a few racks myself! and even then, each user only needs to run about 1% of the servers tasks, the extra time needed only exists on single cores and those are so fast these days that with 2 threads they can manage it easy... running seperate loops is easy, hell, i could do it in VB6, and that was made for win95... and even then it works the way it should, without the variables interfearing, and at the correct speed |
Quote:
No they have to run the full thing. The movements and skills will take up more han 1% of what the server does. Only thing added they deal with is damage calculations and monster database. Also why only have it for movement when you still got to wait for the server to figure out collisions and damages. Well you have no control at all over the running spreed of processes. All you can do is set the priority and hope your PC is nice enough to listen to it. |
Quote:
and last but not least, cause i am getting sick of this.. give a better sollution then, becouse all i see you doing is saying why this wont work.. WELL THE CURRENT SYSTEM IS WORSE, AND ATLEAST PEOPLE ARE TRYING TO FIX IT! so either present a fix, or stop comming into this topic saying it wont work.. with how it currently is, no way to screw it up even more... |
Quote:
The current system is not bad. It works like every other MMO system works. Dont get me wrong, the packets are larger than they need to be and they send some things that they dont need to send. But losing 3-4 bytes on some packets wont decrease the lag any. The current system sufficed for several years without people complaining about it and even now I rarely hear anyone complain about constant lag. It is generally lag spikes which are generally your fault not the servers. Also shall I go through every suggestion you voted no for and say the same **** you just said? |
My knowledge in these areas is fairly minimal but the things Clenk says make a lot of sense to me.
Server currently gets one bit of information from a single client and updates the rest. Your proposal, server waits to receive data from 5 clients verifying that the one client is legit. That sounds like a lot more processing to me. Also, if one of the 5 clients is lagging...what then? Your movement is only as fast as the slowest client around you? I think this method would work on a turn based game...but I don't think it would work well on a real time PVP mmorpg. SORRY CLENK!! |
Quote:
|
Quote:
yes, there will still be lag... but the point stays, the lag will be less becouse its directly from client2client and the server is not in between |
I just left you two to argue on this subject...
There is a way to get around the lag while pvping. Actually a p2p network has a very fast and reliable method of sending information. If co would want to be secure it means that all of these will be wrong. unanynomous/unsecure = fast , secure/anynomous = slow How it could be : 0. The server checks the speed of connection (ping) of a client when connecting to the server. 1. The server will connect to the 100 lowest ping players of the game and make miniservers from them, also it will connect with the GB server to make the data flow uninteruptable. 2. The 100 players will connect with 30 other players each which are the fastest to them and send the information through them and the server. 100x30 = 3000 players. Also the same thing would continue if the fastest player will find another fast player to connect to and it will connect other 10-20 players which are fastest to him. Network administrators are doing the same thing but not automatically to maintain the ping and speed of their clients at the best. 3. You will always have 3 different routes from your area/continent and if the current peer will start lagging you will automatically connect to another. 4. There are more jobs but we can suppose that each jump will increase the ping with 20 isn't so bad. Slowly a lot of people will have acces to 50/100 mbps internet and the peering would become better. (like me) |
Quote:
instead of having 1 server per 'server' have 4 on diferend locations in the world.. china, europa, australia and america those 4 interact with one another over glass lines, removing a lot of lag [especially since data is send after being verified] those then send it to all needed players in their area.. add the fastest players themselves as subservers, and you will have a huge treenet hard to setup, but if it works, the players will all have [almost] equal ping |
All times are GMT -7. The time now is 10:27. |