Хотели поиграть ... всего-то ..., Command & Conquer: Tiberium Wars, проблемы с сетью |
Здравствуйте, гость ( Вход | Регистрация )
Хотели поиграть ... всего-то ..., Command & Conquer: Tiberium Wars, проблемы с сетью |
1.2.2011, 6:17
Сообщение
#1
|
||||||
Администратор Группа: Главные администраторы Сообщений: 14349 Регистрация: 12.10.2007 Из: Twilight Zone Пользователь №: 1 |
Собственно здесь я расскажу о досадном баге Command & Conquer: Tiberium Wars ... а именно игре в нее по локальной сети. Предыстория простая, решил я в кои-то веки поиграть со знакомыми в какую-нибудь стратегию ... выбор пал на Command & Conquer: Tiberium Wars. О том как мы два дня и две ночи траха@#% ... нет, занимались сексом с настройками брэндмауров и прочего - я рассказывать пожалуй не буду. Нет, в теории-то все просто, у обоих Windows 7, для игры через интернет и эмуляции локальной сети использовался Hamachi ... настраивал все я сам (правда первоначально объяснял как и что надо настроить в аське, но когда поставили TeamViewer процесс пошел намного быстрее). Ну так вот, локальную сеть между двумя ПК мы все-таки организовали, пинги идут, сетевое окружение работает, брэндмауэры у всех настроены правильно. Профили в них тоже, C&C внесено в разрешающие правила для любых протоколов и любых профилей. Не работает ... хоть ты тресни ... в списке игроков друг-друга не видим. Интерфейс в настройках игры выбран правильно ... т.е. IP Hamachi ... не видит и все тут ... Вообщем сегодня мы просидели с этим до часу, я перекрутил все что можно и все что нельзя ... Ладно, знакомые легли спать. А меня попросту взбесило ... я системный администратор "со стажем", построивший не одну сеть, объединивший VPN'ом не один десяток офисов и не могу запустить какую-то сра@#%ную игрушку по сети ) Вообщем решил посмотреть без Hamachi ... в своей собственной сети 192.168.1.0/24 ... скопировал игру на другую машину. Запускаю. Б@#%ть ... не видятся ))) Ну думаю ппц ... А у меня же стоят всякие снифферы, т.е. библиотека WinPCAP, VMWare, т.е. ко всему этому + еще VMWare Bridge протокол. Известен баг, что он глотает мультикаст пакеты ... т.е. если включен хоть один виртуальный адаптер, то мультикаст до хостовой машины не дойдет (это я выяснил еще давно, когда в Домолинке появилось IPTV) ... поотключал все виртуальные адаптеры, удалил Winpcap ... все равно ... две машины, одна с IP 192.168.1.2, другая с 192.168.1.3 не видят друг друга в игре. Подозрение было такое, что игра для своей работы в локальной сети использует броадкаст и что либо из-за winpcap'а, либо из-за драйверов vmware эти пакеты попросту не проходят, а глотаются где-то в недрах системы. Вообщем пока разбирался, почти отчаялся ... Ну как так ... я понимаю что через Hamachi могло не заработать, но в обычной одноранговой сети из двух ПК ... мистика. Стал выяснять как работает игра ... Использовались две утилиты ... Curports и TCPView ...
Network_Tools.7z ( 167,83 килобайт ) Кол-во скачиваний: 993 Ну так вот ... Выясняю что игра "слушает", т.е. принимает входящие на 8086 UDP порту (!) ... при этом ей абсолютно наплевать, какой порт мы указываем в ее настройках ... даже если мы укажем там 9999, UDP сокет открывается все равно на 8086. А теперь главная фишка )))) Итак, у нас несколько интерфейсов ... 192.168.1.3 и интерфейс Hamachi ... 5.x.x.x ... в настройках игры выбран интерфейс 192.168.1.3 ... заходим в игре Сеть -> Локальная сеть ... (на другой машине игра уже запущена и в Сеть -> Локальная сеть уже зашли) ... игроков не видно. Alt-Tab'имся ... смотрим в CurPorts ... И тихо ох@#$ем ... игра открыла UDP 8086 на интерфейсе 5.222.202.180 (!!!), т.е. на интерфейсе Hamachi. Вырубаем сетевой адаптер с Hamachi ... игра все равно продолжает слушать 5.222.202.180 ) Ей плевать какие в ней самой настройки стоят (!) ... Выходим в игре из локальной сети и заходим по новой ... О чудо б...ть ... ) Игроки-то появляются ... ))) Смотрим в CurrPorts: Бинго блин ... 192.168.1.3 ))) Игроки видятся ... можно создать и вступить в игру ) А прикол в том, что через Hamachi со знакомыми мы не могли соединиться, т.к. игры пытались ломиться совершенно не в те интерфейсы ... либо у меня C&C слушала на 192.168.1.3 вместо Hamachi, либо у них вместо Hamachi игра прибиндилась к LAN интерфейсу ) Ну не бред? ) А теперь правильная инструкция как играть. 1. Принимаем во внимание то, что игра проявляет сетевую активность только после того как в ней зайти в Сеть -> Локальная сеть и так и остается на том интерфейсе к которому она прибиндилась (привязалась). 2. В главном меню игры заходим в Меню настройки -> Настройка -> Сеть и выбираем там правильный интерфейс. Т.е. тот на котором мы будем играть. 3. Отключаем нахер все сетевые адаптеры кроме нужного (!) ... т.е. заходим в Центр управления сетями и общим доступом, нажимаем изменить параметры адаптера и выключаем (!) там все адаптеры кроме нужного нам для игры. Например это будет Hamachi. Понятно что если поотключать вообще все, то Hamachi работать не будет, т.к. не будет интернета ... но нам важно чтобы игра просто привязалась к этому адаптеру. Поэтому отключаем все интерфейсы (подключения по локальной сети, подключения к интернету, вообще ВСЕ), кроме Hamachi. Как мы увидим, если мы хоть раз логинились в него интерфейс все равно остается подключенным (как бы), по-крайней мере он имеет свой IP: А этого для игры достаточно (скриншоты сделаны когда все остальное отключено). Ну так вот. Как только у нас остался один Hamachi, заходим в игре в Сеть -> Локальная сеть, чтобы она "зацепилась" за интерфейс. 4. Alt-Tab'имся и проверяем по Currports за какой интерфейс зацепилась игра. Если мы там видим нечто вроде: Значит все Ок. Включаем интернет, включаем все интерфейсы. Подсоединяемся к сети Hamachi ... Играем )))) з.ы. Интересно, разработчики из Electronic Arts никогда не задумывались, что на одном компьютере может быть несколько сетевых интерфейсов, а не один? Неужели так трудно было корректно написать функцию привязки к нужному интерфейсу, причем чтобы игра это делала именно так, как прописано у нее в настройках, а не как ей вздумается самой. Вообщем смысл этой статьи в следующем ... для тех кто хочет играть в C&C TW через Hamachi обязательно нужно проверять за какой именно интерфейс зацепилась игра (о том что брэндмауэр должен быть корректно настроен, все компьютеры в локальной сети или виртуальной локальной сети Hamachi должны пинговаться / быть с "зелеными лампочками" в интерфейсе Hamachi и т.п. - я рассказывать не буду, подразумевается что все это вы настроили самостоятельно), а также принимать во внимание то, что игра биндится к интерфейсу ровно в тот момент когда мы нажали Сеть -> Локальная сеть (на настройки которые в игре, как я уже говорил игра внимания не обращает !!!), поэтому перед тем как зайти в сетевую игру отключите все сетевые адаптеры и интерфейсы, кроме того, через который вы собираетесь играть (!!!), зайдите в сетевую игру (ее можно не создавать даже, просто зайти в меню Сеть -> Локальная сеть) ... после чего утилитой Currports проверить на том ли она интерфейсе на котором нужно и только после этого включить все остальные сетевые адаптеры (!) ... из режима игры по локальной сети не выходить, иначе привязка к нужному адаптеру опять может соскочить. з.з.ы. Вот такие пироги ... 5:39 утра ... я счастливый ложусь спать ... еще одна маленькая, но зато решенная проблема ) Вот только спать осталось всего ничего ) з.з.з.ы. Расширенное управление файрволлом в Win7 или как оно там называется "Брандмауэр Windows в режиме повышенной безопасности" можно включить нажав Пуск -> Выполнить (или Win+R) -> fw.msc -> [OK]. з.з.з.з.ы. FAQ по Hamachi. VPN. Эмуляция локальной сети. Ключевые слова: Command & Conquer: Tiberium Wars проблема с игрой по сети, C&C 3 игра через Hamachi, C&C 3 игроки не видят друг-друга в сети, Tiberium Wars сетевая игра проблемы. -------------------- |
|||||
|
||||||
27.2.2011, 1:53
Сообщение
#2
|
|
Администратор Группа: Главные администраторы Сообщений: 14349 Регистрация: 12.10.2007 Из: Twilight Zone Пользователь №: 1 |
Ну и вот кстати еще один пост по аналогичной проблеме ... правда человек не настолько "ковырялся" насколько я ... ) Но пришел вообщем-то тоже к верным выводам ... на момент выбора в меню сетевой игры - игра должна "зацепиться" за правильный интерфейс. Иначе счастья не будет.
(с) http://fistashek.narod.ru/TW.html Цитата Решение проблемы игры по локальной сети, когда оппоненты не видят друг друга или частично не видят, выдаётся сообщение "время ожидания истекло" и т.п. при условии, что сеть работает исправно. Очень много здаётся вопросов в инете по этому поводу, был найден только один вразумительный совет, следуя которому удалось решить эту проблему при попытке игры в домашней сети через роутер. С начала, естественно были перепробованы другие методы решения: отключение файрволов/брандмауэров/антивирусов, попытка играть через ЛАНгейм и т.п. программы, попытка прописания портов в настройках самой игры. Ничего не помогало. И так... Всё оказалось достаточно просто, хотя и не очевидно. На компьютере должен быть включен только один сетевой нтерфейс в данный момент, т.к. игра не понимает какой именно IP адрес и порт принадлежит ей в данный момент и если у вас включена вторая сетевая карта, 1394, WI-FI одновременно - игра не поймёт, через какое именно соединение ей работать т.к. очевидно это указать ей нельзя. Не помогает даже подтверждение вроде бы правильного IP-адреса в лан-настройках игры. Т.е. вручную отключив всё сетевые устройства, через которые не будет происходить соединение касающееся игры мы получаем положительный результат - всё работает!!! У меня получилось. До этого три дня мучился...
-------------------- |
|
|
10.4.2012, 16:57
Сообщение
#3
|
|
Newbie Группа: Пользователи Сообщений: 1 Регистрация: 10.4.2012 Пользователь №: 1066 |
С сожалением констатирую, что всё сказанное выше в равной мере относится и к Command & Conquer 3: Kane's Wrath (with patch v. 1.02). Могу добавить, что при наличии в системе нескольких включенных сетевых интерфейсов, игруха садится на тот, который имеет меньший IP. Например, при наличии в системе интерфейсов 172.16.0.2 и 192.168.1.3, выбор игры падёт на первый (172.16.0.2); если я второму присвою IP 10.0.0.2, то тогда игра "сядет" уже на него. При этом ID, имя, описание интерфейса значения не имеют.
Как вариант решения: сети, через которую игра должна обмениваться данными, присваеваем IP заведомо меньший, чем у всех остальных (и никакой волокиты с отключением/включением интерфейсов в момент старта сетевой игры). |
|
|
Текстовая версия | Сейчас: 30.1.2025, 9:49 | |