Платформа: ЧН 1.5.10 Разработчик: FreeZone Team Дата выхода: TBD, беты выходят по мере создания.
S.T.A.L.K.E.R. - одна из игр, которые живут на протяжении уже многих лет. Во многом (если не полностью) таким долгожительством игра обязана широкими возможностями по модифицированию и сравнительно большим модмейкерским коммьюнити. Не одна сотня модов увидела свет с момента выхода игры. Кажется, что все ее составляющие уже изучены модмейкерами вдоль и поперек. Однако, в игре осталась одна область, которая за все время существования игры так и соталась недооцененной. Мультиплеер. По сранению с синглплеерной составляющей, мультиплеерная многим могла показаться ущербной. Отсутствие ИИ, множество багов, нестабильность сервера, читеры... Но все равно, когда-то давно, в начале этого десятилетия, сетевая в сталкере, как ни странно, была достаточно популярной. Сервера не стояли пустыми. Но время шло, а игра оставалась прежней. Игрокам надоедало играть в одно и то же, неизменное на протяжении многих лет. В то же время, игра оказалась без поддержки своих разработчиков. Синглплеерная составляющая продолжала держаться на плаву за счет модмейкеров, но в мультиплеерной этого не происходило. Хотя МП сталкера также можно было модифицировать, но немногочисленные попытки создания мультиплеерных модов останавливались на распространении контента. Установить мод (да даже и обычную мультиплеерную карту) можно было только скачав вручную. Установка более-менее серьезного мода одновременно с этим лишила бы игрока возможности заходить на другие сервера (с перспективой получить бан). Для этого бы мод потребовалось снова удалить самостоятельно. Понятно, что такие процедуры мало кому могли показаться приятными. Попытки создания подобных модов были обречены на провал.
Именно на таком безрадостном фоне и произошло появление проекта FreeZone.
FreeZone представляет собой достаточно серьезную переделку движка выделенного сервера игры. Основной (и единственной на данный момент) платформой является ЧН версии 1.5.10. Почему именно ЧН, возникнет вопрос, ведь это самая непопулярная у модмейкеров часть игры? Дело в том, что с точки зрения модифицирования мультиплеера именно эта часть является наилучшей. В ней было исправлено достаточно много багов по сравнению с ТЧ, появилась возможность проверки игроков на читерство. Стабильность самого сервера была также повышена. Но тогда почему не ЗП, ведь там это все есть так же, плюс внесены другие улучшения? Этому есть несколько причин. Во-первых, в ЗП были вырезаны некоторые интересные классы, позволяющие создавать скриптовые режимы игры. Во-вторых, ЗП оказался почти похоронен после закрытия GameSpy. Да, игроки там сейчас есть... Но их меньше, чем в остальных частях.
Итак, с этим разобрались. Но что ждет нас внутри самого FreeZone? В этом плане, проект движется по пути исправления ошибок оригинального движка и расширения его возможностей. Большая их часть направлена на удобство администрирования, однако есть две немаловажные именно для модмейкеров особенности. Во-первых, это автоматическая загрузка карт клиенту. В это может быть сложно поверить, но это так. Игроку достаточно иметь только сам свежеустановленный ЧН версии 1.5.10, не требуется никаких дополнительных надстроек. Он просто присоединяется к серверу - и начинаются скачивание и установка карты. Да, это именно то, что не хватало игре все время ее существования. А во-вторых - как многие уже наверно догадались, это возможность загрузки на клиента модов. Да, на данный момент есть некоторые ограничения в возможности их создания, плюс, некоторые моменты в создании модов для FreeZone специфичны... Но оно есть и оно работает. При этом, каждый сервер может иметь собственный мод. При соединении клиент загрузит (предварительно скачав, если требуется) именно тот мод, который установлен на сервере, к которому игрок присоединяется.
Любой желающий теперь может начать создание своей своей Зоны отчуждения, сделать удовлетворяющий его самого мод и запустить с ним свой сервер. Присоединяйтесь!
Не особо представляю, какие именно скриншоты можно приложить, исходников, разве что Но раз требуется... Покажу админскую панель управления
А вот так выглядит экран игрока в процессе загрузки мода:
Вы можете увидеть описанные возможности FreeZone в работе, установив ЧН 1.5.10 и зайдя на сервер [setitagila.ru]Free. Вы увидите, как сначала будет скачана карта, затем мод... А затем вы попадете на сервер. Да, изменений в моде на данный момент не так много - но это просто демонстрация. Демонстрация того, что подобное в принципе возможно.
Вы можете скачать бета-версию FreeZone по ссылке ниже: https://yadi.sk/d/IpTRnJlOuXSXt При создании мода не забудьте прочитать в прилагаемом описании требования. Без их учета мод может работать некорректно!
Если вдруг что-то идет не так, как планировалось, вылетает, глючит - сохраняйте спокойствие и оставляйте сообщения в теме. От вас требуется описание проблемы, лог вылета, дамп и freezone.dll, с которой произошел вылет.
Сообщение отредактировал Angry - Воскресенье, 25.09.2016, 11:15
Sin, или просто заставить xrGameSpyServer отправлять информацию о сервере даже если он создан с параметром public=0 тоесть созданный в локалке транслируется в мастер лист, а xrGameSpyбраузер заставим получать информацию о серверах даже если мы включили локальный браузер серверов, таким образом мы можем отказаться и от чека ключа и от аккаунта GameSpy в ЗП.
Добавлено (18.10.2017, 22:48) --------------------------------------------- Ещё нужно будет подправить сканер файлов при коннекте, а точнее авторизер в xrNetServer для ЗП.
Добавлено (19.10.2017, 00:06) --------------------------------------------- Ещё нужно будет подправить сканер файлов при коннекте, а точнее авторизер в xrNetServer для ЗП.
блин, времени совсем чето нету, так хочется доделать свой мп мод, а мне как раз надо делать 3 лаб. работы по информатике . Кстати, что забавно среди немногих подпапок проекта именно xrGameSpy собирается, остальные не хотят, вроде делал все по инструкции от шокера. Куча директсх СДК хрени скачал. Кстати, заметил, что там указаны директории для синхронизации при конекте к серверу и честно говоря разрабы могли прописать побольше во избежание правок конфигов юзерами.
Добавлено (19.10.2017, 08:03) --------------------------------------------- Мало кто знает, но кроме скриптования режимов, и довнлоадера, есть система Логин/Пароль.
блин, времени совсем чето нету, так хочется доделать свой мп мод, а мне как раз надо делать 3 лаб. работы по информатике tongue . Кстати, что забавно среди немногих подпапок проекта именно xrGameSpy собирается, остальные не хотят, вроде делал все по инструкции от шокера. Куча директсх СДК хрени скачал. Кстати, заметил, что там указаны директории для синхронизации при конекте к серверу и честно говоря разрабы могли прописать побольше во избежание правок конфигов юзерами.
Вот сорцы, которые собираются без проблем: xray-16-working Они требуют: Visual Studio 2013 community или ultimate Dx sdk august 2010 Dx sdk june 2010 Directplay8 (1 - устанавливаем студию, 2 - устанавиваем дх сдк сначала 09 потом 10) Так же рекомендую посмотреть в инструкции сбора движка в репозиторие.
Добавлено (20.10.2017, 16:29) --------------------------------------------- Sin, Как думаешь возможно добавить свой сервер во все 3 мастерлиста? и где вообще указан адрес и порт мастерлиста?
Единственная печаль в том что мод с измененным движком полностью не скачает free zone
Поддержка загрузки кастомных движков есть. Работу можно увидеть на сервере [gamepolis.ru] GunsMod. При сборке измененного движка сервера из исходников также возможно использование загрузчика. Для этого необходимо добавить в код движка вызов функций, предоставляемых модулем sysmsgs.dll.
ЦитатаJargon ()
создан с параметром public=0
Именно так, кстати, работала FZ ветви 2.х. Запускала сервер как локальный и самостоятельно выполняла работу по общению с мастер-сервером GameSpy. К сожалению, по ряду причин это не самый лучший способ для обхода ключей. Способ, используемый на данный момент, гораздо корректнее.
ЦитатаJargon ()
от аккаунта GameSpy в ЗП
Насколько я помню, пока клиент не зайдет в аккаунт GameSpy, в мастер-лист он не попадет. Вообще, не очень люблю ЗП, даже несмотря на то, что движок там и улучшен. А вообще, никто не мешает загружать игрокам с клиентом ЧН мод на ЗПшном движке, из которого выпилен всякий бред (вроде авторизации).
ЦитатаJargon ()
сканер файлов при коннекте
Эмм... Что имеется в виду под сканером? Если передача контрольной суммы ресурсов клиента при коннекте, то оно лечится в xrCore. Да и лечить на самом деле смысла нет - гораздо проще добиться того, чтобы CRC32 оригинального и модифицированного файлов совпали.
Цитатаfrancyfox ()
могли прописать побольше
Там тонкости есть - все подряд прописывать нельзя, так как в разных локалях кое-что различается... Хотя конфиги вроде все по умолчанию уже чекаются.
ЦитатаJargon ()
система Логин/Пароль
Знают многие, просто никому оно не надо. Зачем создавать сервер, на который никто не сможет зайти? Регаться специально никто не будет, такой уж контингент
ЦитатаJargon ()
Как думаешь возможно добавить свой сервер во все 3 мастерлиста?
Возможно. Только как планируешь реализовывать поддержку кучи версий клиента на одном сервере?
ЦитатаJargon ()
где вообще указан адрес и порт мастерлиста?
В xrGameSpy.dll оно. Например, ЧН стучится на stalkercs.ms16.gamespy.com, порт не помню, можно засниффать Wireshark'ом легко при необходимости.
Эмм... Что имеется в виду под сканером? Если передача контрольной суммы ресурсов клиента при коннекте, то оно лечится в xrCore. Да и лечить на самом деле смысла нет - гораздо проще добиться того, чтобы CRC32 оригинального и модифицированного файлов совпали.
В ЗП появился файл кода в библиотеке xrNetServer.dll под названием NET_AuthCheck.cpp который при коннекте сверяет любые файлы которые указал кодер.
http://aluigi.altervista.org/papers.htm#gshidden авторизация упрощает бан читеров, конечно самый лучший вариант бан по цифровой подписи железа (можно внести русские ники + а также кикать нелюдей со спец.символами в нике). А насчет мастер листа, можно выводить сервера из txt файла (который будет обновляться с облаком). При запуске сервера отправлять данные в облако. Вот те и мастер лист. Но это уже слова КЭПа.
%s.ms%d.gamespy.com // ms - master index \\насчет портов не уверен port 28910 %s.master.gamespy.com //(master server hub?) port 27900 //stalkersc.ms0.gamespy.com //stalkersc.master.gamespy.com .available.gamespy.com //проверка сервиса gamespy на онлайн)) natneg1.gamespy.com //NAT Network Negotiator
Gamespy master server on ports 28900 (enctype 0, 1 and 2) and 28910 (enctype X).
Сообщение отредактировал francyfox - Суббота, 21.10.2017, 20:16
В ЗП появился файл кода в библиотеке xrNetServer.dll под названием NET_AuthCheck.cpp который при коннекте сверяет любые файлы которые указал кодер.
Неа, оно там не так работает. Да и появилось оно не в ЗП - можешь поискать в ЧН, например, функцию gen_auth_code. Суть в том, что оно конфигурит, какие файлы должны включаться в подсчет контрольной суммы. Соответственно, при коннекте клиент (условно) поступает так: сваливает все указанные файлы в кучу, считает для них ОДНУ контрольную сумму по алгоритму CRC32 (auth, хранится в xrCore) и затем передает эти несчастные 4 байта серверу. Сервер сверяет их со своими, и, если не совпали - выкидывает клиента с "различными версиями". Обходится такая "защита" на раз-два и предназначена, скорее, от случайного соединения с клиентом "не той" версии, нежели для защиты от читеров.
Цитатаfrancyfox ()
А насчет мастер листа, можно выводить сервера из txt файла (который будет обновляться с облаком). При запуске сервера отправлять данные в облако. Вот те и мастер лист.
Можно. Так уже делали. Но смысла, опять же, нет (здесь должна быть картинка про троллейбус из буханки хлеба). Лучше заняться чем-то более перспективным.
конечно самый лучший вариант бан по цифровой подписи железа
Сделал бы кто такой в Тенях Чернобвля. Но, думаю, они бы и его обошли (virtual box и т.д).
Сейчас единственное что хотябы как-то помогает в бане против читеров в ТЧ - это бан провайдера игрока, но они и его нашли способ обходить.
Раньше банили по SDKey, но смысл, если 90% игроков играют с пираток, тогда если забанить все пиратские ключи с интернета, игроки вовсе заходить не смогут на сервера. Да и на серверах сейчас, преимущественно, убрана проверка сдкея.
Сообщение отредактировал Hardtmuth - Суббота, 21.10.2017, 21:20
На самом деле, весьма неплохая штука, но при одном условии - если аккаунт представляет ценность для игрока. Либо стоимостью покупки нового, либо статой, либо уровнем прокачки, а лучше - всем сразу. В случае стандартного сталкера, к сожалению, применимо мало, ибо платную регистрацию аккаунтов вводить никто не будет (а если и будет - получит пустой сервер), "прокачка" слетает в начале следующего раунда, а одного лишь подсчета статы игрока будет явно недостаточно. В случае модов а-ля РоХ, в которых с аккаунтом может быть связано нечто вкусное, что игроку не хотелось бы терять (снаряга, скиллы, ...) - да, аккаунты должны работать весьма неплохо при правильном подходе к реализации.
ЦитатаHardtmuth ()
Сделал бы кто такой
Вообще, неплохо бы и самому предлагающему попробовать . Касательно ТЧ - не знаю, но вот в ЧН подобная штука в планах очень даже есть. Пока что как дополнение к автозакачке SACE (он в паре с отключением ключей работает из рук вон плохо, нужно делать псевдо-ключ, который весьма разумно завязать на HWID), а дальше можно подумать и про добавление отдельного API в sysmsgs. Были бы пользователи .
ЦитатаHardtmuth ()
virtual box
Палятся виртуалки эти, сильно палятся. Видим игрока с Боксом - сразу начинаем подозревать, что что-то тут не так и этот товарищ требует повышенного внимания.
Авторизация может и упрощает бан, но они как заходили на сервер, так и будут заходить.
Если сделать все правильно) то вряд ли. К тому же потеря аккаунта для пользователя должна быть большой потерей. Ну или создание твинков должно быть не простым занятием. Поскольку реализация большинства контента для меня муторная в xr, я думал сделать ее в веб версии. К примеру КПК, система квестов, и т.д. Но больше всего хотелось сделать подобие системы Nemesis (рандомного генератора легенд для игроков). После каждой смерти отыгрываешь по RP новую личность. (но есть проблемы в аспектах синхронизации с клиентом, т.е с игрой). But its only sweet dreams.
Сообщение отредактировал francyfox - Понедельник, 23.10.2017, 17:00
Если сделать все правильно) то вряд ли. К тому же потеря аккаунта для пользователя должна быть большой потерей. Ну или создание твинков должно быть не простым занятием.
Это если делать проект с открытым миром, где ты бегаешь лутаешь. Про смерти или бане ты теряешь всё. Тогда да, бан бы по аккаунту было бы отличной идеей.
А что сейчас? В мультиплеере бои как в кс. На сервере у всех 900к рублей на старте. Читеров полно. Их банишь, они опять заходят без остановки. Там нет смысла делать бан по аккаунту и что-то подобное.
Хуже. В КС раунды достаточно быстрые все же. В сталке же народ любит многочасовые бойни с моментальными респами. В итоге через полчаса игры народ получает легенду - и всем новичкам приходится весьма и весьма несладко. Хотя игра и "подтягивает" низкоранговых игроков, но первое время бегаешь просто мясом. Вдобавок ко всему, эти пострелушки просто надоедают, аж за нож хватаешься и начинаешь резать все живое - хоть какое-то разнообразие. А артхант у народа не в почете (хотя, как по мне - одна из наиболее интересных идей). Допилить бы его и создать что-то реально интересное... Были бы только желающие это делать, опять же. Или взять тот же скриптовый режим, и попробовать сварганить на его базе что-то своё. P.S. Перманентый артхант с аккаунтами, кстати, весьма неплохо можно было бы подружить, опять же, при должном подходе. Чем больше таскаешь - тем больше имеешь.