LINUX.ORG.RU

На чем писать сервер для игры

 ,


1

3

У меня есть синглплеер андроид игра(играть против ботов) в которую было бы интересно добавить возможность или онлайн игры на большой карте, или просто друг против друга где сейчас игра с ботом. На чем собственно принято сейчас писать сервер? На роботе где я устроился на испытательный срок используется на клиенте netty, но он на джаве и я не уверен что это то что нужно. Из языков которые знаю это С++, джава. Пробовал делать сервер на node.js. Собирался учить пайтон.

Требований к серверу особых нету, желательно только чтоб можно было найти недорогой хостинг потом куда это все поставить.

★★★

На чем знаешь. Но С++ и джава плохая идея, первый в силу не оче быстрой разработки, второй в силу памяти. Тебе же дешевый хостинг.

Питон/нода. Или Го.

entefeed ☆☆☆
()
Ответ на: комментарий от entefeed

Тебе же дешевый хостинг.

Я даже не знаю стоит ли рисковать, может сначала я вообще попробую намутить игру с другом по блютусу. А если с игры будет прибыль тогда уже можно будет и за нормальный сервер заплатить.

abs ★★★
() автор топика
Ответ на: комментарий от abs

Ну блин, ты теперь так говоришь будто хостинг хрен укупишь. Их как грязи, и дешево так, что любой школьник с завтраков накопить сможет.

И вообще я косо смотрю на людей не имеющих парочку личных серверов. Даже если они простаивают.

entefeed ☆☆☆
()
Ответ на: комментарий от entefeed

И вообще я косо смотрю на людей не имеющих парочку личных серверов

Так у меня тут ноут и комп в одной вай-фай сети. Когда нужно что-то сетевое потестить я просто у себя сервер запускаю.

abs ★★★
() автор топика

На чем собственно принято сейчас писать сервер?

«Принято» здесь очень скользкий термин. Что знают, на том и пишут. Например, сервер OpenSim написан на C# и запускается под моно. Довольно популярен. Но я далеко не уверен, что это лучший выбор. И даже на Qt/С++ (без QtGUI) можно сервера писать. А что: вменяемые строки есть, работа с сетью, с БД, с XML из коробки.

Если ставится цель водружать это на скромную VDSку - я бы написал на Си. Без плюсов.

hobbit ★★★★★
()

вообще, полезный критерий - какие клиент-сервер протоколы поддерживаются

anonymous
()
Ответ на: комментарий от Oxdeadbeef

Что-бы не было дюпа итемов(что-бы итем можно было поднять/использовать только 1 раз а не много-много раз).

Int0l ★★
()

Требований к серверу особых нету, желательно только чтоб можно было найти недорогой хостинг потом куда это все поставить.

VDS/VPS , стоит 5$ в месяц, ставь, что хочешь (в разумных пределах, конечно )

Dred ★★★★★
()
Ответ на: комментарий от Int0l

Для этого и транзакций в бд достаточно.

TDrive ★★★★★
()

А почему вы не хотите использовать уже написанное? Гугель старается, делает все для упрощения разработки, а вы сопротивляетесь.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

? Гугель старается, делает все для упрощения разработки, а вы сопротивляетесь.

Ты про гугл плей сервейс? Так он вроде 3 метра занимает. А у меня игра 4. Это почти 100% прирост размера приложения, стоит ли?

abs ★★★
() автор топика
Ответ на: комментарий от abs

Ты про гугл плей сервейс? Так он вроде 3 метра занимает. А у меня игра 4. Это почти 100% прирост размера приложения, стоит ли?

Если сборка gradle, то можно отрезать лишнее.

Я бы задался вопросом, смогу ли я сделать лучше, чем это сделал гугель? Смогу ли я оттестировать сервис лучше, чем это сделал гугель. Хватит ли у меня сил на саппорт?

andreyu ★★★★★
()
Ответ на: комментарий от abs

