Conquer Online Forum - Free Kung Fu MMORPG

Conquer Online Forum - Free Kung Fu MMORPG (http://bbs.co.99.com/index.php)
-   Suggestions (http://bbs.co.99.com/forumdisplay.php?f=13)
-   -   Flooding algorithm in Conquer Online (http://bbs.co.99.com/showthread.php?t=634765)

isti37 07-18-2009 12:56

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.

Clenk~V.7 07-18-2009 14:01

Quote:

Originally Posted by isti37 (Post 10591992)
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.

Sweet coordinates client sided so I can be immortal. The reason why most things are server sided is because anyone can get a hold of a ram editor and change things. What your actually suggesting is what gave us speed hack, wh bypass and a few others.

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.

kvdk 07-18-2009 14:54

Quote:

Originally Posted by Clenk~V.7 (Post 10592076)
Sweet coordinates client sided so I can be immortal. The reason why most things are server sided is because anyone can get a hold of a ram editor and change things. What your actually suggesting is what gave us speed hack, wh bypass and a few others.

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.

he is talking about making the client into a p2p network

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

isti37 07-21-2009 10:48

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.

Clenk~V.7 07-21-2009 11:10

Quote:

Originally Posted by kvdk (Post 10592136)
he is talking about making the client into a p2p network

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

It still doesn't mean it will work. I can setup 5 computers and force the packets to go to those 5 computers and I would still be invincible. There is a reason why everything goes to server for verification. Besides console games, rarely does anyone do anything like this because on pcs it is easy to manipulate things. And do you really want people knowing your IP?

Toxicosis 07-21-2009 12:10

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!

kvdk 07-21-2009 13:07

Quote:

Originally Posted by Clenk~V.7 (Post 10596533)
It still doesn't mean it will work. I can setup 5 computers and force the packets to go to those 5 computers and I would still be invincible. There is a reason why everything goes to server for verification. Besides console games, rarely does anyone do anything like this because on pcs it is easy to manipulate things. And do you really want people knowing your IP?

no you cant, all players in range would get the package..

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

Clenk~V.7 07-21-2009 16:17

Quote:

Originally Posted by kvdk (Post 10596704)
no you cant, all players in range would get the package..

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

Actually you posted what I wanted you to. So the complaint was a laggy server to begin with so you decided to flood hundreds of times the packets to the server. Isn't that counter productive? Well I guess you would be ahead of the server since the server wouldn't be able to keep up with everything. You could pull someone forward 2-3 jumps instead of pulling them back.

kvdk 07-21-2009 16:50

Quote:

Originally Posted by Clenk~V.7 (Post 10596943)
Actually you posted what I wanted you to. So the complaint was a laggy server to begin with so you decided to flood hundreds of times the packets to the server. Isn't that counter productive? Well I guess you would be ahead of the server since the server wouldn't be able to keep up with everything. You could pull someone forward 2-3 jumps instead of pulling them back.

lets take this...
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

Clenk~V.7 07-21-2009 17:16

Quote:

Originally Posted by kvdk (Post 10596981)
lets take this...
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

Still you go from server receiving one action and putting it into effect to the server receiving that one action and several other verifications and still having to put that one action into effect.

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?

kvdk 07-21-2009 17:47

Quote:

Originally Posted by Clenk~V.7 (Post 10596997)
Still you go from server receiving one action and putting it into effect to the server receiving that one action and several other verifications and still having to put that one action into effect.

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?

this currently happens:

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

Clenk~V.7 07-21-2009 18:22

Quote:

Originally Posted by kvdk (Post 10597023)
this currently happens:

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

To clarify it does

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.

kvdk 07-22-2009 06:47

Quote:

Originally Posted by Clenk~V.7 (Post 10597052)
To clarify it does

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.

actually, that player 11 - 20 get the packet before the server dous aswell...
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

Predy1673 07-22-2009 08:08

This is a great idea! It would totaly end the botting O.o atleast when sum1 is botting on screen with a non botter^^

Clenk~V.7 07-22-2009 09:54

Quote:

Originally Posted by kvdk (Post 10598030)
actually, that player 11 - 20 get the packet before the server dous aswell...
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

Who will send the packet to player11-20? How would they know its a legit packet and not a fake one? They either have to do the checks to verify it or wait til after player 2-10 get ahold of it and decide its legit. Then what? They either have to communicate to eachother or the server to tell everyone its legit. So your increasing the number of packets again. Do you not understand how network cards work? They work hell of alot slower when dealing with multiple packets. They work alot faster with larger, fewer packets.

Still do you not see how that is worse?

Quote:

Originally Posted by Predy1673 (Post 10598165)
This is a great idea! It would totaly end the botting O.o atleast when sum1 is botting on screen with a non botter^^

It wouldn't make a difference. The checks would be the same that the server does. Since the server doesn't catch botting, the clients won't be able to. SV is just a clicker so noway to remove it without blocking the app really. Proxy manipulates packets directly and they would still manipulate them and everyone will know its proxy but the computer won't know the difference. Everything else is a ram edit which is undetectable for the most part.


All times are GMT -7. The time now is 15:53.