Register for your free account! | Forgot your password?

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

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

Advertisement



[Development] Burning Skies: Profaned Sanctuary

Discussion on [Development] Burning Skies: Profaned Sanctuary within the CO2 Private Server forum part of the Conquer Online 2 category.

Closed Thread
 
Old 10/21/2012, 20:00   #166
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
I think I get it. You all aren't concerned about having a GUI, you all are concerned that I don't know how to implement a GUI successfully. If the server was lagging, it wouldn't be the GUI's fault. That's not only because it's rare that the draw method is called, I dedicate a thread to the GUI. When I want to write a line to the "console", I invoke the thread. I tell the textbox holding the console lines to begin writing the line: "_outputTextBox.BeginInvoke(_writer, line);" It will never block the server. The COM threading model of the server is MTA. It's defined as an attribute on the main function. The server's thread is of the highest priority, while the GUI thread is not. The performance loss of having the GUI is so insignificant. The benefits of having the GUI and the ability for me to show my server in action to my professors in a clean way, outweigh the insignificant costs of running it.
Spirited is offline  
Thanks
1 User
Old 10/21/2012, 20:25   #167


 
CptSky's Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 1,443
Received Thanks: 1,175
Quote:
Originally Posted by Fаng View Post
I think I get it. You all aren't concerned about having a GUI, you all are concerned that I don't know how to implement a GUI successfully. If the server was lagging, it wouldn't be the GUI's fault. That's not only because it's rare that the draw method is called, I dedicate a thread to the GUI. When I want to write a line to the "console", I invoke the thread. I tell the textbox holding the console lines to begin writing the line: "_outputTextBox.BeginInvoke(_writer, line);" It will never block the server. The COM threading model of the server is MTA. It's defined as an attribute on the main function. The server's thread is of the highest priority, while the GUI thread is not. The performance loss of having the GUI is so insignificant. The benefits of having the GUI and the ability for me to show my server in action to my professors in a clean way, outweigh the insignificant costs of running it.
[MTAThread] won't work for some controls. Plus, a GUI is useless for a server. Only commands are required. If you want a GUI, fine, but I would say, put all your output in the normal console. Not a fake one that requires much more for nothing. By building your application as a console app, you'll get both the GUI and a console.

Else, most services (httpd, mysql, etc) are process without any GUI. There is a reason

Anyway, I understand the interest of having a GUI, but please, don't output everything in your fake console, use a real one. Plus, don't use MTAThread with WinForms. Microsoft doesn't support MTAThread with WinForms, so it's unsafe to use it. Just try some dialog, you'll see that the app will crash.

Quote:
Windows Forms is not supported within a MTA or free threaded apartment. Applications using Windows Forms should always declare the apartment style they're using, as some other component could initialize the apartment state of thread improperly.
CptSky is offline  
Old 10/21/2012, 20:54   #168
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
I safely run the server in MTA. The thread I run the GUI in is STA. I know how to implement a GUI and I know about these performance losses. They're insignificant though. Enough.
Spirited is offline  
Old 10/21/2012, 21:35   #169


 
Korvacs's Avatar
 
elite*gold: 20
Join Date: Mar 2006
Posts: 6,126
Received Thanks: 2,518
I really dont like the idea of having a GUI built into the server itself, not just from the performance angle but a management one, say you decide to run 5 game servers, you end up with a minimum of 6 separate GUIs, from a management point of view this makes it far more complex to manage than if it were a separate application.
Korvacs is offline  
Thanks
2 Users
Old 10/22/2012, 00:23   #170
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
Quote:
Originally Posted by Korvacs View Post
I really dont like the idea of having a GUI built into the server itself, not just from the performance angle but a management one, say you decide to run 5 game servers, you end up with a minimum of 6 separate GUIs, from a management point of view this makes it far more complex to manage than if it were a separate application.
I like the idea of a separate application that manages all of the servers, but my servers won't be on the same hosts. I can't use pipes like you do in your project. I don't think I'll ever have more than one server anyways. People will DDOS me out of existence. And I see the performance thing as insignificantly small. Is there something I'm missing that I haven't addressed?
Spirited is offline  
Old 10/22/2012, 01:00   #171
 
JohnHeatz's Avatar
 
