[Development] 4267 conquer server.

03/30/2010 10:59 Korvacs#271
Is anyone else using a quadtree to store character/npc/monster/item positions? If not what are you using instead out of interest?
03/30/2010 16:08 ImmuneOne#272
Quote:
Originally Posted by Korvacs View Post
Is anyone else using a quadtree to store character/npc/monster/item positions? If not what are you using instead out of interest?
Not really, might I know why you're using a quadtree?
03/30/2010 16:18 Basser#273
Quote:
Originally Posted by Korvacs View Post
Is anyone else using a quadtree to store character/npc/monster/item positions? If not what are you using instead out of interest?
I'm not entirely sure, but I do think Emme recommend me to use it, however I did not have the experience to use it. I really wonder if it was quadtree though.
03/30/2010 16:28 Korvacs#274
Quote:
Originally Posted by ImmuneOne View Post
Not really, might I know why you're using a quadtree?
Quadtrees are designed specifically for storring objects in a 2D plane and to cut down the amount of queries that are required to isolated local objects. So i figured it would be ideal for conquer since the number of objects on one map can easily exceed 5/10k.

A Quadtree is essentially an object which has width & height, and then subdivides itself into small objects with width & height when objects are added. The idea being that you send a query for a specific area starting at x,y which has a certain width and height and it returns the objects within that selection.

Instead of say searching your entire character list for characters that are within a set area.
03/30/2010 19:05 zenos#275
if i make a conquer pserver, i use the simple qonquer source for pvp xP so i use qonquer pvp source :P dunno what kind of shizzle it uses
03/30/2010 19:06 Korvacs#276
There isnt a publically released Qonquer source....
03/30/2010 19:16 _Emme_#277
Quote:
Originally Posted by Korvacs View Post
Is anyone else using a quadtree to store character/npc/monster/item positions? If not what are you using instead out of interest?
Yeah, I use QuadTree, the only reason why I got into it was because the YakuzaCO project were turning into 3D, but it's quite neat when you got to use it.
03/30/2010 20:38 ImmuneOne#278
Quote:
Originally Posted by Korvacs View Post
Quadtrees are designed specifically for storring objects in a 2D plane and to cut down the amount of queries that are required to isolated local objects. So i figured it would be ideal for conquer since the number of objects on one map can easily exceed 5/10k.

A Quadtree is essentially an object which has width & height, and then subdivides itself into small objects with width & height when objects are added. The idea being that you send a query for a specific area starting at x,y which has a certain width and height and it returns the objects within that selection.

Instead of say searching your entire character list for characters that are within a set area.
I know what they are, I just wondered why you were using them. Anyhow, thanks for your feedback.
03/30/2010 22:16 Korvacs#279
Quote:
Originally Posted by ImmuneOne View Post
I know what they are, I just wondered why you were using them. Anyhow, thanks for your feedback.
No worries, it was a general info on them for everyone, since i think very few people have any idea what they are. Personally after converting over to the quadtree system i think that for a small server its somewhat overkill but ultimately beneficial, although quite complicated to organise at first. Im only just getting it to query successfully without screwing up, but thats more me trying to be too perfect with when things are spawned, rather than a failing with the quadtree.

What are you using instead? Dictionaries?
03/30/2010 22:31 ImmuneOne#280
Quote:
Originally Posted by Korvacs View Post
No worries, it was a general info on them for everyone, since i think very few people have any idea what they are. Personally after converting over to the quadtree system i think that for a small server its somewhat overkill but ultimately beneficial, although quite complicated to organise at first. Im only just getting it to query successfully without screwing up, but thats more me trying to be too perfect with when things are spawned, rather than a failing with the quadtree.

What are you using instead? Dictionaries?
For the C sharp one? Yeah, I'm considering quadtrees for the unmanaged C++ source. Just incase you didn't know, the C sharp source is only for the beta so we can buy some time till the summer.
03/31/2010 04:33 ImFlamedCOD#281
Korvacs , my source runs under a 3 project basis, Authentication Server, It handles all client requests as well as sends info to the other 2 servers. After the auth server the SQL server picks up , the SQL server plays as a man in the middle to process against hackers , along with all database stuff. Then at the end its the Game Server. So it ends up like this Auth -> SQL -> Game. Now the way this works is once the Auth encryption is done and the client is send to the SQL server it uses a custom encryption for data being sent between the SQL and game server untill the client is taken under the game server . After that its just communicates with the client and game server. The only time the SQL server and the Game server connect if for database queries. Something i sorta came up with from Hybrid. Whats your take on it.?
04/01/2010 00:36 ~*|Limbo|*~#282
Hmmm so this server will be out on Monday? I'll msn my crew and let them know :) Hopefully this server won't be dead, there isn't enough 1.0 servers out and definately not enough people interested >.> Let's get a good number of people playing a REAL server! Any idea on the rates btw? I'm curious what rates you'd have.
04/01/2010 09:30 ChingChong23#283
Quote:
Originally Posted by ImFlamedCOD View Post
Korvacs , my source runs under a 3 project basis, Authentication Server, It handles all client requests as well as sends info to the other 2 servers. After the auth server the SQL server picks up , the SQL server plays as a man in the middle to process against hackers , along with all database stuff. Then at the end its the Game Server. So it ends up like this Auth -> SQL -> Game. Now the way this works is once the Auth encryption is done and the client is send to the SQL server it uses a custom encryption for data being sent between the SQL and game server untill the client is taken under the game server . After that its just communicates with the client and game server. The only time the SQL server and the Game server connect if for database queries. Something i sorta came up with from Hybrid. Whats your take on it.?
that makes absolutely no sense at all, there's no need to lie.
04/01/2010 15:57 zenos#284
i don't get anything of this, but keep going this good work i think :P
04/01/2010 16:19 Korvacs#285
Quote:
Originally Posted by ImFlamedCOD View Post
Korvacs , my source runs under a 3 project basis, Authentication Server, It handles all client requests as well as sends info to the other 2 servers. After the auth server the SQL server picks up , the SQL server plays as a man in the middle to process against hackers , along with all database stuff. Then at the end its the Game Server. So it ends up like this Auth -> SQL -> Game. Now the way this works is once the Auth encryption is done and the client is send to the SQL server it uses a custom encryption for data being sent between the SQL and game server untill the client is taken under the game server . After that its just communicates with the client and game server. The only time the SQL server and the Game server connect if for database queries. Something i sorta came up with from Hybrid. Whats your take on it.?
From a security point of view its by far one of the best methods, im not sure about it performing all of your SQL aswell tho, ive got a .dll which each server creates an instance of for my database access, if you can do it quick enough i dont think you'll have a problem. Ultimately you dont want your players to be waiting around for queries, im sure they would prefer to be playing without lag and with hackers, than without hackers and with lag.

Speed is everything.