Комментарии 44
Может, такое лучше выкладывать на wiki?
Можно и туда, но сперва необходимо структурировать информацию. А её очень много. Так что лучше я сперва опубликую статьи здесь и «дошлифую» их изложение.
Я первый в нашей уютной городской локалке сделал hl2:dm благодаря SPK & csmania. Как сейчас помню получасовые распаковки gfc-файлов. Старшие классы, бессонные ночи, сборки nullsoft-инсталлятора, классное было время. Помоему без лимитного интернета тогда небыло еще.
Со мной та же история, только я создавал сборник всех эпизодов хл2 в одном удобном инсталяторе и без багов с отключающимся ai, которым грешили популярные пиратки. Свою коллекцию gcfок удалил буквально пару месяцев назад — ведь с текущими скоростями инета их выкачать не проблема, если захочется. Подозреваю что каждый второй любитель пиратской халфы 2 занимался созданием своей сборки и инстала:-) Хорошие были времена.
Вот с этими «получасовыми распаковками» я и боролся в первую очередь — оптимизировал всё, что только можно. В итоге библиотека, работающая с GCF/NCF, стала монструозной, но очень даже шустрой — разницы в работе с простыми файлами и находящимися в кеше практически не было.
Шутки-шутками, а все это надо структурировать, перевести и отправить вместе со своим резюме в Valve.
Однозначно, публикуй!
Всем интересно :)
А я, как бывший модератор раздела Steam World на форуме (раздел обсуждения не крякнутого Стима), могу даже запилить небольшую ретроспективу по жизни csmania.ru :)
Всем интересно :)
А я, как бывший модератор раздела Steam World на форуме (раздел обсуждения не крякнутого Стима), могу даже запилить небольшую ретроспективу по жизни csmania.ru :)
Могу ошибаться, но разве с приходом protobuf не стало проще? С момента существования protobuf'а есть куча инструментов позволяющих восстановить схему данных. Единственная проблема с которой вы могли столкнуться — это отсутствие нормальной (до сих пор, емнип) паблик реализации protobuf'а в Delphi, а не сложность анализа. Хорошо вас помню, спасибо вам за работу и пишите дальше, даже не спрашивайте.
PS. Если не ошибаюсь, то именно с оглядкой на ваши сырки реализовывал в свое время парсинг VDF, чтобы определять папку установки той или иной steam-игры и ряд параметров, типа автоматического обновления.
PS. Если не ошибаюсь, то именно с оглядкой на ваши сырки реализовывал в свое время парсинг VDF, чтобы определять папку установки той или иной steam-игры и ряд параметров, типа автоматического обновления.
По поводу protobuf — основной косяк был в том, что тогда я в основном писал на Delphi, а все библиотеки для данного протокола были только на С++. И тогда я понял — либо изучать С++, либо писать очередной «велосипед» на Delphi — и я выбрал изучение С++. С тех пор я перевёл только серверы данного протокола на плюсы, а потом забросил всё это, поскольку куда больший коллектив к тому времени уже разобрал протокол.
Да, вроде как было дело — давал кому-то исходники и консультировал :)
Да, вроде как было дело — давал кому-то исходники и консультировал :)
Так лучше, просто фраза «что значительно затрудняло анализ сетевых пакетов» дезинформирует читателя, а на деле оказывается проблема была в дельфовом коммунити, которое к тому моменту уже настолько развалилось, что было не в состоянии породить нормальную обертку для protobuf'а. Protobuf очень удобен как для девелоперов, так и для последующего RE, все оказались в плюсе и, как мне кажется, смирились с этим.
А у вас сырки были закрытые, получается? Действительно, забыл, никто из русскоязычных пацанов, занимающихся в то время анализом Steam'а, не открывался на паблик целиком. От силы пара человек и небольшими порциями. На VDF формат поглядывал однозначно с паблик сырков, без консультаций / прошений. Возможно это был уже SteamRE (SteamKit) проект.
А у вас сырки были закрытые, получается? Действительно, забыл, никто из русскоязычных пацанов, занимающихся в то время анализом Steam'а, не открывался на паблик целиком. От силы пара человек и небольшими порциями. На VDF формат поглядывал однозначно с паблик сырков, без консультаций / прошений. Возможно это был уже SteamRE (SteamKit) проект.
На csmania до сих пор одни фашисты сидят?
э?
Ага, и младенцев едят.
PS: andreili, никто ничего бросать не собирается :)
PS: andreili, никто ничего бросать не собирается :)
Ну, форум пока что признаков жизни не подаёт. А мне уже не охота со всем этим сидеть — я окончательно ушел в автоматизацию (контроллеры как на стороне железа, так и софта) и моделирование (пластиковое, а не компьютерное :) ).
Не ожидал увидеть вас на Хабре. =) Не хватает еще $t@t!c_V()1D
Жалко форум временно помер. С серверами что-то? Надеюсь почините.
А за статьи большое спасибо. Продолжай писать.
Жалко форум временно помер. С серверами что-то? Надеюсь почините.
А за статьи большое спасибо. Продолжай писать.
Его здесь я ещё не видел.
А форум — админ говорит, что скоро будет работать. Там проблемы с ДЦ.
А форум — админ говорит, что скоро будет работать. Там проблемы с ДЦ.
Никакие данные не потеряются? (я про форум)
И еще, раз тебе «не охота со всем этим сидеть» — может откроешь нам исходники? Давно тебя просил — но тогда так и не получил к ним доступ, а было очень интересно. Доступа к svn у меня в не было =(
И еще, раз тебе «не охота со всем этим сидеть» — может откроешь нам исходники? Давно тебя просил — но тогда так и не получил к ним доступ, а было очень интересно. Доступа к svn у меня в не было =(
Статья Steam FIles. Часть 1 — GCF/NCF в процессе написания — материала там очень много. И его ещё нужно частично печатать «из кода» и оформить человеческим языком :)
Думаю, к вечеру статья будет, а завтра напишу про оставшиеся форматы…
Думаю, к вечеру статья будет, а завтра напишу про оставшиеся форматы…
Был бы безмерно благодарен за описание протокола общения клиент — сервер. Хотя бы первый этап — приветствие клиента.
Это будет описано после описания форматов файлов — на них многое завязано.
И да — описываться будет старый протокол, вроде бы как уже и не используемый в данное время.
И да — описываться будет старый протокол, вроде бы как уже и не используемый в данное время.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Steam Protocol 2 и Steam Files — Введение