Я думаю на своем компе поднять или Kubernetes или Mesos/Marathon чтобы тестить такое. Потом можно легко в облако впрыгнуть

vertexua ★★★★★
()
Ответ на: комментарий от Int0l

есть стореджи типа mnesia с (fault tolerant), dets, ets

anonymous
()
Ответ на: комментарий от entefeed

Рекомендовать python вместо java, аргументируя тем, что он жрёт меньше памяти - по крайней мере, глупость.

AnDoR ★★★★★
()

Java. Точнее, если не страшно экспериментировать и планируется делать всё в одиночку, то я бы посмотрел на Go. Если нужно, чтобы работало, не тормозило и иметь виды на будущую команду, то Java.

Альтернативы озвученные:

C

Половину разработки будешь ловить утечки памяти

Python

Годится как вариант под невысокую нагрузку, под быстрое прототипирование. Но будут проблемы с коммьюнити.

Erlang, Clojure, Haskell

У проекта не будет будущего.

KRoN73 ★★★★★
()
Ответ на: комментарий от Int0l

а что, без транзакционной памяти нельзя решить эту проблему?

- а там есть gc?
- нету, а зачем?
- что бы нельзя было отчистить память два раза.
anonymous
()

Рекомендую посмотреть в сторону Erlang.
Там за каждого клиента может отвечать свой процесс, за игровую комнату тоже. И т. о. вся реализация игры сводится к правильной посылке сообщений от процесса-игрока, к процессу-комнате и обратно с реализацией игровой логики внутри процесса-комнаты.

Deathstalker ★★★★★
()
Ответ на: комментарий от Harald

они их не допускают, в отличии от криворуких дебилов

anonymous
()

желательно только чтоб можно было найти недорогой хостинг потом куда это все поставить

хостинг на java нашел дешевый? вот и пиши на ней

Karapuz ★★★★★
()
Ответ на: комментарий от AnDoR

Далеко не во всех тестах жава работает быстрее, чем питон. Зато почти во всех жрет больше памяти. В некоторых случаях - в разы.

Питон по производительности и прожорливости почти ничем не отличается от другого скриптоговна из ряда пхп/руби/перла. Тебя питонисты избили штоле?

entefeed ☆☆☆
()
Ответ на: комментарий от entefeed

Тебя питонисты избили штоле?

Нет, я просто на нём пишу немножко и не строю иллюзий на тему его супер-возможностей.

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

Я на нем тоже пишу немношк. Какие иллюзии? Жрет меньше, работает медленней, как и все остальное скриптоговно vs java. Скажешь не так?

entefeed ☆☆☆
()

На чем угодно, лишь бы язык знал. Вон, для hedgewars сервер вообще на Haskell написан, и ничего.

cherry-pick
()
Ответ на: комментарий от al_exquemelin

ну можно и так :)

главное, что не боятся

Harald ★★★★★
()
Ответ на: комментарий от KRoN73

Erlang, Clojure, Haskell
У проекта не будет будущего.

Позвольте с вами не согласиться. Будущее проекта сильно зависит от концепции проекта и от маркетинга. А от ЯП зависимость минимальная. Разве что erlang позволяет шире охватить потенциал возможностей использования большого количества соединений. Что идет только плюсом.

Int0l ★★
()
Ответ на: комментарий от anonymous

Придумывать свой механизм транзакций. Или юзать готовый.

Int0l ★★
()
Ответ на: комментарий от Int0l

Будущее проекта сильно зависит от концепции проекта и от маркетинга. А от ЯП зависимость минимальная.

ЯП очень сильно может влиять на маркетинг. Выбор маргинального языка сразу катастрофически сужает потенциальный круг разработчиков.

KRoN73 ★★★★★
()
Ответ на: комментарий от alienclaster

У меня есть синглплеер андроид

java, clojure?

Java

но он на джаве и я не уверен что это то что нужно

Я слабо разбираюсь во всем этом. По этому и прошу тут совета

abs ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.