J
J
jagev2017-02-21 13:32:24
Python
jagev, 2017-02-21 13:32:24

On what to write the server for the game?

Good afternoon, dear Khabrovites!
We are a small team of game developers who have successfully released several mobile toys. Now we have a desire to make an online RPG game, but we can not decide on the server technology. We have experience with Node.JS, but we are not sure if it will be suitable for a game that will have a thousand people online. JAVA is traditionally used for such tasks, but we are only superficially familiar with it. The Python + Twisted bundle looks very tempting, but the entry threshold is very high. And in general - eyes run wide from a huge variety of technologies, we also have Go and .NET under consideration.
In short, help us make a choice! We need the simplest solution with the ability to scale the server. Not necessarily the most productive - you can always buy iron.

Answer the question

In order to leave comments, you need to log in

11 answer(s)
S
sim3x, 2017-02-21
@sim3x

How many dozens of games have you crossed 10k rps/online?
0?
Do on anything
Takes off - rewrite

N
Nwton, 2017-02-21
@Nwton

We have experience with Node.JS
not sure if it will be suitable for a game that will have a thousand people online
Funny.

T
taktik, 2017-02-21
@taktik

I would choose Go, it's great for backend game development.
You can use protobuf to communicate with the client.
Here is an example of an MMO game in which the server is on Go - https://habrahabr.ru/post/321148/
In the comments there is a link to a video report, which reveals the technical details of the server.

F
Frel, 2017-02-21
@Frel

What do you write games on? Unity? If so, then under C#, .net!
If in java then in java!
Or what you know, write on that!

I
Ivan Filatov, 2017-02-21
@NYMEZIDE

C++, .Net, Java - take what you can and know well.
Performance-wise, C++ is better.
But your best bet would be to hire someone with that kind of experience to join your team.

X
x67, 2017-02-21
@x67

and what are you good at?

S
Saboteur, 2017-02-21
@saboteur_kiev

The amount of online is not considered that way at all. It all depends on the game.
I had a project with online under 100.000 per day. It was easy to keep on php / fastcgi, though for one thing I had to write a lotion in assembler and implement it as a lib for apache, but this has nothing to do with online.
Write a load test, figure out what exactly the players will do. You can dance both from the language and from the architecture of the game. For example writing something like aion/lineage - I would prefer C++ over java. Although java emulators quite kept under 1000 online on an average server even before optimization.
In general, it all depends on the traffic and the requirement for the reaction of the player.

E
Elizaveta Borisova, 2017-02-22
@Elizaveta

In 2017, Kotlin deserves attention - it was created to support very large java projects, the code is really much more compact, and nullability!)
Node.js is unfortunately not so good for the largest projects, it is difficult to maintain, at some stage it needs to be transferred.
Python is also possible, in places, there are examples.

A
Alexey Epsilon, 2017-03-02
@Epsiloncool

I am also choosing a server now for the game, I read a lot of reviews about existing servers and technologies, until I settled on Forge. It runs in a Unity instance and supports all unit physics, colliders and others, which means that it will be quite easy to implement Fully Authoritative on it.
In general, the server is very dependent on your requirements for it. Realtime array multiplayer is not at all like a turn-based game with rooms.
On the other hand, to implement everything from scratch - we do not have so much time and money to do this. Therefore, we write under the unit and, accordingly, we take the most suitable server.

B
bioroot, 2017-03-02
@bioroot

[irony] Of the newfangled languages, Rust has not yet been mentioned. Write on it.[/irony] And if there is no clear understanding of what to write the game on, then I would take Unity. There are many lessons, libraries, a large community, there are developers on the market for it, if necessary, expand the staff, C # is a strict and understandable language. Well, Unity itself is being actively sawed further. And given the fact that in the modern world you need to roll out a product as soon as possible, I don’t even know if there are good alternatives if you don’t have a lot of baggage from the other technologies listed above under high load. PS: As part of js, MeteorJS
could also be mentioned . But in my opinion, if the game is real-time, and not turn-based, then it will not pull.

D
Daniel Literate, 2017-03-02
@Fuckoff95

As I saw in the comments, since you want to abandon OOP (I don’t like it myself), then take Go.
It’s still not strong to code there, but the tools for the type of network connections and parallel work are very simple and easy to learn to make a server.
I myself had experience creating a game server on Go, but there the game is turn-based, so my example will not help you :)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question