Хороший язык для разработки игрового сервера? - PullRequest
11 голосов
/ 25 декабря 2008

Мне было просто интересно, какой язык будет хорошим выбором для разработки игрового сервера для поддержки большого (тысячи) пользователей? Я начал заниматься Python, но понял, что это будет слишком много проблем, поскольку он не порождает потоки между ядрами (имеется в виду 8-ядерный сервер = 1-главный сервер). Мне также не очень понравился этот язык (эти «я» не нравились мне).

Я знаю, что C ++ - язык для работы с точки зрения производительности, но я ненавижу это. Я не хочу иметь дело с его небрежным синтаксисом, и мне нравится, когда моя рука держится на управляемых языках. Это подводит меня к C # и Java, но я открыт для других языков. Мне нравится простота .NET, но мне было интересно, если бы, с точки зрения скорости, это было бы хорошо для работы. Имейте в виду, поскольку он будет развернут на сервере Linux, он будет работать на платформе Mono - не уверен, имеет ли это значение. Я знаю, что по синтаксису Java очень похожа на .Net, но мой опыт работы с ней ограничен. Есть ли какие-то рамки для этого или что-то еще, что облегчает разработку?

Пожалуйста, помогите мне и моему привередливому я прийти к решению.

ОБНОВЛЕНИЕ: Я не хотел звучать так придирчиво, и я действительно так не думаю. Единственным языком, который я действительно исключил, был C ++, Python, который мне не нравится из-за проблемы масштабируемости. Я знаю, что существуют способы взаимодействия между процессами, но если у меня 8-ядерный сервер, зачем мне делать 8 процессов? Есть ли более элегантное решение?

Ответы [ 15 ]

0 голосов
/ 29 декабря 2008

В разработке есть довольно крутая платформа, которая отвечает всем вашим потребностям:

Проект Darkstar от Солнца. Поэтому я бы сказал, что Java кажется хорошим языком для разработки игровых серверов:

0 голосов
/ 26 декабря 2008

C ++ и Java довольно медленны по сравнению с C. Язык должен быть инструментом, а не опорой.

0 голосов
/ 25 декабря 2008

Вы можете взглянуть на Stackless Python . Это альтернативный интерпретатор Python, который обеспечивает большую поддержку параллелизма. Серверное и клиентское программное обеспечение EVE Online использует Stackless Python.

Отказ от ответственности: я сам не очень часто использовал Stackless Python, поэтому не могу представить из первых рук информацию о его эффективности.

0 голосов
/ 25 декабря 2008

Каковы ваши цели? Не создание самой игры, но почему вы создаете ее?

Если вы делаете это для изучения нового языка, выберите тот, который кажется вам наиболее интересным (т. Е. Тот, который вы больше всего хотите изучать).

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

Если ваш любимый язык в некоторых отношениях оказывается неадекватным (слишком медленным, недостаточно выразительным и т. Д.), Вы можете переписать проблемные разделы на более подходящем языке, когда возникнут проблемы - и вы не будете знать лучший язык решать конкретные проблемы, пока вы не знаете, какие проблемы в конечном итоге. Даже если выбранный вами язык окажется совершенно непригодным для конечного использования, и все это нужно будет переписать, он даст вам рабочий прототип с проверенной игровой логикой, что значительно облегчит работу с новым языком.

0 голосов
/ 25 декабря 2008

Вы также можете посмотреть на jRuby . Он поставляется с множеством преимуществ Java и множеством преимуществ Ruby в одном аккуратном пакете. У вас будет доступ к огромным библиотекам на обоих языках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...