Как В широком масштабе Многопользовательская RPG Онлайн создается?

Я думаю, что можно сказать да без большого количества hazzle.

  1. один из первого сервера HTTP был статья-http

  2. люди схемы приблизительно , DrScheme потратил замечательное количество времени на него:

  3. www.franz.com работает на их собственном веб-сервере (AllegroServer) и webframework (webactions)

  4. , Если Вы вызываете сомнение, проверяют пакеты языка Common LISP от Edi Weitz. Они обычно работают.

Так да можно сделать "серьезное" веб-программирование с языком Common LISP. Я с моей стороны в настоящее время не уверен для следования за некоторым маршрутом языка Common LISP или Ruby on Rails. Я предпочитаю обоих по чему-либо.NET....

9
задан Robinicks 13 September 2009 в 09:24
поделиться

5 ответов

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

Я предполагаю, что серверы будут работать на Linux, BSD или Solaris почти 99% времени.

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

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

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

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

Как работают «движки», чтобы централизованно обрабатывать сотни конфликтующих игровых событий?

У большинства MMO есть зоны, которые ограничивают это определенное количество людей. Для тех, у кого в одной области есть сотни людей, обычно наблюдается большая задержка. Серверу приходится иметь дело с сотнями отправляемых ему заклинаний, для каждого из которых он должен рассчитывать количество повреждений. Я полагаю, что для большой пятерки MMO есть команды из 10-20 очень умных, математически одаренных разработчиков, работающих над этим ежедневно, и пока нет MMO, которая бы все сделала правильно, большинство из них ломаются после 100 игроков.

- -

Найдите Wowemu (официального сайта нет, и я не не хочу давать ссылку на хитрый сайт). Это основано на ApireCore , который представляет собой симулятор MMO или, по сути, обратную разработку протокола WoW. Это то, что работают на частных серверах WoW. Насколько я помню, Wowemu - это

  • mySQL
  • Python

Однако ApireCore - это C ++.

Бэкэнд для Wowemu удивительно прост (однако я пробовал его в 2005 году) и, вероятно, является полным упрощением схемы базы данных . Это дает вам хорошее представление о том, в чем дело.

Бэкэнд для Wowemu на удивление прост (однако я пробовал его в 2005 году) и, вероятно, полностью упрощает схему базы данных. Это дает вам хорошее представление о том, в чем дело.

Бэкэнд для Wowemu на удивление прост (однако я пробовал его в 2005 году) и, вероятно, полностью упрощает схему базы данных. Это дает вам хорошее представление о том, в чем дело.

3
ответ дан 3 November 2019 в 01:02
поделиться

Поскольку MMO в общем и целом требует ресурсов бизнеса для разработки и развертывания, и в этот момент они являются ценным IP-адресом компании, нет тонны общедоступной информации о реализациях.

Достаточно точно известно, что, поскольку MMO в целом используют собственный клиент и средство 3D-рендеринга, они не используют HTTP, потому что они не являются веб-браузерами. Онлайн-игры будут иметь свои собственные протоколы, построенные на основе TCP / IP или UDP.

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

Что касается большого папы, World of Warcraft, мы можем предположить, что их база данных - это Oracle, потому что в списках вакансий Blizzard часто упоминается опыт Oracle как требование / плюс. Они используют Lua для написания сценариев пользовательского интерфейса. C ++, OpenGL (для Mac) и Direct3D (для ПК) можно считать языками реализации для игровых клиентов, потому что именно на них создаются игры.

Одна компания, которая круто обсуждает их реализацию, - это CCP, создатели Eve онлайн. Они опубликовали ряд презентаций и статей об инфраструктуре Евы, и это особенно интересный случай, потому что они используют Stackless Python для многих реализаций Евы.

http://www.disinterest.org/resource/PyCon2006-StacklessInEve .wmv http://us.pycon.org/2009/conference/schedule/event/91/

Недавно в журнале Game Developer Magazine была опубликована статья об архитектуре Евы:

