Gamelift Review after a month.

I tried to be as constructive as possible, because i do think gamelift can be a good service if the issues are addressed.

First of all you wont be saving money with gamelift, infact it will be as expensive than bare metal servers. The cause is pretty obvious to me, cloud servers are not designed for real time applications like game servers therefore you’ll be needing faster servers and still have some performance issues

In my tests and experience during a full month of production usage i found that a c4.xlarge (gamelift version has only 2 cores!!?) can only hold 2 game servers at most, abit laggy at times, ok nothing wrong with that for most part… not so fast, paying for a full month of c4.xlarge is equivalent to a full month of a bare metal server, similar CPU Clock Speed/ram/bandwidth with 4 physical cores and 8 HT threads. This allowed me to run up to 6 game servers with no issues at all. This is on a reliable provider that i won’t name, but is a big as AWS. Using mom and pops providers is EVEN cheaper…

Ok so, gamelift saves you money by scaling and not having to write a custom solution:

partly true partly false, you’ll still need a master server for most serious applications, and scaling isn’t as effective when you pay 4 times the price, i would rather spent that on stationary servers and always have the capacity rather then annoy my players with unmet capacity.

My suggestions to AWS:

1.- Get rid of EC2 for gamelift, use bare metal servers with custom code to manage the game servers without creating/deleting instances. IMO auto scaling to be effective it has to be almost instantly within seconds and billing should be done by the minute not hour

2.- Add support for reserved capacity at a discounted price

3.- Implement any of the Steam Auth Mechanisms, most of your costumer base should be indie developers, and those are almost exclusively selling their games on steam.

4.- Reduce the cost

Conclusion:

Gamelift is too expensive at the moment even for game developers that don’t have the skill or budget to write a custom solution.

I hope this helps in improving gamelift. :smiley: in the mean time im ijn the process of migrating out of gamelift.

Thanks for taking the time to provide this feedback @davevillz. I’ve passed this feedback on to the GameLift team. This sort of feedback is invaluable in helping us improve our services.

The subject is very interesting, but I believe you need to get more in dept or it doesn’t make sense for someone that doesn’t know your use case in details.

I’m not a server guy and most of my consideration can possibly be very naive, but I’m one that likes to understand things and from your post, there are too many thing, that based on my knowledge, I simply don’t understand.

Follow me and correct me if I’m wrong.

I believe that dedicated servers are just computers while aws offers a wide ecosystem of very different services you can leverage in your app apart from the bare computing instances and Gamelift service itself so, apart from some gray ipothetical use cases, where the 2 may overlap, it is mostly an apple to orange comparison.

Not to talk about cheap mom and pops servers performance and reliability that are at least dubious as far as you don’t even tested them with your use case, so you shouldn’t even name them.

A game that just utilize a single instance and no other cloud feature, always on 730 hours month is the worst case scenario possible for a cloud service.It is quite evident that in this simple scenario the dedicated solution outperforms it as you are paying for potential flexibility and features you are not leveraging.

With dedicated servers you paid everything upfront so you cannot upgrande or downgrade on the go and this also apply to your master server that you still need also with dedicated servers so it’s cleare where your discount come from and at what relative cost.

You have omitted so many details.

  • What’s the bottleneck with your game server?(What stops you to have more that 2 servers on one gamelift instance and what accounts for the lag)
  • Have you tried to profile and then optimize on the target hardware?
  • What kind of game server is it?
  • Do you accounted for any other related management cost?
    This just to make people like me at least understand what we are talking about.

I believe that If I launch my game expecting to perfectly forecast the number of dedicated servers I need at any moment in the game lifecycle, taking care and monitoring them personally I will risk and pay way more than just use something that makes me sleep at night.

In a world of things you cannot control where games get viral and then get simply forgotten… and maybe come back again with few peaks always virally it would be better to stay flexible.

Don’t quote me on this but if you just need more power using larger instances make you almost sure to have few or no neighbors in the physical machine and also lowers the computing costs and as you said instancing time is fast but not that fast so even a simple game instancing a load of micro instances every hour is quite a waste.

p.s.

I know that it is pointles math but just to clarify 6 game server processes in place of 2 is 3 times the capacity for the bucks and not 4.

Hey @davevillz, GameLift team here,

Appreciate you taking the time to provide us some feedback. Would love to learn more about your experience on GameLift and to understand your needs better. I’ll follow-up offline today. Thank you!

I still believe that a machine costs less than the man hours need to make them run seamlessly so when I just think to manage a server myself by my own time whenever it needs attention or pay someone else to do it every other cost immediately goes in a different perspective.Machines also scale way better than humans :).

You can do so many things by yourself, but apart costs, simply postponing the time to market can be prohibitive just think about paying an almost idle team of developers.Delegating you hard work to a battletested solution just ready now and not requiring any major additional work is very hard to beat, however with these few details and just relying on your math I cannot have a real overall look at the forces involved.

I would not understimate bottlenecks and continue to profile things on both platforms even just to understand where the difference come from as if you hitted some subtle bottleneck you may get detrimental ,but distorted performances the ones that a simple fix may put in a different league.

Gamely,

There’s no bottleneck, there’s simple not enough computing power for me to run more than 1 game server per core. simply as that, everything else is relative.

I profiled my game, yes but only then i realize how much money i was gonna lose if i stayed with gamelift (i rented a bare metal server for testing purposes)

I run 90htz Unreal servers.

Management costs, is zero for me as im a 10 year former web developer, i’ve run linux servers since i was 15 years old, yet gamelift is too expensive, you might aswell hire someone to do this for you.

Currently 1 week away to move out and have a fleet of six core xeons that can hold up up to 16 game servers each… for the same cost as a single c4.gamelift.xlarge instance This is a no brainer to be honest LIKE i said even if you don’t have the skill to write your master server the cost long term is way too high.

I recommend you to watch Steam Dev Days talk about game servers, conclusion is that bare metal server are the most cost effective. They also talk about providing their bare metal solution to game developers, so no im not making this up just facts.

Cheers

EDIT:

Remember that bandwidth is billed individually is not included in the instance price point. that makes it 4 times as expensive. However in my case as of right now that im all setup with bare metal server is 10 times as expensive.

Believe me i’ve spent more time fiddling with gamelift than actually coding my master server and deploying my servers.

There’s many issues with the API, is like there was absolutely no consultation on game developers needs, too many calls that could be easily but into a couple of well designed calls, many state shenanigans, for example the fact that you can’t immediately join a game server after calling createSession is ridiculous. This means that you need to query for the game session state!? This is not an issue on a typical node.js web app, but in a game, you probably are doing this in C++ and gets very complex when you need to do so many calls to get a game going. And don’t get me started with the authentication, this is another layer of complexity i wasn’t willing to fiddle anymore. without mention the unlogged failed api calls, the only reason i knew a handful of my players weren’t able to make api calls for some unknown reasons was due to my analytics.

Any indie developer should consider if they want to make their game session based just to put it in gamelift because there are old school alternatives like steam’s server apis that only need you to make a server browser (it’s easy with steamworks) and provide the servers, very easy and painless, you can trow a session game in there too just like l4d2.

If they aren’t targeting indies, I don’t see any reason why a AA or AAA game should be using gamelift either, because even a 10% cost reduction means thousands of dollars for their deployment sizes, gamelift is at least in the -400% range no sane project manager would make this decision.

AWS needs to get their stuff together and listen to us, not just come with API and features designed for web applications, let alone put their overhead costs into our pockets.