elite*gold: 150
Join Date: Apr 2010
Posts: 9,739
Received Thanks: 8,981
Quote:
Originally Posted by Fаng View Post
I think I get it. You all aren't concerned about having a GUI, you all are concerned that I don't know how to implement a GUI successfully. If the server was lagging, it wouldn't be the GUI's fault. That's not only because it's rare that the draw method is called, I dedicate a thread to the GUI. When I want to write a line to the "console", I invoke the thread. I tell the textbox holding the console lines to begin writing the line: "_outputTextBox.BeginInvoke(_writer, line);" It will never block the server. The COM threading model of the server is MTA. It's defined as an attribute on the main function. The server's thread is of the highest priority, while the GUI thread is not. The performance loss of having the GUI is so insignificant. The benefits of having the GUI and the ability for me to show my server in action to my professors in a clean way, outweigh the insignificant costs of running it.
If you are not open to other people ideas, criticism and so on, why do you have a thread?

All I have seen is you saying no to every single opinion that has been provided, unless it is something that supports you.

I will keep thinking, a GUI will never overweight the performance cost, yet I know you will stay with your ideas, so I'll simply stop providing my feedback on a thread you have to "get" and deny every possible user feedback you get
JohnHeatz is offline  
Thanks
3 Users
Old 10/22/2012, 01:33   #172
 
elite*gold: 0
Join Date: Sep 2012
Posts: 775
Received Thanks: 329
sorry fangs but i think john got a point at what he said earlier
go for it is offline  
Old 10/22/2012, 01:33   #173
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
Quote:
Originally Posted by JohnHeatz View Post
If you are not open to other people ideas, criticism and so on, why do you have a thread?

All I have seen is you saying no to every single opinion that has been provided, unless it is something that supports you.

I will keep thinking, a GUI will never overweight the performance cost, yet I know you will stay with your ideas, so I'll simply stop providing my feedback on a thread you have to "get" and deny every possible user feedback you get
I'm ignoring things that have nothing to do with the performance of the server. I just asked Jack about the GUI problem in my last post and I'm hoping that he'll be able to provide me with evidence that this is a significant issue. The way I see it, nobody's been able to SHOW me that having a GUI greatly influences the server (using the model I've implemented). I'm not going out of my way to tear my project's GUIs apart without good reason.
Spirited is offline  
Old 10/22/2012, 11:46   #174


 
Korvacs's Avatar
 
elite*gold: 20
Join Date: Mar 2006
Posts: 6,126
Received Thanks: 2,518
Without seeing and analysing your model theres no telling from our point of view if the GUI influences the server's processing, so your asking for the impossible.

An alternative to pipes is simply a socket connection and while you dont think your going to provide more than 1 server your coding in a limitation which, if the situation changes in the future will hinder you significantly. A prime example of where this situation will change is when you want a test server aswell as a public server, automatically your hindered.

As for performance it really depends what you want to do with the GUI, if you want to read any data about memory stored on the server then you'll need to thread it extremely carefully to ensure that you dont block server processing, at this point like i said its impossible for us to tell what you want to do so commenting on performance specific to your situation isnt possible. The rule of thumb however is that GUI's hinder performance, from practically all angles.

Third part management removes all disadvantages.
Korvacs is offline  
Thanks
2 Users
Old 10/22/2012, 12:15   #175
 
_DreadNought_'s Avatar
 
elite*gold: 28
Join Date: Jun 2010
Posts: 2,225
Received Thanks: 868
Quote:
Originally Posted by Fаng View Post
I like the idea of a separate application that manages all of the servers, but my servers won't be on the same hosts. I can't use pipes like you do in your project. I don't think I'll ever have more than one server anyways. People will DDOS me out of existence. And I see the performance thing as insignificantly small. Is there something I'm missing that I haven't addressed?
What stops them just DDoSing two servers? Without a gameserver the authserver is pointless. without an authserver the gameserver is pointless.

So really, They STILL only have to take out one server to hinder the entire server.
_DreadNought_ is offline  
Old 10/22/2012, 12:20   #176
 
elite*gold: 0
Join Date: Dec 2011
Posts: 1,537
Received Thanks: 785
Quote:
Originally Posted by _DreadNought_ View Post
What stops them just DDoSing two servers? Without a gameserver the authserver is pointless. without an authserver the gameserver is pointless.

So really, They STILL only have to take out one server to hinder the entire server.
The gameserver can run without the authserver, however nobody can login afterwards. Which means all players logged can still play.

Attacking the gameserver will effect both though, so...

Splitting them will not help against ddosing nor is there anything that really can.
I don't have a username is offline  
Thanks
1 User
Old 10/22/2012, 19:01   #177
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
Quote:
Originally Posted by Korvacs View Post
Without seeing and analysing your model theres no telling from our point of view if the GUI influences the server's processing, so your asking for the impossible.

An alternative to pipes is simply a socket connection and while you dont think your going to provide more than 1 server your coding in a limitation which, if the situation changes in the future will hinder you significantly. A prime example of where this situation will change is when you want a test server aswell as a public server, automatically your hindered.

As for performance it really depends what you want to do with the GUI, if you want to read any data about memory stored on the server then you'll need to thread it extremely carefully to ensure that you dont block server processing, at this point like i said its impossible for us to tell what you want to do so commenting on performance specific to your situation isnt possible. The rule of thumb however is that GUI's hinder performance, from practically all angles.

Third part management removes all disadvantages.
Well, I compared Project Kibou with and without a GUI. Kibou's ability to run a server doesn't change significantly enough to show up on a high resolution timer. I just noticed though that the GUI is being run on the main thread, which might cause some priority issues. I'll be changing that within the next few days. It's always possible that I just forget about C# entirely and make my server in C++ as a console application... but I don't necessarily want to restart. I've wasted enough time and effort restarting.

Quote:
Originally Posted by I don't have a username View Post
The gameserver can run without the authserver, however nobody can login afterwards. Which means all players logged can still play.

Attacking the gameserver will effect both though, so...

Splitting them will not help against ddosing nor is there anything that really can.
My goal wasn't to prevent ddos attacks. My goal was to keep the servers separated. That way, I could support multiple servers (even though I don't want multiple servers right away). I should be thinking more about that as Jack said.
Spirited is offline  
Old 10/22/2012, 19:50   #178


 
Korvacs's Avatar
 
