Сервер для обновления GCF
Здравствуйте. Подскажите - возможно ли организовать что-то вроде сервера для обновления GCF? Это всё нужно для региональной локалки. Нужно клиентскую программу что бы она сканировала GCF и с сервера с уже готовых (или распакованный) GCF обновляла их. В данном случии нужно обновление Team Fortress 2. Делать обновления для каждого файла и потом обновлять их, не вариант.
Про локальное обновление Steam я молчу, т.к. понимаю что это в разы сложнее.
Надеюсь на вашу помощь в этом вопросе.
Про локальное обновление Steam я молчу, т.к. понимаю что это в разы сложнее.
Надеюсь на вашу помощь в этом вопросе.
+1, для локалки (особенно большой) такая вещь очень пригодилась бы...
Я гдето видел что уважаемый ViTYAN делал когда то OpenPatch...
Короче нужна штука, которая патчила бы большие бинарные файлы, при этом их не перезаписывая в новый.
andreil тоже пытался такую сделать.
Вобщем фишка то простая. Оболочку которая следит по хешам за версиями GCF (да не обязательно, можно просто любых файлов) даже я могу сделать, вопрос в активной части (сам патчинг). + надо будет делать сами патч файлы и выкладывать их.
Такой функционал имеет CFToolbox, но консольной версии нет. Я просил как то steamCooker'a на rin'e чтобы он зарелизил API для этого, он вроде согласился, но с тех пор молчок.
Короче нужна штука, которая патчила бы большие бинарные файлы, при этом их не перезаписывая в новый.
andreil тоже пытался такую сделать.
Вобщем фишка то простая. Оболочку которая следит по хешам за версиями GCF (да не обязательно, можно просто любых файлов) даже я могу сделать, вопрос в активной части (сам патчинг). + надо будет делать сами патч файлы и выкладывать их.
Такой функционал имеет CFToolbox, но консольной версии нет. Я просил как то steamCooker'a на rin'e чтобы он зарелизил API для этого, он вроде согласился, но с тех пор молчок.
- Megalan
- Разработчик
- Сообщения: 335
- Зарегистрирован: 02.04.2007
- Благодарил (а): 1 раз
- Поблагодарили: 29 раз
- Контактная информация:
Ну чисто теоритически такое можно написать (я уже пытался, но лень - жестокая штука). Это должно работать по идее так: Клиент генерирует на основе gcf файла header (ака заголовок gcf архива на клиенте) файл и отправляет на сервер, сервер генерирует патч и отсылает обратно клиенту и клиент патчит этим патчем gcf, возможно когда-нибудь в будущем я и напишу такую прогу (если ее не напишут до меня) :crazy:
Зачем мудрить с хедерами...
Я думаю сделать так:
пишется php скрипт, который принимает параметрами 1)Имя файла 2)Текущую юзерскую версию этого файла.
В зависимости от этого, выдаёт XML со ссылками на патчи, клиентская прога их качает и патчит юзерский GCF.
Также можно будет получать список всех gcf на сервере и версии...
Если у юзера нету файла, а он жмёт скачать, качается патч версии 1 - это будет зарезервированная версия для исходного файла, т.е самой первой версии (ну или хз, первой что найдем на момент добавления в архив gcf).
Таким образом, мы сможем в любой момент получить любую версию GCF'a и иметь архив патчей.
При этом, серверное ПО - абсолютно стандартный апач с пыхом.
Другое дело, где хранить всё это добро...
Я думаю сделать так:
пишется php скрипт, который принимает параметрами 1)Имя файла 2)Текущую юзерскую версию этого файла.
В зависимости от этого, выдаёт XML со ссылками на патчи, клиентская прога их качает и патчит юзерский GCF.
Также можно будет получать список всех gcf на сервере и версии...
Если у юзера нету файла, а он жмёт скачать, качается патч версии 1 - это будет зарезервированная версия для исходного файла, т.е самой первой версии (ну или хз, первой что найдем на момент добавления в архив gcf).
Таким образом, мы сможем в любой момент получить любую версию GCF'a и иметь архив патчей.
При этом, серверное ПО - абсолютно стандартный апач с пыхом.
Другое дело, где хранить всё это добро...
- [artemon]
- Капитан
- Сообщения: 342
- Зарегистрирован: 11.08.2008
- Откуда: тут нашлось столько гнилья?
- Контактная информация:
я тож за..
вот ссылки по теме
[PHP]Online_Content_Updater_Av0.1 http://no-steam.ru/forum/viewtopic.php?f=38&t=8635
OpenPtch - ViTYAN http://no-steam.ru/forum/viewtopic.php?f=38&t=4467
Эмулятор сервера Steam ? http://no-steam.ru/forum/viewtopic.php?f=15&t=3021
и вот главная тема - Локальный сервер обновлений стим и стимовских игр http://no-steam.ru/forum/viewtopic.php?f=15&t=3838
вот ссылки по теме
[PHP]Online_Content_Updater_Av0.1 http://no-steam.ru/forum/viewtopic.php?f=38&t=8635
OpenPtch - ViTYAN http://no-steam.ru/forum/viewtopic.php?f=38&t=4467
Эмулятор сервера Steam ? http://no-steam.ru/forum/viewtopic.php?f=15&t=3021
и вот главная тема - Локальный сервер обновлений стим и стимовских игр http://no-steam.ru/forum/viewtopic.php?f=15&t=3838
- Megalan
- Разработчик
- Сообщения: 335
- Зарегистрирован: 02.04.2007
- Благодарил (а): 1 раз
- Поблагодарили: 29 раз
- Контактная информация:
бред, если со стороны клиента (ака человека который не вникает как все это работает) все это еще нормально, то со стороны админа это сумашедствие, по твоей схеме надо искать патчи для gcf абсолютно всех версий, а это извини меня, бред и тупая трата места на харде сервера. Вторая же проблема, как клиент определит какой версии gcf файл?SynchronE писал(а):Зачем мудрить с хедерами...
Я думаю сделать так:
пишется php скрипт, который принимает параметрами 1)Имя файла 2)Текущую юзерскую версию этого файла.
В зависимости от этого, выдаёт XML со ссылками на патчи, клиентская прога их качает и патчит юзерский GCF.
Также можно будет получать список всех gcf на сервере и версии...
Если у юзера нету файла, а он жмёт скачать, качается патч версии 1 - это будет зарезервированная версия для исходного файла, т.е самой первой версии (ну или хз, первой что найдем на момент добавления в архив gcf).
Таким образом, мы сможем в любой момент получить любую версию GCF'a и иметь архив патчей.
При этом, серверное ПО - абсолютно стандартный апач с пыхом.
Другое дело, где хранить всё это добро...
При моем способе на сервере хранятся лишь последние версии gcf файлов, это намного рациональнее чем ты предлагаешь. И не отклоняйтесь от темы, прога нужна для локалки, соответственно обсуждение проблем где хранить gcf не касаются этой темы
Зачем руками искать ? Не надо. Можно базовую версию сделать. Админ заливает то что у него есть - полные GCF любой версии. А дальше только кидает патчи по мере выхода новых версий. К тому же, можно написать админский софт.
Делается так, откопируется старая GCF, в оригинальную накатывается апдейт, из двух генерится патч и патч заливается на сервер. Всё автоматом, хотя и нужно немного больше места на харде админа (только во время создания патчей).
Далее, через какое то время, когда исходный полный гцф на сервере устареет, можно его там же пропатчить до более новой, но не последней версии. Конечно, тем, кто сильно опоздал за обновками придётся его полностью перекачать, но раз проблемы с местом на сервере - то не очень страшно.
Далее, если есть место то можно ещё хранить полностью обновленную GCFку для новообращённых :) т.е чтобы её качать с нуля.
О! Даже можно вообще без админского интерфейса. Надо накодить демона который качает обновы как CFToolbox, и там же генерит патчи - сервак сам будет обновляться.
Другой вопрос, что стимКукер не релизит сырцы CFToolbox...
Я думаю, реал таймово генерить патч для _каждого_ запроса - нириальная нагрузка на сервер.
Делается так, откопируется старая GCF, в оригинальную накатывается апдейт, из двух генерится патч и патч заливается на сервер. Всё автоматом, хотя и нужно немного больше места на харде админа (только во время создания патчей).
Далее, через какое то время, когда исходный полный гцф на сервере устареет, можно его там же пропатчить до более новой, но не последней версии. Конечно, тем, кто сильно опоздал за обновками придётся его полностью перекачать, но раз проблемы с местом на сервере - то не очень страшно.
Далее, если есть место то можно ещё хранить полностью обновленную GCFку для новообращённых :) т.е чтобы её качать с нуля.
О! Даже можно вообще без админского интерфейса. Надо накодить демона который качает обновы как CFToolbox, и там же генерит патчи - сервак сам будет обновляться.
Другой вопрос, что стимКукер не релизит сырцы CFToolbox...
Я думаю, реал таймово генерить патч для _каждого_ запроса - нириальная нагрузка на сервер.
- Megalan
- Разработчик
- Сообщения: 335
- Зарегистрирован: 02.04.2007
- Благодарил (а): 1 раз
- Поблагодарили: 29 раз
- Контактная информация:
Учитывая потребности локальной сети где этим будет пользоватся от силы человек 100 (а то и меньше) вполне реально в реалтайме генерировать патчи, особенно если есть нормальный клиент-серверный код.
Почему это? Вот скажем в регионах это будет полезная вещь для лицушников, у которых нет безлимитки, все таки не у всех есть деньги на анлим :).Megalan писал(а):Учитывая потребности локальной сети где этим будет пользоватся от силы человек 100 (а то и меньше) вполне реально в реалтайме генерировать патчи, особенно если есть нормальный клиент-серверный код.
Анлим то есть, а денег нет.Megalan писал(а):Ну уже во многих местах россии есть анлим по доступной цене так что