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)

Clenk~V.7 07-23-2009 17:50

Quote:

Originally Posted by theRationalOne (Post 10600105)
clenk, why do you even bother? =P

Not really sure at this point.
Quote:

Originally Posted by kvdk (Post 10600158)
i have programmed before, and if you dont believe me that is your choice

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!

You do realize after it is compiled down it doesn't matter what language it was written in? I've decompiled CO into a couple different languages but yes, almost all PC games are written in C++ since C++ is more or less the easiest programming language to learn and has all the nice pretty things with it.

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:

Originally Posted by Toxicosis (Post 10600284)
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. . :(

What games actualy use it? I've asked around but I couldn't find any that were up for more than a couple months.

kvdk 07-24-2009 05:17

Quote:

Originally Posted by Clenk~V.7 (Post 10600318)
Not really sure at this point.


You do realize after it is compiled down it doesn't matter what language it was written in? I've decompiled CO into a couple different languages but yes, almost all PC games are written in C++ since C++ is more or less the easiest programming language to learn and has all the nice pretty things with it.

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.


What games actualy use it? I've asked around but I couldn't find any that were up for more than a couple months.

my whole network survived a DDoS attack without any trouble...

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

Clenk~V.7 07-24-2009 08:11

Quote:

Originally Posted by kvdk (Post 10600767)
my whole network survived a DDoS attack without any trouble...

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

Non servers survive DDoS attacks easily most of the times. Close your ports and lock the ones that are already opened and DDoS has a minimal effect on your computer. Servers normally keep several ports open which gives the attacker more targets.

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.

kvdk 07-24-2009 09:32

Quote:

Originally Posted by Clenk~V.7 (Post 10600902)
Non servers survive DDoS attacks easily most of the times. Close your ports and lock the ones that are already opened and DDoS has a minimal effect on your computer. Servers normally keep several ports open which gives the attacker more targets.

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.

my network contains multiple webservers, and those all got the gates open for tons of applications

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...

Clenk~V.7 07-24-2009 09:42

Quote:

Originally Posted by kvdk (Post 10600942)
my network contains multiple webservers, and those all got the gates open for tons of applications

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...

I doubt you got multiple web servers. I doubt you even got one web server. But any half way decent person will keep ports closed if not in use. Even if applications are using the ports, DDoS will have a minimal effect since everything but games use TCIP connections where your network card wont even recognize a packet that isnt from the IP and port linked to the local port. DDoS effects the open ports who are awaiting a connection and the few ports open for UDP.

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?

eeyore 07-24-2009 10:43

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!!

Clenk~V.7 07-24-2009 12:46

Quote:

Originally Posted by eeyore (Post 10600994)
My knowledge in these areas is fairly minimal but the things Clank says make a lot of sense to me.

Don't make me throw Ratchet at you.

kvdk 07-24-2009 13:54

Quote:

Originally Posted by eeyore (Post 10600994)
My knowledge in these areas is fairly minimal but the things Clank 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.

no, you would react instant, and as soon as any client receives info they react...

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

isti37 07-25-2009 14:22

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)

kvdk 07-25-2009 14:38

Quote:

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

you know, TQ should do that..

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:08.