Введение
Наша цель - демократизировать разработку игр, предоставляя образование и инструменты, необходимые для создания и эксплуатации многопользовательских игр. В этом руководстве мы расскажем о восьми факторах разработки многопользовательских игр, которые вам необходимо учитывать.
8 ключевых факторов разработки многопользовательских игр
Каждое многопользовательское решение имеет компромиссы, которые необходимо учитывать в плане разработки. Чтобы создать многопользовательский опыт, вы должны сначала понять цели игры для каждого фактора.
Сетевые задержки могут варьироваться в зависимости от расстояния между сетями и их производительности на маршрутах передачи. Когда вы играете с другими людьми, вам приходится ждать, пока их устройства отправят информацию, так же как и они ждут, пока вы сделаете то же самое.
Поскольку разные типы игр предъявляют разные требования к скорости прохождения игры, каждая игра должна определить, какой уровень терпимости она имеет к сетевым задержкам. Иногда события синхронизации приходят немного медленнее - это нормально, потому что вы можете скрыть задержку с помощью таких техник, как предсказание и согласование.
Многое зависит от того, чтобы однопользовательские игры хорошо работали и были интересны одному человеку, но как узнать, сколько игроков одновременно может выдержать ваша игра? Технически соединения ограничиваются моделью сети, в которой клиент-сервер способен обрабатывать больше одновременных соединений, чем одноранговая сеть.
Чем больше игроков участвует в игре, тем больше вероятность того, что сетевая активность будет синхронизирована. Как можно снизить уровень детализации объектов, чтобы сохранить частоту кадров, так и можно изменить уровень информации, передаваемой между игроками, чтобы поддержать большее количество игроков.
В играх вполне допустимо, чтобы некоторые части симуляции не синхронизировались между всеми игроками, если эти элементы не имеют существенного значения для исхода игры. Это оптимизация, поскольку устройства игроков и выделенные серверные машины имеют ограниченные ресурсы.
Другие меры, помогающие уменьшить масштаб синхронизированного моделирования, включают в себя: Уменьшение частоты обновления данных на хосте, разделение мира на отдельные обновляемые области, а также подписка игроков на обновления только тех вещей, которые им интересны.
Необходимая точность вашей игры затрагивает все системы, связанные с расчетом мирового государства и его действующих лиц. Если вы хотите получить более точные результаты, то вам потребуется больше ресурсов для обработки этих операций и больший объем памяти.
В многопользовательской игре точность также влияет на нагрузку на сеть и скорость работы сервера.
Не все требует точности, поэтому важно отделить то, что важно для правил игры и ее результата. Для остальных можно использовать приближения более низкой степени, чтобы сэкономить на общей производительности.
При выборе подходящей модели для вашей игры и базы игроков необходимо учитывать множество факторов.
Соло- и инди-разработчики часто тяготеют к более доступным бессерверным решениям, но будьте осторожны, так как блокировка (см. ниже) и возможность увеличения числа мошенников могут ограничить ваш общий потенциал заработка на созданной вами игре.
При использовании услуг по улучшению связи, серверных мощностей и задержек понимание того, что услуги часто взимают плату за потребление на основе пиковых одновременных пользователей, помогает понять, какие варианты лучше выбрать для вашего названия.
Разработка многопользовательских игр может оказаться сложной задачей из-за необходимости решать проблемы, связанные с различными сетевыми моделями, общим количеством игроков, диапазоном задержек и разработкой хорошей синхронизированной шкалы симуляции.
Решения этих проблем существуют, но не все они просты в использовании и понимании, поэтому важно, чтобы студии сначала правильно оценили все, чтобы впоследствии не понадобились специалисты по сетевым технологиям.
Решения, поставляемые с отличной документацией, простыми в освоении примерами и активным сообществом поддержки, значительно облегчают работу по преодолению этих присущих им сложностей.
Когда вы собираете игроков для совместной игры, у некоторых может возникнуть соблазн вмешаться в игру или сетевой трафик, чтобы получить нечестное преимущество, обмануть систему или просто создать хаос и беспорядок.
В казуальных и кооперативных играх не так много стимулов для мошенничества, а вот соревновательные игры часто становятся мишенью для игроков, нарушающих правила. Для защиты репутации вашей игры важно противостоять этим действиям с помощью средств защиты от читов.
Любая информация, хранящаяся на локальной машине клиента, рано или поздно будет использована, поэтому в играх, уязвимых для мошенничества, следует рассмотреть возможность размещения серверной логики на оборудовании, не являющемся клиентом.
Последний фактор, на который следует обратить внимание, - это lock-in, то есть ограничение любых будущих возможностей после принятия решения. Если вы выберете одну сетевую модель, вам будет очень сложно перейти на другие, если в вашей игре появятся более продвинутые возможности (например, управление читом).
Выбор решения, которое легче обновлять, важен для будущего успеха многих игр. Например, одноранговые модели почти всегда требуют полной переработки для перехода к той или иной форме клиент-серверной модели. Однако переход между клиент-серверными вариантами более реален, если вы заранее продумаете дизайн игры.