Как проверить, может ли игровой сервер обрабатывать клиентов перед выпуском игры?

13

Мы разрабатываем игру для iOS с поддержкой многопользовательской игры. пока что все кажется очень хорошим, но теперь мы хотим убедиться, сможет ли сервер обрабатывать 10000 клиентов или нет. Любая идея, как я могу убедиться, что сервер выживет так много трафика?

Ali1S232
источник

Ответы:

15

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

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

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

  • Отправить случайный текст чата на случайной основе
  • Перемещение в случайных направлениях по всему миру (но, как правило, ближе к крупным городам)
  • Случайно выбирайте стрелять из оружия в случайных направлениях, когда рядом находятся другие игроки
  • Покупайте / продавайте случайные товары у торговцев и время от времени выбрасывайте предметы по всему миру.
  • Случайно зажигать вещи в огне (или вызывать другие формы локального разрушения)
  • Расстраивайте полчища диких животных и бегите в оживленный город, за которым они гоняются, а затем случайным образом решают, выходить или нет (если выбран выход из системы, возможно, эти дикие животные начнут атаковать других в городе?)
  • Лечить раненых игроков
  • Выделите случайно выбранные магические заклинания в людных местах
  • Готовить сырые продукты, перерабатывать сырые пиломатериалы и другие материалы (например, из горных работ) и т.д.
  • ... другие простые задачи, которые ваши игроки могут выполнять регулярно

Если вы рассчитываете, что у вас будет 9000 игроков одновременно, попробуйте проверить это по крайней мере в 3 раза больше этого числа, чтобы вы знали, как ваши серверы могут справиться с нагрузкой в ​​27000 симулированных занятых игроков (многие игроки склонны простаивать, особенно социальные типы).

Кроме того ( и это очень важно ), если вы делаете это, пожалуйста, пожалуйста, ПОЖАЛУЙСТА, войдите в систему с обычным персонажем и запишите видео всех этих компьютеризированных плееров, делающих глупые вещи, и поделитесь этим видео с нами здесь, чтобы мы могли получить хороший смеяться (я думаю, что « пьяный сарайный танец » может быть хорошим названием для этого фильма, если вы можете найти только правильный сценарий в игре)! ;-D

Рэндольф Ричардсон
источник
2
Большое спасибо за ваш ответ. Думаю, нам нужно протестировать эти симулированные плееры и подумать, что в конечном итоге мы будем использовать один из облачных сервисов для запуска клиентов. просто как sidenote, это многопользовательская игра, но игроки могут только перемещаться по миру и охотиться друг на друга, поэтому почти ни одна из упомянутых вами задач не будет реализована в наших типовых клиентах! Я надеюсь, что следующий человек с таким же вопросом собирается выпустить игру-симулятор жизни, чтобы проверить все эти вещи!
Ali1S232
Ну, просто проверьте, что относится к вашей игре (пожалуйста!). Я ничего не знал об особенностях вашей игры, поэтому я попытался включить множество возможностей в надежде, что она будет раскрыта.
Рэндольф Ричардсон
Некоторые игры также начинаются с раннего предварительного выпуска бета-версии, но это может быть трудным решением, потому что есть неприятный фактор, когда игрок может обнаружить, что ему не нравится игра на стадии бета-тестирования, и затем никогда не вернется, чтобы попробовать ее. снова (хотя проблемы, с которыми они столкнулись, были решены).
Рэндольф Ричардсон
2
-1, нереальный ответ. Женские разработчики игр не существуют. (Jks, +1, договорились о визуальном обмене результатами теста).
замедленная
3
Я добавлю, что я сделал именно это для MMO на портативной консоли; Имитированные игроки были лучшими в истории, когда тестировали, как серверы справляются со стрессом. Мы также провели закрытое бета-тестирование (ограничено до 500 человек), и я использовал сгенерированную статистику поведения бета-тестеров, чтобы настроить симулированных игроков так, чтобы они вели себя так же, как реальные игроки, насколько я мог управлять. После того, как бета была закончена, я освободил 40 000 симулированных игроков, чтобы разрушить серверы. Много хаоса!
Тревор Пауэлл
0

Это ответ на старый вопрос, надеюсь, он будет полезен тем, кто попадает сюда с помощью поисковой системы. Netgend имеет платформу для тестирования производительности, которая может эмулировать 50 000 VUsers и может выполнять все гибкие эмуляции клиента.

Смотрите блоги , особенно

  • Сеть стала проще
  • извлекает поля из ответов сервера
  • Тестирование производительности с двоичными данными

Обратите внимание, что обработка сообщений не ограничивается сообщениями http, она распространяется на все сообщения.

Надеюсь, это полезно.

packetie
источник