• Advertisement
Sign in to follow this  

Unity [web] Costs of running a web-game

This topic is 4619 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I wasn't sure where to put this, but here seems appropriate. I'm considering putting together a turn-based web game. I am thinking of a fat-client at some point, but I want it to have a workable browser-based interface as well. I have a loose plan for staged delivery of game functionality and clearly I want to build up a community of people to play the game as it develops. In order to do this, I need to give them access for free, at least until there is something worth even a token payment and I would prefer not to have to charge at all. What I am trying to work out are the costs of hosting and the potential for offsetting those costs. If we consider a game that requires some significant DB processing as well as delivery of DB-driven content, with say 50-100 concurrent users, what sort of hosting is likely to be required and how much is it likely to cost? Considering the same site, what are the realistic opportunities to get some money back via advertising or affiliate deals? I'm sure I'm not giving enough info, so feel free to point out where I need to be more concrete. This is all new to me, so any help is welcome.

Share this post


Link to post
Share on other sites
Advertisement
A basic setup:

1x Dedicated server (HTTPD and SQLD):
- Initial setup charge of about $150
- Monthly hosting cost of about $100
(Vary like the weather)
1x Domain name
- .net for two years £20 ~ $35

(Whilst companies that don't charge a setup fee may seem like a better deal, but trust me, they're not. You generally get what you pay for, and if your brand new game is sluggish with page time-outs, database connection problems, and unreasonable unplanned downtime, it won't even start to be popular).

Monthly hosting includes bandwidth charges. If at all possible, look for a company that operates a flexible bandwidth payment system, by charging you per GB, instead of an initial chunk, so if you only transfer 1GB in a month, you only have to pay for 1GB, not the 30GB you've been alotted. Do NOT confuse this with charging per EXTRA GB, this can put you in a pretty bad situation if you happen to go over the transfer limit set.
(Tip: Research pricing plans, get in touch with hosting companies, ask around. You're probably going to be using this host for a while, make sure it's the best you can find)

With regards to advertising or affiliations, you're probably only going to have access to deals like that with a moderately large user base, of a size which would seem financially viable for a business(in terms of hosting payments for advertising deals). Considering that when the user base becomes moderately large, you'll want to roll out a pay to play system anyway, advertising = nah.
Additionally, if you happen to include advert bars in your game, these might decide to sprout pop-ups(not a good thing), so I'd stick to a lightweight Google AdWords advertising system, or none at all.

Also, lets not forget donations, whilst this might seem totally pointless, in reality it does work(for when situations like raising money for server upgrades, etc, come about. Planetia.net raised in excess of £1000 for a seperate database server)

Share this post


Link to post
Share on other sites
The main thing you'll pay for is bandwidth.

You can start on a shared server, if that gives you enough control. Dedicated Linux servers are typically available for under £100, Windows for £150 maybe (might vary a bit).

They normally offer you a certain amount of bandwidth (30G maybe), then charge pro rata for extra.

30G is a lot of online gaming, assuming you're not serving them dynamic images, and your HTML is not utterly terribly bloated.

By "Concurrent users", do you mean "Playing the same game" or "Physically on the web site at the same time" ?

There is a LOT of difference; most turn-based games see people only connecting a couple of times a day for short(ish) periods. Not everyone is in the same time zone.

Mark

Share this post


Link to post
Share on other sites

Thanks for the great responses.

I was thinking of concurrent as actively using the site, but I was thinking of this as a likely peak (these games seem to attract groups that are local to each other, all in the same school etc.) rather than as a constant. Obviously these numbers are just to get a ball-park figure.

If I were to start with a shared server, what are the issues with that? How would I track CPU load, for example, is that sort of reporting available as standard?

What about non-standard connections? Is it difficult to find hosts that will support proprietary server software and comms?

Share this post


Link to post
Share on other sites
I am currently working on turn-based web game project myself (alpha stage at this point).

My team has decided to go for a dedicated server. Not so much because of the work load, but rather because this way we can set it up the way we want to. We developed it on a shared server and we came a long way, but at a certain point we needed to change user access to directories, install certain libraries or extension etc. We worked around it as long as we could, but coming close to the finish line, we had to put it all together and decided to get our own server.

I wouldn't worry too much about bandwidth at this point. I found that you can optimize a great deal during and after development. My motto: if the server can't take the work load, it means that the project is a succes [smile]. Okay, not really, but you can always upgrade.

It depends on what technology your game will be based on what the costs of software licenses will be. Ours is running on a Linux server with lost of free components. Running Windows 2003 server for instance has its price, however when using shared hosting, that shouldn't be much of a problem (per server license).

Look around, compare the costs (how much for crosssing the bandwith limit, setting up extra webs etc.), and see what the options they give you regarding installing your own software, accessing root functionality etc. Try to negotiate, they may be willing to do lower their prizes.

One last advice: try the find a company nearby. I have found it to be an advantage if you can pay them or one of their servers a visit without booking a trip to other site of the world.

Share this post


Link to post
Share on other sites
Whatever you do, developing the game will cost many times a year's hosting, so don't change your development platform based on hosting costs.

Plus, even on the most expensive hosting platforms, hosting still isn't that expensive. Suppose you decide you need Windows server 2003 AND MS SQL server, the price is still only a slightly more than a "free software" system.

Your ongoing code maintenance costs (bug fixes, investigation of problems and enhancements) are going to dwarf the hosting cost anyway.

Even if you only spend a couple of days per month on code maintenance, it's still easily going to be more expensive than hosting.

Mark

Share this post


Link to post
Share on other sites
If you already have a server, I say go for it. If bandwidth becomes a problem, you can always just shut it down. The biggest thing in web-based games is getting users to join and stay in the community. Having that dynamic environment that keeps users entertained is a big thing.

Share this post


Link to post
Share on other sites

Thanks for all the help, guys. I'm sure I'll be back with more questions, but you've given me a good start.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
  • Advertisement
  • Popular Tags

  • Advertisement
  • Popular Now

  • Similar Content

    • By 3dmodelerguy
      So I am building a turn based rogue-like (think CDDA). The game is going to have a very large map (up to 1000's x 1000's) however to alleviate most of that I obviously can't render everything so there will just be render a certain radius around the player and just load in and out data as the player moves.
      The next major system I am prototyping is making interactive tiles destructible and pretty much everything will be destructible besides basic landscape (cars, doors, windows, structures, etc. will be destructible)
      While I am only rendering a certain amount of tiles around the player, I want to keep the amount of colliders active at one time to be as small as possible for performance and currently the tilemap tool I use automatically merges colliders together.
      So instead of creating a separate colliders for each of these tiles and having the destructible behavior tied to that object (which my tilemap tool would allow me to do) I was thinking that I would store an array of all the X and Y locations for the interactive tilemap layer and let the tilemap manage the colliders. 
      Then when I hit a collider on the interactive tilemap layer, instead of of getting the behavior for how to deal with the destruction for that tile from that game object, I would pull it from the array I mentioned earlier based on the tile I attempt to interact with which I already have.
      Does this sound like a good approach? Any other recommendations would be welcomed.
    • By NDraskovic
      Hey guys,
      I have a really weird problem. I'm trying to get some data from a REST service. I'm using the following code:
       
      private void GetTheScores() { UnityWebRequest GetCommand = UnityWebRequest.Get(url); UnityWebRequestAsyncOperation operation = GetCommand.SendWebRequest(); if (!operation.webRequest.isNetworkError) { ResultsContainer rez = JsonUtility.FromJson<ResultsContainer>(operation.webRequest.downloadHandler.text); Debug.Log("Text: " + operation.webRequest.downloadHandler.text); } } The problem is that when I'm in Unity's editor, the request doesn't return anything (operation.webRequest.downloadHandler.text is empty, the Debug.Log command just prints "Text: "), but when I enter the debug mode and insert a breakpoint on that line, then it returns the text properly. Does anyone have an idea why is this happening?
      The real problem I'm trying to solve is that when I receive the text, I can't get the data from the JSON. The markup is really simple:
      [{"id":1,"name":"Player1"},{"id":2,"name":"Player2"}] and I have an object that should accept that data:
      [System.Serializable] public class ResultScript { public int id; public string name; } There is also a class that should accept the array of these objects (which the JSON is returning):
      [System.Serializable] public class ResultsContainer { public ResultScript[] results; } But when I run the code (in the debug mode, to get any result) I get an error: ArgumentException: JSON must represent an object type. I've googled it but none of the proposed solutions work for me.
      Also (regardless if I'm in the debug mode or not) when I try to do some string operations like removing or adding characters to the GET result, the functions return an empty string as a result
      Can you help me with any of these problems?
      Thank you
    • By nihitori
      The Emotional Music Vol. I pack focuses on beautiful and esoteric orchestral music, capable of creating truly emotive and intimate moods. It features detailed chamber strings, cello and piano as the main instruments, resulting in a subtle and elegant sound never before heard in video game royalty-free music assets.

      The pack includes 5 original tracks, as well as a total of 47 loops based on these tracks (long loops for simple use and short loops for custom / complex music layering).

      Unity Asset Store link: https://www.assetstore.unity3d.com/en/#!/content/107032
      Unreal Engine Marketplace link: https://www.unrealengine.com/marketplace/emotional-music-vol-i

      A 15 seconds preview of each main track is available on Soundcloud:
       
    • By RoKabium Games
      Another one of our new UI for #screenshotsaturday. This is the inventory screen for showing what animal fossils you have collected so far. #gamedev #indiedev #sama
    • By eldwin11929
      We're looking for programmers for our project.
      Our project is being made in Unity
      Requirements:
      -Skills in Unity
      -C#
      -Javascript
      -Node.js
      We're looking for programmers who can perform a variety of functions on our project.
      Project is a top-down hack-and-slash pvp dungeon-crawler like game. Game is entirely multiplayer based, using randomized dungeons, and a unique combat system with emphasis on gameplay.
      We have a GDD to work off of, and a Lead Programmer you would work under.
      Assignments may include:
      -Creating new scripts of varying degrees specific to the project (mostly server-side, but sometimes client-side)
      -Assembling already created monsters/characters with existing or non-existing code.
      -Creating VFX
      -Assembling already created environment models
      If interested, please contact: eldwin11929@yahoo.com
      This project is unpaid, but with royalties.
       
      ---
      Additional Project Info:
      Summary:
      Bassetune Reapers is a Player-verus-Player, competitive dungeon crawler. This basically takes on aspects of dungeon crawling, but with a more aggressive setting. Players will have the option to play as the "dungeon-crawlers" (called the 'Knights', or "Knight Class", in-game) or as the "dungeon" itself (literally called the 'Bosses', or "Boss Class", in-game). What this means is that players can choose to play as the people invading the dungeon, or as the dungeon-holders themselves.
      Key Features:
      -Intense, fast-paced combat
      -Multiple skills, weapons, and ways to play the game
      -Tons of different Bosses, Minibosses, creatures and traps to utilize throughout the dungeon
      -Multiple unique environments
      -Interesting, detailed lore behind both the game and world
      -Intricate RPG system
      -Ladder and ranking system
      -Lots of customization for both classes s of customization for both classes
  • Advertisement