[vworld-tech] Straw poll...what are people working on?

Weston Fryatt wfryatt at muuf.com
Mon Dec 29 15:20:44 PST 2003


First let me introduce myself, My name is Weston Fryatt and I've been
programming professional in C/C++ for about 10 year now. Most of my work is
in the area of Database Applications and multi-tiered Client/Server
Applications. So, I'm no stranger to programming.

I have always wanted to write a game since I got into programming in the
early 80's, But it was one thing or another that got in the way. Now I'm
much older and feel that I have the right background to start off.  I have
been working on my project with a few friends around the country for a few
years now and we have most of the rules and logic written down and I'm
starting to code part of the game now.

My approach to an MMOG is I think a little difference than most MMOG that
are currently out there.  It "seems" that most MMOG run on one massive
server. (Maybe I'm wrong here) But this way just seems ... Wrong... I think
a better way of approaching the idea is have several layers of servers. Each
server will either work as a group to help manage bandwidth and load and
also providing redundancy and failover.

Example:
        Server #1 Server Locator (192.168.0.1 Port:8000)
        Server #2 Server Locator (192.168.0.2 Port:8000)
        Server #3 Logins (192.168.0.3 Port:8001)
        Server #4 Logins (192.168.0.4 Port:8001)
        Server #5 Game Time (World Time) (192.168.0.5 Port:8002)
        Server #6 Weather (192.168.0.5 Port:8003)
        Server #7 NPCs (192.168.0.6 Port:8004)
        Server #8 NPC's (192.168.0.7 Port:8004)
        Server #9 NPC's (192.168.0.8 Port:8004)
        Server#10 Database Cache
        Server #11 Database

In the above example, The first to servers (Server Locator) contain a list
of all of the rest of the servers (IP, Port, Type, Version, etc) this is
mainly done so when the client connects it can dynamically find all of the
servers. Once the client has the list of the servers that are running, it
will now know how to connect to them (IP/Port).  From the example you can
configure the game to run in any number of configuration. You could run
everything on one server or a server per box.  It really depends on the load
that the game server has to work under.  When the client wants to connect to
a server it first checks the list of known servers and find the type of
server is need to talk to, If there is just one server of that type then it
makes the connection, if there are multiple servers of that type then it
will find the server that has the least amount of hits (local hits from this
client) and connect to that server. This will help spread the load of the
connection across the servers. It won't be a true balance spread but I think
something is better than nothing at all.

All data generated or required by a servers will be presisted in a SQL
Database server with a front end custom cache. Some people that I have
talked to feel a SQL Database server no matter how fast will never be able
to keep up with request.  To help with this all of the servers first talk to
the Database cache server which will cache the data in ram and flush the
data to the database server as needed.  This will help keep things as fast
as possible and yet have the reliablity of a database server on the backend.
You could also at this point, Mirror the database server to a backup drive
or back up server just for an archive.

Well.. This is my idea of working with a MMOG, Not sure if it will work or
not, but I feel it worth a try.

Thanks,
Weston Fryatt









More information about the vworld-tech mailing list