Как я могу имитировать плохое интернет-соединение с высокой задержкой, низкой пропускной способностью, дрожанием и случайной потерей пакетов в локальной среде?
Если вы работаете в Windows, вы можете попробовать SoftPerfect Connection Emulator . По сути, это драйвер, который внедряется между вашим приложением и сетевым уровнем (аналогично Wireshark / WinPCAP) для выбранного сетевого адаптера и может имитировать ограниченную пропускную способность, задержку, потерю пакетов и другие вещи. Пользовательский интерфейс прост и понятен.
Это коммерческий продукт, но пробная версия позволяет вам делать 30-секундные всплески "помех", которые должны быть достаточно хороши, чтобы вы могли судить, выполняет ли этот инструмент то, что вам нужно.
Другой кросс-платформенный вариант - DummyNet , который ведет себя аналогичным образом (через ipfw), но немного менее прост в использовании.
Я хотел бы проверить, как работает пользовательский опыт для кого-то, кто не имеет такого хорошего соединения с сервером.
Я думаю, что эту часть вопроса можно было бы переформулировать как «как мне справиться с задержкой в сети в моем приложении?» Одним из наиболее часто используемых и эффективных методов является Dead Reckoning . Связанная статья объясняет это лучше, чем я, но основная идея состоит в том, что ваши клиенты как бы «симулируют», где должна быть каждая сущность и что она должна делать с помощью алгоритма. Всякий раз, когда объект отклоняется от этого алгоритма (т. Е. Ввод игрока, событие на стороне сервера и т. Д.), Он отправляет обновление каждому клиенту.