Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Private Server
You last visited: Today at 14:42

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Development] 4267 conquer server.

Discussion on [Development] 4267 conquer server. within the CO2 Private Server forum part of the Conquer Online 2 category.

Reply
 
Old 02/15/2010, 14:43   #61


 
Korvacs's Avatar
 
elite*gold: 20
Join Date: Mar 2006
Posts: 6,126
Received Thanks: 2,518
Quote:
Originally Posted by ImmuneOne View Post
So do I, just packets are not hard and neither are the handlers, but as I noticed your using pipeservers so it might take you a little bit longer then we do.
Quote:
Originally Posted by Nullable View Post
Well, check the differences, you load about 4 different applications acting as 4 different servers, including named pipes, while we only load 1 application acting as 3 different servers.
Also, our main references are:
1- Your packet wiki (special thanks to you for this amazing wiki)
2- My flat file dumped version of CoFuture's databases and monsters(heard that was yours too =o)

if we can't find the specified packet that we need at the wiki, we just check the offsets and structure of the packet from CoFuture, however how the way packets get written ,filled or handled is merely our own work - we extracted our packet class form our proxy(Jan 21 2010) that was abandoned when TQ decided to shoot us at patch 5211/5212.
Indeed, there are large differences in our sources, you guys are going for a far simpler approach which allows for the big jumps forward in your development in a reasonably short period of time. Im being quite ambitious with my project, doing things that ive never done before, the pipeserver is a prime example, i could just use sockets for an inter-process communication system, but i would much prefer to get the pipeserver sorted out as its alot faster (as close to instant that it makes no difference), and alot more flexible.

I didnt mean to say that you guys werent working hard, or were taking short cuts, simply that you are going for a much simpler approach, which means you can adapt existing things to your needs with relevative ease if you wished.

You will definately be up and running before me lol.

Quote:
Originally Posted by ChingChong23 View Post
good luck, what language you guys doing it in? ill take a guess and say C#, people need to escape the masses of C# and get some other languages going around. delphi? c? java? python etc

@Korvacs: I know TQ used an NPC server and all, but am i overlooking something? why would NPCs possibly need a separate server? it's not like they are shared between servers, no need to create the extra latency imo, like i said i might be completely forgetting something that it could have use for :P
Ok, say for example it takes 2ms for the source to access 1 npc and then send the relevant information. Thats easy, 2ms is nothing. If you multiply that by the number of npcs in the server you get a pretty large number. Obviously this isnt accurate because the server will iterate through the npcs you have and send the relevant one, but over all it was threads that i didnt want to waste. My server uses a threadpool which expands and contracts depending on the load on the server, the more requests the more threads etc, if i handled all npc requests then i would require a large number of threads, which could degrade the overall latency on the server.

One of the key things that ive noticed about people who play conquer is that they hate lag durring pvp, that is the single largest complaint that ive seen, if someone lags then they loose a fight. However i dont think ive ever experienced someone whos said "You know what i hate it when this npc dialog takes 0.4 of a second to load." For me the trade off is definately worth while, all the game server does for npc requests is send them on to the npc server, the npc server looks up what needs to be sent, makes the changes to the character if any, and then sends packets back to the server, which are sent straight to the client. The game server doesnt need to think about teleporting someone to x location, doesnt need to create items, doesnt need to change someones appearence, level, hp, mp, skills, hairstyle. It just gets notified of the change and thats it.

So i mean, for me its obvious, the other thing ive got sperated from the gameserver is the dmaps, any checks for illegal moves or anything like that, monsters of characters a like, is all done off the gameserver, the gameservers key job is to get the packets in and then out again in the shortest time possible, with the least amount of processing possible.
Korvacs is offline  
Thanks
1 User
Old 02/15/2010, 15:07   #62
 
Nullable's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 390
Received Thanks: 321
Quote:
Originally Posted by ChingChong23 View Post
good luck, what language you guys doing it in? ill take a guess and say C#, people need to escape the masses of C# and get some other languages going around. delphi? c? java? python etc

