• Advertisement
Sign in to follow this  

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
  • Advertisement
  • Popular Now

  • Advertisement
  • Similar Content

    • By Bakkerbaard
      I'm kinda stuck on a puzzle. Usually I'd now tell you what the puzzle was and ask for a walkthrough, but my problem is that the puzzle doesn't even exist yet. Been googling around a bit for helpful info, but I mainly end up on Ron Gilbert's site and he isn't helping much either on this specific point and I'm wasting valuable writing time looking for a solution.
      Problem is that I don't wanna do another "get item here/use item there" puzzle. I've got enough of that and there will be more. To add some variation I wanna try and do a different style of puzzle, a lever puzzle, or a mechanical puzzle, but that leads me to a way of thinking I can't seem to do. Here's the specific situation:
      I need a bunch of ostriches out of my way. They're on an ostrich farm and they get fed every day at five pm exactly. So I'll need to head into the church tower and make the bell ring five times. I'm thinking this needs to be done with a mechanism I could manipulate in a puzzly manner. Getting a hammer and banging the bell is too easy. The game doesn't work with actual time, so going all Medjay and meditate till five o' clock isn't an option. That bell's gonna need to ring five times, wether it's three or not.
      I already have access to the church tower, so that can't be puzzlefied and I can bullshit my way through most incosistencies, so adding a space age computer to a medieval belltower is actually an option if need be.
      I'm looking for someone who can point me to either a useful resource or someone who imagines stuff like this better than I do. 
      Oh, and pretending there will actually some day be a point that credits will roll: You will be credited if you please.
    • By Nick Tuttle
      Hey guys! First post here

      So like the post title reads, I'm looking for some feedback on a few electronic tracks as well as some advice on where to begin with networking (specifically, contacting indie devs about getting some music placed without coming off as a lame solicitor).

      I've seen a few "work" sections on this site and other similar ones, but none of them really seem to have anything remotely helpful in terms of music - or maybe I just suck at using the search tool? I've also taken to twitter and acquired a fair amount of followers, but I'm not getting the results I want, mainly being conversations with people who are working on games (even minimal budget indie games) about scoring. Any helpful advice would be greatly appreciated!

      And lastly, here are three tracks I'd really appreciate some feedback on! Mostly about mix and composition. I know the master levels are a little low, and I prefer to keep it that way and retain full dynamic range. Thank goodness the loudness wars are over haha. 

      Tension track: https://soundcloud.com/spacepengu/farewell-sleep 
      Guitar & synth track: https://soundcloud.com/spacepengu/guitar-synth
      Chill / relaxing electronic track: https://soundcloud.com/spacepengu/chill-space-92816-439-am

      Thanks so much guys, looking forward to reading your replies! 
       
       
       
    • By Luhan M.
      I'm nearly finishing my Pong game, and I was wondering if I should encapsulate things such as physics, rendering, sound, in such a small game.
    • By standinonstilts
      Hi, I am new to Game Development and am currently making my first game in Unity using c#. I am a second year uni student studying computer science (internet security specialization). I am new to unity and have had trouble understanding how the game engine actually functions and how I should use the engine to my advantage when programming. Currently I am making a RPG and want to implement an efficient and scalable item database. My plan is to store all items in the game in an xml database using the built in unity xml serializer. I have an abstract class item -> weapon, armour, potion, ring etc. Each of these classes have respective values (damage, cost etc.). For a relatively generic and straightforward item system: How would you organize your code? What interfaces/classes/other would you implement; why? In your experience what kinds of issues have you run into and how did you work around them? Is there any other advice with regards to rpg design in general?
  • Advertisement