Jump to content
  • Advertisement
Sign in to follow this  
tariel36

Game server for (yet another) MMO game.

Recommended Posts

This is not 100% networking question but rather choosing the right path.

We design SP/MP multiplatform game with similar gameplay to all those browser games like OGame (etc.) or "idlers" like Fallout Shelter - that means, you choose actions to do and then leave for some time untill everything is finished then repeat. To implemenet the client-side we'll use C# with Mono or something like that.

The SP segment would act as tutorial or so, the same mechanics but much faster, which requires game logic to be available localy.

On the other hand the MP segment would act like slim-client which only gets data or requests changes to user's account from game server. Game logic and mechanics stays the same as SP, but slower.

Since it's not any action-like game it does not require complex server architecture so there comes the question.

Is it worth or required to implement our own server-solution, implemented with C#/CPP hosted on VPS or dedicated server (or maybe on rented IIS hosting?) for such "simple game"? After some brainstorming we've came to conclusion that we could implement such solution with PHP or other "web" programming language for sake of more common hosting solution.

The question is, which solution is better (since all have pros and cons):

  • Own game server with VPS or so
  • Existing server solution with simple engine implementation and common hosting solution (like PHP or so)
PS. Sorry for bad english.

Share this post


Link to post
Share on other sites
Advertisement

Have you considered a cloud solution like Amazon or Google? It can give you flexibility to adjust for the game's popularity and avoid the need to upgrade the server under pressure or to switch to a less powerful machine in order to save money.

Share this post


Link to post
Share on other sites
15 hours ago, valambrian said:

Have you considered a cloud solution like Amazon or Google? It can give you flexibility to adjust for the game's popularity and avoid the need to upgrade the server under pressure or to switch to a less powerful machine in order to save money.

Not really. Can you give a bit more details or point into right direction?

Share this post


Link to post
Share on other sites
13 minutes ago, tariel36 said:

Not really. Can you give a bit more details or point into right direction?

Look up Amazon's AWS and Google Cloud services. Both allow you to rent servers, and to have servers dynamically added and load balanced.

 

Unfortunately your question needs far more information to be answered well.  They include questions about how much data is transferred (both in individual games and across all games), how much processing is required (both in individual games and across all games), and your budgets. 

You are right to consider simple web hosting IF your game can work with such systems. If you have very low bandwidth and low processing requirements even when many people are playing, that can be a cheap solution.  If you have low requirements per game, but if having 1000 active games would be too much for a hosting service, then you'll need to look at bigger solutions.

Bigger solutions cost more money, which is where budget limits are important.

Share this post


Link to post
Share on other sites

Yes, you should use a server/servers plan... or maybe a custom and reliable one (expensive?). That's out of question if you want to give a good service. 

AWS Bandwidth can get expensive... It's something like 0.09$/GB. I don't know if that could pay a player, maybe if it's a website-based game, and/or you are a really good item seller-merchant. Talking about bandwidth. I would consider Digital Ocean, Vultr, or Amazon Lightsail, because of bandwidth costs. And Vultr/Digital Ocean have the most accessible payment schemes. Vultr lets you upload a custom ISO.

But what about IIS. I think you could do that, and maybe it's cheaper. Personally, I like to have an OS at hand.

Coupon https://www.vultr.com/?ref=7288642
Coupon. https://m.do.co/c/1d5dbbfaa92f

Edited by RnzCpp

Share this post


Link to post
Share on other sites

For games like Farmville, or Backyard Monsters, or similar, yes, you can calculate everything you need to know when the player connects and makes the request "what is the current status?"

Typically, anything that grows or evolves, will have some "grow duration" and some "start time." The game state simply consists of all the items, with their stats, and start time. Once the current time is > start time + grow duration, the object goes from "growing" to "completed." This can easily be calculated both client- and server-side. To work with time zones and clocks out of sync, you'll want the server to respond with both "this is the time the thing started" and "this is the time the server thinks it is now," and then have the client calculate a delta between what it thinks the time is, and what the server thinks the time is.

If you need real time interactions between players (attacker and defender both make moves that react to each other) then you will need something with more permanent connections than the request-based PHP programming model, but for the basic games, resolving everything only when the player asks for state is totally fine.

 

Share this post


Link to post
Share on other sites

Thank you all for replies. That pointed us in some direction and we'll investigate the possibilites. We would like to reduce costs to absolute minimum for now.

Share this post


Link to post
Share on other sites

I would go with the simplest solution where you have the most knowledge.

For development and ease of deployment, PHP is definitely a good choice. I once made a turn based browser game using PHP, and it was extremely easy to ship something that people played, and deployment just meant FTP-ing to a shared host.

If you go down the IIS route, keep in mind setting up a server, configuring IIS correctly, keeping the server updated and so on will cost you significant time with a VPS, and if you use a cloud solution, the costs will be relatively higher. (Azure has a very nice 'webapp' solution that gives you a pre-configured Windows environment you can just deploy your .NET webapp too, but it's not cheap).

Good luck!

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  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!