https: // store. cmpgame. com / product / 3359 / Game-Developer-June% 7B47% 7DJuly-2009-Issue --- Digital-Edition

2
ответ дан 3 November 2019 в 01:02
поделиться

В радиоподкасте Software Engineering был эпизод с Джимом Пурбриком о Second Life , в котором обсуждались серверы, миры, масштабирование и другие внутренние компоненты MMORPG.

1
ответ дан 3 November 2019 в 01:02
поделиться

Многие дороги ведут в Рим, а многие архитектуры ведут к MMORPG.

Вот несколько общих мыслей по пунктам списка:

  • Инфраструктура серверов должна поддерживать возможность горизонтального масштабирования ... добавляйте дополнительные серверы как нагрузка увеличивается. Кстати, это хорошо подходит для облачных вычислений. В настоящее время я использую большое приложение для финансовых услуг, которое необходимо увеличивать и уменьшать в зависимости от времени суток и времени года. Мы используем Amazon AWS для почти мгновенного добавления и удаления виртуальных серверов.
  • MMORPG, с которыми я знаком, вероятно, не используют веб-сервисы для связи (поскольку они не имеют состояния), а скорее пользовательская программа на стороне сервера (например, сервис который прослушивает сообщения TCP и / или UDP).
  • Вероятно, они используют собственный протокол на основе TCP и / или UDP (изучите связь через сокеты).
  • Большинство игр сегментированы на «миры», ограничивая количество игроков, находящихся в одной виртуальной вселенной, количеством игр. события, которые может обработать один сервер (вероятно, с большим количеством процессоров и памяти). Точный механизм обработки событий зависит от требований разработчика игры, но обычно я ожидаю, что входящие события попадут в приоритетную очередь (с приоритетом по времени получения и / или времени отправки и, возможно, по другим критериям типа «насколько это плохо, если мы игнорируем это событие? »).

В целом это очень большая тема. Я бы посоветовал вам заглянуть на Amazon.com, чтобы найти книги по этой теме.

ограничение количества игроков, находящихся в одной виртуальной вселенной, количеством игровых событий, которые один сервер (возможно, с большим количеством процессоров и памяти) может разумно обработать. Точный механизм обработки событий зависит от требований разработчика игры, но обычно я ожидаю, что входящие события попадут в очередь с приоритетом (с приоритетом по времени получения и / или времени отправки и, возможно, по другим критериям типа «насколько это плохо, если мы игнорируем это событие? »).

В целом это очень большая тема. Я бы посоветовал вам заглянуть на Amazon.com, чтобы найти книги по этой теме.

ограничение количества игроков, находящихся в одной виртуальной вселенной, количеством игровых событий, которые один сервер (возможно, с большим количеством процессоров и памяти) может разумно обработать. Точный механизм обработки событий зависит от требований разработчика игры, но обычно я ожидаю, что входящие события попадут в очередь с приоритетом (с приоритетом по времени получения и / или времени отправки и, возможно, по другим критериям типа «насколько это плохо, если мы игнорируем это событие? »).

В целом это очень большая тема. Я предлагаю вам проверить на Amazon.com книги по этой теме.

но обычно я ожидаю, что входящие события попадут в очередь с приоритетом (с приоритетом по времени получения и / или времени отправки и, возможно, по другим критериям типа «насколько плохо, если мы проигнорируем это событие?»).

Это очень большая тема в целом. Я предлагаю вам проверить на Amazon.com книги по этой теме.

но обычно я ожидаю, что входящие события попадут в очередь с приоритетом (с приоритетом по времени получения и / или времени отправки и, возможно, по другим критериям типа «насколько плохо, если мы проигнорируем это событие?»).

Это очень большая тема в целом. Я бы посоветовал вам заглянуть на Amazon.com, чтобы найти книги по этой теме.

5
ответ дан 3 November 2019 в 01:02
поделиться

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

-1
ответ дан 3 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

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