Sign in to follow this  
graveyard filla

does your server have a real window / GUI ?

Recommended Posts

hi, quick question. first of all, let me give some info that would be important. im working on a 2d online RPG. the game will be a persistant world, this means i will run a dedicated server. i won't be distributing the server, so only i will run it. anyway, should i give the server a real window w/ OpenGL rendering capabilities? or, should i not bother and just stick with the windows console. what do you guys do ? my one concern was speed. console output is S - L - O - W. i know that rendering font to the screen via OpenGL is probably 10x as fast. however, the server won't be doing this much, except maybe when i want to execute commands, which, wont be very often if at all. so really, this isnt a real concern. but im thinking there might be other reasons to do this. just lookin for what you all do and your opinions. thanks.

Share this post


Link to post
Share on other sites
interesting, so a service is just a console app that is run invisably in the background? i don't really have a need for that. i plan on buying a machine when the game is ready for a decent beta and running a dedicated server. i dont need to completely hide the program since i'll be the only one using it and dont mind it being up. i guess i was just curious what everyone else does and what recommendations they had for me.

thanks again.

Share this post


Link to post
Share on other sites
You don't want to burden your system with the bus hogging and interrupt latency of a graphics window.

What we do is write a HTTP listener right into the server. You connect with a web browser, and can check up on status, change parameters, etc. This is for a large, commercial, online world. The cool thing with this is that you can also automate management using Perl, or wget, or C#, or whatever you have that can issue HTTP requests.

You also want to look into logging. We log interesting events (a fair bit of them) to files on disk. We close and re-open the files every so often, so that a log rotater can rotate them out of the way so the disk doesn't get full. This is good for getting debugging or audit data after the fact, but a "tail -f" on the file will spew a lot :-) Luckily, disk writes are pretty much free in our system, as they are asynchronous and we're not disk bound on the log disk.

We also log important player-affecting events into a database, where we can run reports on them ("which of these three guns is most effective" etc).

Last, operational alerts and things that possibly warrant investigation get logged to syslog, and listened-in to by a central syslog client, which collates reports from all the machines in the cluster. There's also some other monitoring software like Cricket, Nagios and Logsurfer which helps managing it all.

Some of this may be overkill for you, but I do recommend the HTTP interface. Make sure every subsystem has a good meta-data description of itself, so that you can easily create a HTTP service for it, and you're ready to go.

Share this post


Link to post
Share on other sites
hi hplus,

thats pretty interesting that you have a web interface to the server. what kind of machine are you running it on? im planning on setting up a MySQL server on my machine soon which will store character and account data and stuff on it. i was planning on setting up triggers to log things that seemed suspicious. so you guys take statistics on things and log it? do you do this to help make changes to the balance of classes / weapons and stuff?

Share this post


Link to post
Share on other sites
What exactly were you planning on doing with this window?

Another big reason to go the route that hplus recommended is that you usually don't want to have to physically go to the server to administer it. With commercial systems you often don't have physical access because the actual box is being managed by either your IT people or some hosting firm on the other side of the city (or country for major applications).

One thing to keep in mind with remote administration is that you need to make the administration access points very secure.


Share this post


Link to post
Share on other sites
Quote:

thats pretty interesting that you have a web interface to the server. what kind of machine are you running it on? im planning on setting up a MySQL server on my machine soon which will store character and account data and stuff on it. i was planning on setting up triggers to log things that seemed suspicious. so you guys take statistics on things and log it? do you do this to help make changes to the balance of classes / weapons and stuff?


Lots of questions. Perhaps I should write a post-mortem sometime :-)

Our server cluster has a number of servers with different roles, such as simulation, routing/visibility, transactional applications, database servers, web servers, etc. We used to run some of them on Win2k Server, and some on Linux, and both had bugs. However, we had the source, so we could fix the bugs in Linux, but we couldn't do that with Win2k, so the production servers currently run only Linux.

Almost all boxes are the same: cheap, 1-U, Pentium 4 servers with a single Ultra-ATA drive. For the database back-end servers, we use a 2-U enclosure, and RAID-1 for the database logs and RAID-5 for the database table space. We still boot off and page to the single ultra-ATA drive :-)

We use MySQL in production, and are happy with the price/performance ratio. Actually, we're happy with the performance, no ratio necessary.

Our data warehouse can be used to tune anything and everything in our system. We mostly worry about the virtual economy, as our game elements are light enough or real-world enough to not need much tuning.

Share this post


Link to post
Share on other sites
thanks hplus for your reply.

im kind of getting ahead of myself here, but... what kind of system specs do you recommend for a server? im guessing that it doesn't have to be a top of the line computer? my game is going to be a persistant online RPG, however not a MMORPG. i am more realistic then that and i don't expect to ever have a game of that quality myself, or, more realistically, dont expect that many users to be playing. my goal is to support 30 people online at once with the server running on my cable connection. so far the bandwith im using is very low, however obviously this will change as i add things. the server will be built into one program , and the machine will also host the SQL database.

anyway, what kind of CPU specs do you recommend? is CPU speed really an issue at all? im thinking memory is more important then CPU, however like i said my goal is to support 30 players, and caching 30 players shouldn't require much memory. would investing in dual CPU's be worth it at all ?

btw, out of curiosity and if you don't mind, what game are you working with right now ? just ignore this if you don't want to answer [smile].

thanks again.

Share this post


Link to post
Share on other sites
Quote:

is CPU speed really an issue at all?


That depends on the game. You can either implement the server, then measure it under load, and calculate CPU needs that way. Or you can decide on a CPU right now, and make sure that you measure your server as you develop, so you don't go over the determined budget.

I'd say that, for a simple RPG with 30 players, anything Pentium III/500 or newer is likely to do fine, assuming you don't do actual step-based physical simulation on the server, but rather cast rays through some optimized representation of walls once in a while (say, every second or so).

Currently, I'm working on technology planned to be used by the military to train and refresh remote and disparate troops together. That project has the catchy name "AW-VTT" -- I'm sure you've heard of it ;-)

Share this post


Link to post
Share on other sites
Writing remote admin into your server would be very cool, although writing a whole webserver into your app might be a bit of overkill. It would probably be much easier to write your own little network admin app - as your game is already multipler adding a special logon for admin shouldn't be too dificult and would be extremely handy. It would also mean you could run your admin app on a different OS than your server :P

Although to be honest I'd just recomment printing to the console till your game is at least mostly working. Its simple and easy and if you print to stderr you "should" get all the messages printed (if you print to stdout and your server die the last few messages may be lost). The console maybe slow but if your only printing out some admin lines every now and then it shouldn't be a problem. If you print out data every game loop then it'll chugg like crazy - but I unless your debugging something you probably shouldn't be printing out that much stuff anyway.

I also second the log point - they will save you hours and much sanity if use well :D

[Edited by - kaysik on November 11, 2004 11:28:44 PM]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this