![Hero background image](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fbce5183c75b0929ad2ef84fcbc7bce482def09c3-1920x1080.png&w=3840&q=100)
Введение
Наша цель - демократизировать разработку игр, предоставляя образование и инструменты, необходимые для создания и эксплуатации многопользовательских игр. В этом руководстве мы расскажем о восьми факторах разработки многопользовательских игр, которые вам необходимо учитывать.
8 ключевых факторов разработки многопользовательских игр
Каждое многопользовательское решение имеет компромиссы, которые необходимо учитывать в плане разработки. Чтобы создать многопользовательский опыт, вы должны сначала понять цели игры для каждого фактора.
![Таймер](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fb0a7ca1b7450e5866f4fce6a99e90031005f3c89-810x455.jpg&w=3840&q=75)
Сетевые задержки могут варьироваться в зависимости от расстояния между сетями и их производительности на маршрутах передачи. Когда вы играете с другими людьми, вам приходится ждать, пока их устройства отправят информацию, так же как и они ждут, пока вы сделаете то же самое.
Поскольку разные типы игр предъявляют разные требования к скорости прохождения игры, каждая игра должна определить, какой уровень терпимости она имеет к сетевым задержкам. Иногда события синхронизации приходят немного медленнее - это нормально, потому что вы можете скрыть задержку с помощью таких техник, как предсказание и согласование.
![Значок с тенденцией к росту](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fff4b9f1771389c61978df7291fa132c239206a7d-810x455.jpg&w=3840&q=75)
Многое зависит от того, чтобы однопользовательские игры хорошо работали и были интересны одному человеку, но как узнать, сколько игроков одновременно может выдержать ваша игра? Технически соединения ограничиваются моделью сети, в которой клиент-сервер способен обрабатывать больше одновременных соединений, чем одноранговая сеть.
Чем больше игроков участвует в игре, тем больше вероятность того, что сетевая активность будет синхронизирована. Как можно снизить уровень детализации объектов, чтобы сохранить частоту кадров, так и можно изменить уровень информации, передаваемой между игроками, чтобы поддержать большее количество игроков.
![Значок синхронизации](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fb26343a8a21e17e8d658b8223d383ae4307ee554-810x455.jpg&w=3840&q=75)
В играх вполне допустимо, чтобы некоторые части симуляции не синхронизировались между всеми игроками, если эти элементы не имеют существенного значения для исхода игры. Это оптимизация, поскольку устройства игроков и выделенные серверные машины имеют ограниченные ресурсы.
Другие меры, помогающие уменьшить масштаб синхронизированного моделирования, включают в себя: Уменьшение частоты обновления данных на хосте, разделение мира на отдельные обновляемые области, а также подписка игроков на обновления только тех вещей, которые им интересны.
![Значок точности](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Ffd3cbe3991a14b208764cf3638ce6b9a9e86aac5-810x455.jpg&w=3840&q=75)
Необходимая точность вашей игры затрагивает все системы, связанные с расчетом мирового государства и его действующих лиц. Если вы хотите получить более точные результаты, то вам потребуется больше ресурсов для обработки этих операций и больший объем памяти.
В многопользовательской игре точность также влияет на нагрузку на сеть и скорость работы сервера.
Не все требует точности, поэтому важно отделить то, что важно для правил игры и ее результата. Для остальных можно использовать приближения более низкой степени, чтобы сэкономить на общей производительности.
![Значок денег](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fe24d81f9771c01f35b047cb97e447c96d3273c33-810x455.jpg&w=3840&q=75)
При выборе подходящей модели для вашей игры и базы игроков необходимо учитывать множество факторов.
Соло- и инди-разработчики часто тяготеют к более доступным бессерверным решениям, но будьте осторожны, так как блокировка (см. ниже) и возможность увеличения числа мошенников могут ограничить ваш общий потенциал заработка на созданной вами игре.
При использовании услуг по улучшению связи, серверных мощностей и задержек понимание того, что услуги часто взимают плату за потребление на основе пиковых одновременных пользователей, помогает понять, какие варианты лучше выбрать для вашего названия.
![Значок сложной сети](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F38893a37714d51b70597d8a7d487b88bd8f8f1e6-810x455.jpg&w=3840&q=75)
Разработка многопользовательских игр может оказаться сложной задачей из-за необходимости решать проблемы, связанные с различными сетевыми моделями, общим количеством игроков, диапазоном задержек и разработкой хорошей синхронизированной шкалы симуляции.
Решения этих проблем существуют, но не все они просты в использовании и понимании, поэтому важно, чтобы студии сначала правильно оценили все, чтобы впоследствии не понадобились специалисты по сетевым технологиям.
Решения, поставляемые с отличной документацией, простыми в освоении примерами и активным сообществом поддержки, значительно облегчают работу по преодолению этих присущих им сложностей.
![Значок блокировки](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F5e92bd4c099fd662ad55f1b6a52185b64292083f-810x455.jpg&w=3840&q=75)
Когда вы собираете игроков для совместной игры, у некоторых может возникнуть соблазн вмешаться в игру или сетевой трафик, чтобы получить нечестное преимущество, обмануть систему или просто создать хаос и беспорядок.
В казуальных и кооперативных играх не так много стимулов для мошенничества, а вот соревновательные игры часто становятся мишенью для игроков, нарушающих правила. Для защиты репутации вашей игры важно противостоять этим действиям с помощью средств защиты от читов.
Любая информация, хранящаяся на локальной машине клиента, рано или поздно будет использована, поэтому в играх, уязвимых для мошенничества, следует рассмотреть возможность размещения серверной логики на оборудовании, не являющемся клиентом.
![Знак "Тупик](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F991bd49591feb0c7fa8d2a2017beb0be3c7f2ccf-810x455.jpg&w=3840&q=75)
Последний фактор, на который следует обратить внимание, - это lock-in, то есть ограничение любых будущих возможностей после принятия решения. Если вы выберете одну сетевую модель, вам будет очень сложно перейти на другие, если в вашей игре появятся более продвинутые возможности (например, управление читом).
Выбор решения, которое легче обновлять, важен для будущего успеха многих игр. Например, одноранговые модели почти всегда требуют полной переработки для перехода к той или иной форме клиент-серверной модели. Однако переход между клиент-серверными вариантами более реален, если вы заранее продумаете дизайн игры.