@Korvacs: I know TQ used an NPC server and all, but am i overlooking something? why would NPCs possibly need a separate server? it's not like they are shared between servers, no need to create the extra latency imo, like i said i might be completely forgetting something that it could have use for :P
You're right.. C#, it is way faster to work around data with, and you don't have to worry about anything loaded in the memory, as the GC just takes care of everything, although i have a C++ base already running(too basic though) but avoiding MFC (i basically hate MFC however its wrappers make stuff faster specially Win API, nevertheless from every code i have seen that uses MFC and every one i asked hates MFC, it is the master of ugly code)is almost an impossible task, also writing just the socket wrapper takes forever..
Nullable is offline  
Old 02/15/2010, 15:14   #63
 
elite*gold: 0
Join Date: Feb 2006
Posts: 550
Received Thanks: 82
Interesting idea with the NPC server approach, i personally think it's faster and more efficient to dedicate 1 thread to handling NPCs on the game server, as for the Dmap server i really, really think that's a bad move. Lets say we have a two dimensional byte array [x][y] each index storing 0 as a valid coordinate to move to, 1 as a blocked one. if(dmaparray[locationX][locationY] == 1) // handle block here. That's very very few instructions and would be far more efficient then having to bounce it off to another server.

Your a smart lad though, i'm sure you'll figure out better performance, on my server i worked on awhile ago i measured CPU time & memory on a lot of choices i made, wrote multiple scenarios and used the more efficient one. Even with dmaps i started out at 1gb and kept finding better ways until i got around 60mb, but never even thought of doing what you're doing there.
ChingChong23 is offline  
Old 02/15/2010, 15:18   #64
 
elite*gold: 0
Join Date: Feb 2006
Posts: 550
Received Thanks: 82
Quote:
Originally Posted by Nullable View Post
You're right.. C#, it is way faster to work around data with, and you don't have to worry about anything loaded in the memory, as the GC just takes care of everything, although i have a C++ base already running(too basic though) but avoiding MFC (i basically hate MFC however its wrappers make stuff faster specially Win API, nevertheless from every code i have seen that uses MFC and every one i asked hates MFC, it is the master of ugly code)is almost an impossible task, also writing just the socket wrapper takes forever..
i bumped into a few problems with sockets on my old server, i don't know if it's all handled in C# but with my server packets would form with invalid data and ID's (and when writing a chat message say 100 chars long) you would only receive half the amount of bytes you were supposed to get, followed by the rest of the data in a separate payload that caused problems etc, had to wait for a valid packet to form & handle it all manually.
ChingChong23 is offline  
Old 02/15/2010, 15:22   #65


 
Korvacs's Avatar
 
elite*gold: 20
Join Date: Mar 2006
Posts: 6,126
Received Thanks: 2,518
Atually when you do an Array which is multi-dimensional you increase the amount of work thats needs to be done, i use a 1 dimensional array like this:

tiles[X * width + Y];

Which significantly reduces the amount of work that the processor has to do, i did alot of research into this. Your also assuming that you want to perform real-time upto date checking, i do not. I already know this simple fact:

If someone wants to hack then they will, regardless of how real-time your protection is.

So why bother with real-time protection? The server which handles the dmaps queues the queries which the game server sends and deals with them when it gets around to it. This might delay catching someone by a few seconds, but ultimately that doesnt atually matter does it. The game server doesnt wait on a response from the dmap server, because someone who isnt hacking will never perform an illegal move, the dmaps on the client dont allow it.

Any monster moves will be prioritized so that they wont be waiting for ages to move, but like i said the pipeserver is near as makes no difference instant, so theres really nothing to worry about, since you move the data in the memory.
Korvacs is offline  
Old 02/15/2010, 15:34   #66
 
elite*gold: 0
Join Date: Feb 2006
Posts: 550
Received Thanks: 82
I'm not suggesting that for real-time or to prevent hackers, i'm simply saying it's very very minimal CPU time having it check 1 if statement? for a boundary, instead of telling the other server to, in which there would be most likely more cpu time involved just sending it to the other server.

