Задать вопрос
@prog199708

На каком языке программирования писать сервер для игры?

Надо написать сервер (мультиплеерный) для игры в жанре Battle royal. Средний онлайн будет 1000-1500 игроков. На каком языке программирования писать пока не знаем, выбор идет между node.js и python. Можете подсказать какой из всех существующих языков лучше подходит для этой задачи (по соотношении простота-производительность).
  • Вопрос задан
  • 5049 просмотров
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 7
index0h
@index0h
PHP, Golang. https://github.com/index0h
Лучше всего подходит язык, на котором у вас есть експертиза.
Но сначала стоит сконцентрироваться на постановке задачи. Жанр и мультиплеер - это конечно круто, но мягко говоря недостаточно, но это как описывать устройство автомобиля по цвету пластика дверной ручки.
1к играков - это тоже довольно абстрактное значение. Какой трафик и как его обрабатывать/хранить/передавать другим игракам - вот это задача.
Ответ написан
@rPman
Пишите на том, что хорошо знаете. Учиться программировать на неизвестном языке сразу в продакшен - это почти наверняка гиблое дело, хотя конечно нет ничего невозможного.

php последние годы стал универсальным, как для запрос-ответных систем так и для приложений непрерывного действия. При этом его скорость работы одна из самых быстрых среди интерпретируемых языков программирования, сравнимо и незначительно быстрее его только javascript (nodejs) но и там с оговорками.

Но прежде чем что то писать, продумайте все же досконально, как у вас будет работать вся система в целом. Например, есть ли необходимость в оперативной синхронизации действий пользователей (шутеры) или хватит лага на все клиенты -> сервер -> все клиенты 'комнаты'.

p.s. Объяснить в простом ответе что и как делать невозможно, Сергей П привел отличную аналогию.
Ответ написан
@strangeraven
Во первых стоит обратить внимание на чем вы делаете клиент игры. Это достаточно важно, так как вам скорее всего придется писать некоторую игровую логику одновременно и для клиента и для сервера. И для дого чтобы не писать её дважды на двух разных языках было бы удобно писать клиент и сервер на одном и том же языке.

Поскольку игровой сервер это достаточно сложная штука с большим количеством кода, я бы советовал выбрать язык со статической типизацией. Так будет гораздо проще жить когда ваш код разрастется.

Поэтому ни node.js, ни python я бы не советовал. Лучше всего использовать что-то из этого: java, kotlin, c#
Ответ написан
Комментировать
Sawich
@Sawich
Просто рандом из интернета. C#/C++/TypeScript
По своему опыту могу сказать, писал эмулятор экшен мморпг на C#, не зная языка, выучил в дороге, сам клиент без исходников и написан на C++/Lua.
Трудности встречались лишь с пониманием асинхронности этого замечательного языка.
Ответ написан
Комментировать
tolmasoft
@tolmasoft
Программист, сервис-инженер
NodeJS, но как отметил автор выше - производительность с оговорками)) Честно говоря 1000-1500 одновременного онлайна это достаточно много и нужно понимать задачу чуть более четко.

Мы для себя сделали выбор вообще в пользу PHP из-за простоты работы и стараемся работать по схеме запрос-ответ идя на хитрости для создания эффекта "онлайна".
Ответ написан
Epsiloncool
@Epsiloncool
Программер, веб-девелопер, гейм-девелопер
Зависит от того - какой тип коннекта. Если это ммо и постоянный коннект, то про PHP можно сразу забыть, он это не умеет. Оставшиеся варианты - Nodejs, Go, Python, C# и всё остальное - надо смотреть в чём больше опыт. Насчёт Python есть сомнения, медленный он достаточно. 1000-1500 не сказать, что много, но нужно смотреть сколько и чего там надо отправлять. Остальные технологии точно потянут.
Ответ написан
@Zailox
Зависит все это ещё и от сервера, если сервер достаточно мощный, и вам хочется написать без усилий - пайтон, если же сервер не сильно мощный, и кроме простоты важна ещё и оптимизация - java/php, например сервера той же geometry dash с помощью php работают.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы