Free or cheap node.js hosting?

Hello! I’m working on a multiplayer game for the February GameJam competition.

For multiplayer functionality, I’m using socket.io, which requires me to run node.js on a server, and this is where I’ve run into too many options and questions to make an educated decision on which service to use.

  • Hostgator offers virtual private server hosting for $7.95/month, which sounds fine, but I don’t know if there are cheaper options
  • Google Cloud offers a free trial, but not sure how much it costs afterward.
  • Open Shift claims to have free node.js hosting, but I’ve never used them before.

What do you suggest, are there any free options? Does PlayCanvas offer any similar services? I don’t mind paying, but I want to make sure I choose the right service.

Thanks for your suggestions!

1 Like

Hi @marquizzo.
Unfortunately playcanvas has no offers for hosting back-end of developer games.

But I will share my experience and the way I’ve started doing multiplayer. So I’ve rented EC2 Micro instance on AWS for a year for free. So AWS offers Free Tier thing, where you can use their services for a year for free. What it gives you: full featured linux machine, it has all you need, and you can install on it anything you want. That is the way I’ve started initially with many of my personal projects, including initial version of TANX game, which then we moved to more powerful servers.

A year - is well enough to get loads done. So if you end up monetizing your game, it will be pretty easy to get to the level of monetisation when it pays off the hosting costs.

2 Likes

I’ve run node.js apps on both Heroku and Azure. You can try them free. They both have a good toolchain to build directly from Git/GitHub.

1 Like

Thanks for your advice! I didn’t occur to me to look into Amazon.

I ended up going with the Hostgator option last night. It turned out to be only about $50 for the first 6 months, which gives me 512MB of ram, 0.5 cores of CPU usage (whatever half a core means), and 500GB of bandwidth. Should be enough for development and testing. If the game gets enough traffic I’ll take your recommendation and switch to AWS, which I presume has a more robust network and lower latency.

Regarding bandwidth, do you think it would be smarter to communicate by using abbreviated key-value pairs? Is this

plyr = {
    id: socket.id,
    nm: usercount,
    pos: 0
}

preferred to this

player = {
    playerID: socket.id,
    playerName: usercount,
    playerPosition: 0
}

when using websockets to keep bandwidth down? Or is the difference too insignificant to worry about?

At the beginning JSON is ok, and try keep it smaller - indeed. So that you don’t send too much data, and it is simple structure to work with.
Later on I recommend to switch to some binary data protocol. We’ve used ProtoBuffs in TANX. It wasn’t straight forward to begin with, but once figured out, it made good difference in terms of bandwidth.

But to start with, keep it simple, JSON - is good way to start. Don’t overcomplicate things, and be short :slight_smile:

1 Like

opeNode.io provides a cheap Node.js hosting services, with a free plan, with great support.

you can try linode it is has cheap and fast virtual machine compered to all others.