I can't recall any situations where doing invalid coordinate checks would even become the slightest bit heavy. I get that your trying to control the server and have as much thread time free for the more important parts of your game, but something like this is a bad move if you ask me, try doing some research or asking questions about doing this method (i could be wrong, but it sounds pointless to me)
ChingChong23 is offline  
Old 02/15/2010, 15:36   #67


 
Korvacs's Avatar
 
elite*gold: 20
Join Date: Mar 2006
Posts: 6,126
Received Thanks: 2,518
Ive done plenty of research into all of this, and fine you might well find this abit pointless.

However, if i want to run 5 servers, each having to load their own dmaps, then it atually makes alot of sense to do it all centrally doesnt it.
Korvacs is offline  
Old 02/15/2010, 15:47   #68
 
elite*gold: 0
Join Date: Feb 2006
Posts: 550
Received Thanks: 82
Quote:
Originally Posted by Korvacs View Post
Ive done plenty of research into all of this, and fine you might well find this abit pointless.

However, if i want to run 5 servers, each having to load their own dmaps, then it atually makes alot of sense to do it all centrally doesnt it.
That's about the only benefit i could see coming from this. Good luck, i guess it's a personal choice since either way it's really no big deal, ill stop hijacking this thread, good luck to both of you.
ChingChong23 is offline  
Old 02/15/2010, 20:15   #69
 
elite*gold: 0
Join Date: Apr 2008
Posts: 44
Received Thanks: 0
is it a nice idea by putting all the updates in one list?? like

15-02-'10
New teams
Monster spawns
Etc.

16-02-'10
Guilds
guildwar
etc

etc
etc
etc :P
zenos is offline  
Old 02/15/2010, 23:50   #70
 
Arcо's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 8,783
Received Thanks: 5,304
You guys are advancing pretty fast.
Can't wait till its public.
Arcо is offline  
Old 02/16/2010, 00:09   #71
 
ImmuneOne's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 754
Received Thanks: 544
Quote:
Originally Posted by .Arco View Post
You guys are advancing pretty fast.
Can't wait till its public.
Currently, we're aiming to finish this server clean and organized instead of rushing through codes and finish them off roughly.

#UPDATE
- Portals implemented.
- Team handler revised.
ImmuneOne is offline  
Thanks
1 User
Old 02/16/2010, 06:51   #72
 
Nullable's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 390
Received Thanks: 321
UPDATE:
Jump handlers revised/rewritten.
Implemented character checking and authenticating thread pooling/queuing.
Nullable is offline  
Old 02/16/2010, 18:38   #73
 
elite*gold: 0
Join Date: May 2008
Posts: 39
Received Thanks: 36
All I can say is..

WOW! This is the greatest idea ever!!!
You guys are making a big effort and I'm supporting you guys all the way!
I really dislike all these add-ons and overkill features TQ implemented through all these new patches, and this classic server is great!
I wanted to make my own classic server (a PvP one in fact), but i didn't know how to code, so I'm highly supporting you guys with this!



But I have a few questions and thoughts if you don't mind -

1. Is the server going to be a leveling server or a PvP one? (Or will there be two servers for both?)
2. Is this before the +9s and potency patch? (I don't remember the patches, it's really old)
imafairplayer is offline  
Old 02/16/2010, 19:46   #74
 
ImmuneOne's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 754
Received Thanks: 544
Quote:
Originally Posted by imafairplayer View Post
1. Is the server going to be a leveling server or a PvP one? (Or will there be two servers for both?)
We will launch PvP as beta stage, if we found and solved all bugs we will switch to leveling server.
2. Is this before the +9s and potency patch? (I don't remember the patches, it's really old)
This is before the potency patch and plus 9 was always an option. I think you ment before +12 and yes it's before +12.
I hope this answers your questions.
ImmuneOne is offline  
Thanks
2 Users
Old 02/16/2010, 20:33   #75
 
elite*gold: 0
Join Date: Apr 2008
Posts: 44
Received Thanks: 0
Quote:
Originally Posted by ImmuneOne View Post
I hope this answers your questions.
can't wait, but have to :P, all i can do is acting like a cheerleader but, i'm not like a chearleader, i just try it. Go team GO! :P
zenos is offline  
Reply




All times are GMT +1. The time now is 14:42.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.