LINUX.ORG.RU

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

 ,


1

3

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

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

★★★
Ответ на: комментарий от entefeed

первый в силу не очень быстрой разработки

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

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

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

это так. но есть ещё вариант С++, где такой проблемы нет, а вы его проигнорировали.

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

есть ещё вариант С++, где такой проблемы нет

Есть. Только что утечки придётся ловить не половину времени, а четверть :) А четверть — думать, как бы не допустить утечек :D

...

Я видел «изнутри» разработку двух MMORPG серверов в равных условиях, одного на Java, другого на Си++. Работали примерно одинакового уровня команды схожей численности. Разница в скорости разработки, отладки, профилирования и надёжности результата была офигенной в пользу Java. Разница в производительности хоть и была не в пользу Java, но невысокой. И легко компенсировалась массой сэкономленного при разработке времени, которое можно было пустить на более эффективную, алгоритмическую оптимизацию :)

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

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

Erlang давно уже не маргинальный язык. Вполне себе мейнстримный.

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

Erlang давно уже не маргинальный язык. Вполне себе мейнстримный.

Он мейнстримовый в крайне узкой нише :)

KRoN73 ★★★★★
()

синглплеер андроид игра

Как я понимаю реализацию мультиплеера в играх, тебе придется переносить всю игровую логику на сервер, а приложение будет лишь отображать то что ему шлет сервер. То есть только java.

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

Ага. Микроконтролёры программируют на нём.

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

прибыли у тебя никакой не будет, инфа соточка

а через месяц ты бросишь это дело

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

целая одна контора? в целом одном API? это уже прогресс

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

бывает иногда,но реже и реже, а что с ним?

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

А четверть — думать, как бы не допустить утечек :D

Что там думать — RAII во все поля, да и всё. Не хочешь сам RAII строить — умные указатели есть.

Только что утечки придётся ловить не половину времени

кстати, а смысл? большие утечки детектируются на раз, а с небольшими утечками (10кб/день, в среднем) можно уже и в продакшен пускать, всё равно джава памяти выжрет больше.

Я видел «изнутри» разработку двух MMORPG серверов в равных условиях, одного на Java, другого на Си++.

вообще ни о чём не говорит. зависит от целей проекта, требований по пингам, и много чего ещё.

которое можно было пустить на более эффективную, алгоритмическую оптимизацию

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

next_time ★★★★★
()

занимаюсь коммерческой разработкой игровых серверов для флеша и андроида
на джаве+netty
спрашивайте свои ответы

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

кстати, а смысл? большие утечки детектируются на раз, а с небольшими утечками (10кб/день, в среднем) можно уже и в продакшен пускать

А если утечка не 10кб/день, а 100Мб/день? У меня народ столько терять умудрялся даже под Java :) Но там хоть из-за JVM можно строго определить, кто же память выжрал. И то несколько десятков человек в течении пары лет не могли отловить всё, пока я этим вопросом плотно не занялся. В Си такое допустить много проще, а отлавливать источники утечек сложнее.

вообще ни о чём не говорит. зависит от целей проекта, требований по пингам

У реалтаймовых MMORPG требования обычно довольно схожие :)

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

Ой, а мужики-то и не знают. Особенно про то, что под алгоритмической оптимизацией обычно имеют в виду не оптимизацию алгоритма, а оптимизацию алгоритмам — заменой алгоритмов на более сложные, но оптимальные.

На лобовой оптимизации кода на практике редко получишь выигрышь выше десятков процентов. А вот заменой алгоритмов иногда можно получить выигрыш в разы/десятки раз.

KRoN73 ★★★★★
()

Посмотри на Racket. Инвестируй некоторое время на его изучение, потом свой сервер напишешь быстро и с удовольствием. Если ты на игорях специализируешься, тогда бери пример с Джона Кармака, который сейчас увлёкся Racket и переписал какой-то свой сервер с C++ на Racket и остался доволен. Не слушай байки про «будущее проекта», и что оно будет только если выбрать не «маргинальный» язык, а пехепе или жаву. Думай больше о «настоящем проекта» и о своём скиле как девелопера, о скорости первоначальной разработки. Если проект будет успешен и будет нужна в кадрах - перепишешь на чём-либо другом. :-)

anonymous
()

Пиши на Java, не прогадаешь.

делать сервер на node.js

Я еще понимаю некоторых хипстеров делающие бекенд для своего сайтика на node.js. Но писать на нем игровый сервер...

недорогой хостинг

Можешь вообще бесплатно поставить, если будешь юзать Java. Вот тебе линки https://console.ng.bluemix.net/pricing/ или https://www.openshift.com/products/pricing Единственно, как выйдешь за free ресурсы, то убегай сразу (ибо цены на облака сейчас неадекватные) и покупай какую-нибудь ВПС на hetzner или еще где.

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

Я еще понимаю некоторых хипстеров делающие бекенд для своего сайтика на node.js. Но писать на нем игровый сервер...

Да то была моя первая попытка, хотел на Qt, на сокетах, да чет Qt не захотел работать и мне было лень разбираться.

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

Не могу понять в каком веке вы живете? Почти все нормальные компании так или иначе используют Erlang, просто не всем об этом говорят. За Erlang - будущее, явно не за Java.

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

Почти все нормальные компании так или иначе используют Erlang

Ну да, я пользуюсь мобильным телефоном, значит, я пользуюсь Erlang :)

Не могу понять в каком веке вы живете?

Тут не век, тут Вселенная другая. В моей Erlang занимает 43-е место популярности по Tiobe и 30-е по числу новых проектов в GitHub. При чём его популярность падает:
2012 — 20 место (6801 новый проект)
2013 — 27 место (2595 новых проектов)
2014 — 30 место (2569 новых проектов)

А у Вас — да, может за ним и будущее :D

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