It would be easier in many ways to have ONE program, which contains all server and client code. This simplifies some aspects of testing and building the application. The program runs in different modes depending on configuration files, no graphics on the server for example. Some effort is required to draw the line which separates server and client aspects, but this would be required whether one executable is both (my current preference) or there are separate client and server programs (the norm, I suspect, for almost any large Client-Server system).
Well. It may be the norm, but that doesn't mean considering something else might not yield interesting progress.
Firstly I am talking about a MINIMAL MMO. Putting everything in one place might help keep the size down.
Developer convenience is an important factor. Switching devpt. environments and designing intermediate protocols could - to some extent - be eliminated.
I obviously still have to send messages from the clients to the server. Even a lobby+client group system needs a server to hold the 'actual' state of the world (well, okay peer-to-peer network is one possibility). But if I'm careful designing the separation between different parts of the code then the messaging might be able to be pretty transparent, or even non-existant, for a while.
In a similar vein, coding for 2 or 4 separate client windows within a single executing copy of the program - and having them communicate with the server separately - might prove useful in testing. User input handling would be slightly unnatural (active console select), so maybe running multiple copies of the code would be better... hmmm.
No comments:
Post a Comment