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.Quote:
Is anyone else using a quadtree to store character/npc/monster/item positions? If not what are you using instead out of interest?
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.Quote:
Not really, might I know why you're using a quadtree?
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.Quote:
Is anyone else using a quadtree to store character/npc/monster/item positions? If not what are you using instead out of interest?
I know what they are, I just wondered why you were using them. Anyhow, thanks for your feedback.Quote:
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.
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.Quote:
I know what they are, I just wondered why you were using them. Anyhow, thanks for your feedback.
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.Quote:
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?
that makes absolutely no sense at all, there's no need to lie.Quote:
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.Quote:
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.?