В прошлом месяце все геймеры в, не побоюсь этого слова, вселенной Demon’s Souls от японского разработчика From Software были убиты самым жестоким способом из существующих — серверы игры перешли в автономный режим работы спустя девять лет, после первоначального запуска. Игроки больше не могли вторгаться друг к другу или помогать новичкам в прохождении. Но пока недовольные геймеры занимались собой и оплакивали «души», один из самых преданных фанатов подготавливался к возрождению игры.
Спустя всего два дня после того, как сервера закрылись, на сабреддите Demon’s Souls появилось сообщение об установке клиента, который позволил бы всем желающим играть по сети. Клиент разработан пользователем ymgve, который сохраняет все возможности официальных серверов. И это действительно работает! Код ymgve предоставлен в открытом доступе на GitHub для всех желающих.
Один из «бывалых» участников, Yuvi, разработал на основе кода еще более простое решение проблемы. Сейчас, просто установив в вашей консоли PS3 DNS-адреса, вы можете полностью насладиться всем опытом, который игроки получали во время прохождения на официальных онлайн серверах, с бесконечными дуэлями, кооперативом и roleplay составляющей.
Сервера Yuvi отображают количество игроков в том или ином месте, что исключает перенаселение. Очень полезная вещь, учитывая тот факт, что сервера только начали свою работу.
Клиент ymgve работает по технологии «обратной связи», который приводит сервер в работу.
— Проект начался в прошлом году, вскоре, после объявления, что сервера игры закроются, — говорит он. — Спустя день или два, уже было ясно, что это возможно, но до полного функционирования серверов чего-то не хватало, даже за неделю до закрытия. Нужно было отследить трафик, который поступал на сервера в течении дня. Оказалось, что это довольно легко, так как сервера используют протокол HTTP, вместо более защищенного HTTPS. Поэтому получить интересующую информацию было легко.
На этом моменте, ymgve, столкнулся с его первым и главным препятствием…
Все связи, поступающие на сервер с консоли PS3, были зашифрованы. Ключи шифрования в исполняемом файле игры удалось считать с помощью друга, который тоже хорошо знаком с программированием. С трафиком, который исходил и поступал в обоих направлениях, он написал proxy-программу, которая отсылала трафик на реальный сервер и принимала на себя весь входящий. Потом он создал голый сервер, который только отсылал замещенные с сервера данные, что в итоге эволюционировало в настоящий игровой сервер.
Когда ymgve показал сервер к миру, реакция игроков не заставила себя долго ждать. Пост на сабреддите Demon’s Souls быстро оказался в топе и закрепился в самом верху. Однако, как он и ожидал, населенность серверов оказалась довольно низкой и до сих пор не превышала 31 игрока онлайн одновременно. Для него, тем не менее, это больше делалось для истории, чем для будоражущих бесконечных схваток между игроками и большим онлайном.
— Я вообще не любитель мультиплеера, лично для меня более важно видеть населенный сообщениями и пятнами крови мир. Это именно те элементы, что делают игры из серии Souls такими уникальными, — рассказал ymgve.