2
\$\begingroup\$

i went thru a lot pages here searching for information about the "server side" of a multiplayer game, while i did found some information they were not exactly what i was looking for.

  • What is the best available options for the server communication ?
  • Is it worthed to handle a game server with website requests for a mmo or should not even be consider at all ?
  • Are you aware of any good material regarding the same in C# for a headstart on the subject ?
  • When should i consider creating multiple servers for example "monsters servers, world drop data and the such" or what should i consider for this (i've seen that some very popular games out there use this sort of thing such as a server for monsters, lineage for example) ?

Currently i am developing a 2D game using Tiled and C# for single player but i would like to further turn it into a mmo game but i am very unsure of what a server would look like for this ... Any further knowledge or personal experience you could provide related to the server aspect and options i would appreciate.

As i said above it is a 2D with multiple maps where the user goes around as their level grows, each map which is not a town has monsters spawning and despawning when killed by players, players can move around on the possible spaces, once a player hits the border of the map at defined locations it will take them to the next map...

Since i am doing it on a 800x600 size i guess i will need to limit the players per server (or something like world's or whatever term is used for it..) so it does not over populate the screen with players ...


if my question or english at any point is not good please wrap your comment and i will try to rework it to best fit the community of if you can edit it and correct what you feel like should be changed, please go ahead...

\$\endgroup\$

1 Answer 1

3
\$\begingroup\$

Asking "What server should I use for my game?" is far to generic to get a good answer. The server architecture for a game of the scale of an MMO is enormously complicated (I think we have ~3 dozen different server types) and, more importantly, entirely driven by the needs of your game and style.

I think part of your question is "Can I use a webapp for the server component of my game?", to which I would say "Maybe". What are your latency requirements? For something like simple chat or a shared high-score system that would be perfectly acceptable, for something like communicating player movement (high-volume, low-latency) maybe not so much.

\$\endgroup\$
4
  • \$\begingroup\$ Thanks, that is indeed a good point... initially it is a 2D game with multiple maps(players can move around and kill monsters, do quests) i guess i might need to limit users per world and need multiple worlds if the game ever gets to the level of holding enough users... I've done lots of things with api's before but most for authentication issues, etc... which made me wonder if it would be usable at all... but i guess in the end if i had too many users on the game it would be more of an issue to have it like that right ? \$\endgroup\$
    – Prix
    Jul 22, 2010 at 2:32
  • \$\begingroup\$ As for the latency issue i would like to keep it as low as possible but i guess this is a very trick question ... to be able to maintain everyone at the same pace ehhe \$\endgroup\$
    – Prix
    Jul 22, 2010 at 2:38
  • \$\begingroup\$ So the problem with using a web server for this is 1) webapps are generally stateless because 2) webapps aren't oriented towards long-running connections. You generally open a new connection for every request. This leads to a lot of overhead for maintaining state on the server and client side. You might want to look at things like Twisted or node.js as tools to build a custom server of your own. \$\endgroup\$
    – coderanger
    Jul 22, 2010 at 2:47
  • \$\begingroup\$ Thanks i will take a look at that ... i guess i will start playing with some server and sockets for now and see how it works more in-depth too ... \$\endgroup\$
    – Prix
    Jul 22, 2010 at 4:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .