I'm in the process of developing a mobile and browsers based game. The main use for the server I'm looking for is for managing users, their stats, and validating actions(making a purchase, completing a level, etc). Right now the game is set to be level based and single player, with the ability to share progress and leader-board. That said if the language gave room to do realtime multiplayer that would be a plus. I've only had experience developing game servers in NodeJs and Scala. If either of those meet what I'm looking for, from what I described, awesome. However I am interested if there is a better/industry standard, server side coding language that I could learn as well as develop my games server with.
What Server Language Should I use?
There are many options of course. Depending what services you need and your budget for hosting.
Amazon has a comprehensive service called GameLift, but I have no experience
https://aws.amazon.com/gamelift/
or you could code your own, like you said, but consider where you will host it and the costs.
https://duckduckgo.com/?q=multiplayer+game+engine&t=ffsb
good luck
- PHP/Apache
- Haskell/Warp
- Erlang/OTP
- C++/Boost
- Python/Twisted
We've tried Node as well but there was no additional value for our use case. There's also some internal systems written in golang and Python/Django.
For doing simple web requests, all the options (as well as the options you suggest) will work fine. (There's also C#/.NET, C#/ASP and Java/J2EE, which we're not using but others are.)
For real-time, it matters more what libraries you want to integrate. If you want to run physics simulation, you're going to have to link against PhysX, or Bullet, or ODE, or something like that, which generally comes in C/C++ form. (For 2D there are a few JavaScript libraries, so Node might be able to help there, but JavaScript does not have deterministic-across-clients math.)
It is also totally possible to make multiple systems talk to each other. Thus, going with Node.js or Scala for now (because you know it) is probably a good idea. You can always add something else later.
That being said, if you HAD to choose ONLY ONE environment, it would have to be C or C++ based, because there's nothing you can't do there. It's just that, sometimes, it's more painful :-)
First of all, I would say it is a personal decision due to the fact that requirements for building a game server is entirely up to the person who will pay or build it.
Now that I said that and I can put that aside, other than what was mentioned above, one would like to know the hardware the game server would run on and the facilities the code will try to access, which language and runtime provides these is again have to be written as part of the requirement.
In my case, I had to write my own game server on C/C++ ( see https://github.com/MagnusTiberius/WalkerRoad ) because my hardware spec were low and I don't have the budget to go for a big iron hardware. Plus, C++ has access to most all Operating System resources.
Our team use C++ in backend development, we open source in Github(see NFrame). Because we always use C++ many years.
But as a server, the most important is service, not the programming language, every language can do this, so don't be worried about language, just choose the most familiar one.
All roads lead to Rome
NFrame - agile game server developing framework. Github:https://github.com/ketoo/NoahGameFrame