elite*gold: 20
Join Date: Mar 2006
Posts: 6,126
Received Thanks: 2,518
The problem is you wont know how your GUI effects your server without it being moderately populated, otherwise there's nothing to block in all likelihood.
Korvacs is offline  
Thanks
1 User
Old 10/22/2012, 20:15   #179
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,190
Quote:
Originally Posted by Korvacs View Post
The problem is you wont know how your GUI effects your server without it being moderately populated, otherwise there's nothing to block in all likelihood.
Hmm... I see. I'm trying to find points where the GUI would block up the server. The GUI could block it up if I cross-thread or do a lot of processing; however... I don't cross-thread and I keep processing to background workers. It should be a non-blocking system. If the GUI is closed, the server socket system is still in tact until I shut it down and close the program. Server processing is on it's own MTA thread. If the GUI freezes, it shouldn't hinder server processing at all. That's because I invoke everything in the GUI using non-blocking methods. Nothing server related ever touches the GUI without using a non-blocking invoke. If my GUI is frozen, it would only freeze that thread. Hmm... It has no reason to freeze as far as I'm aware. I test the GUI very thoroughly, but there's always that possibility that I missed something. I still don't think I could remove the GUI though. It makes server management so much easier for people to understand (being able to interact with a GUI). It's easier to show my professors what the program is capable of, too. I'll just have to keep using safe methods and test it very thoroughly.
Spirited is offline  
Old 10/22/2012, 20:52   #180
 
elite*gold: 0
Join Date: Jul 2011
Posts: 82
Received Thanks: 12
Let me congratulate you to work as hard as you do on your project. The post is usually updated and your explanations always accurate.

Wish you good luck, keep-it up!
itachi26 is offline  
Closed Thread


Similar Threads Similar Threads
Falling Skies Staffel 1 ?!
12/20/2011 - Off Topic - 2 Replies
Heyho, Und zwar habe ich bisher keine Folge von falling Skies gesehen, die 1. Staffel scheint ja nun zuende zu sein, weiß jemand wo man sie sich herunterladen kann? Wäre toll wenn mir jemand helfen könnte ;) PS: ich bin mir nicht sicher ob ich danach Fragen kann, also wegen Download link, bzw. Download Quelle, ich bitte um Entschuldigung wenn dies verboten ist..... Aber bitte schreibt es mir in den Thread oder per PN wenn dies verboten ist!
PWI Sanctuary Account
11/25/2010 - elite*gold Trading - 0 Replies
This is a redirect from my original post. I will accept Elite*Gold offers once I have it appraised (time to troll the forum) Perfect World Sanctuary Account if you hold the power to move my original thread here, please do so, I don't mean to spam.



All times are GMT +1. The time now is 11:46.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.