Разработка метода передачи gcf

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#1 Сообщение 01.06.2010, 14:09

Всем привет :)

Долгое время меня тут небыло...) Однако я вернулся и опять предлагаю потеоритезировать %) Типа мозговой штурм
Я собираюсь продолжить разработку системы доставки файлов gcf и ncf на пиратки и запуска игр из них; как всегда у меня есть очень много идей, но ещё неизвестно какая из них лучше...
В этом треде предлагаю обсудить способы передачи контента и клиент-сервеные отношения

Вообщем способ будет основан на p2p с одним сервером-координатором

Задача:
1. Распространять gcf файлы
1.1 GCF файл - штука очень изменчивая, помимо того что нужно накатывать апдейты, нужно ещё и учесть что при дефрагментации его через стим изменяется сам файл - то-есть передавать gcf через простое копирование по p2p протоколу не получиться... Кроме того пока (как я понял) нет возможности создавать gcf файл с нуля, то-есть придётся использовать мини gcf + заполнение их файлами

1.2 Если подумать - то можно отказаться от gcf, так ведь? Просто передавать распакованные файлы и координитовать на сервере обновлённость CRC всех файлов (распак) для всех игр, а клиентов заставлять качать их оттуда, где они есть (а нужным CRC) по p2p

2. Обновлять gcf файлы
2.1 Пока не рассматириваем

Из первого пункта варианты (кратко): мучиться с GCF или следить за распаками

PS: если кто мне расскажет как маунтиться gcf в стиме и реве, я, может, ещё чёнить придумаю

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#2 Сообщение 01.06.2010, 14:13

нужно ещё и учесть что при дефрагментации его через стим изменяется сам файл - то-есть передавать gcf через простое копирование по p2p протоколу не получиться
Можно объяснить этот момент подробнее? Я всегда был уверен, что при дефрагментации файл не меняется.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#3 Сообщение 01.06.2010, 14:17

NiGHt-LEshiY
Дефрагментация - это оптимизация файловой системы.
GCF файл представляет собой инкапсулированнуя файловую систему, которую можно дефрагментировать внутри неё самой. При этом, хотя пути файлов и не меняются, они переносятся чтобы увеличить оптимизированность... Соответственно gcf меняется :)

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#4 Сообщение 01.06.2010, 14:21

MOZGIII
Ах, точно. GCF же у нас роль файловой системы играет...
Мне кажется, что пункт 1.2 довольно хорош. Особенно, учитывая сжимаемость контента.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
chocolate_chary
Нович0к
Нович0к
Сообщения: 15
Зарегистрирован: 08.05.2010

#5 Сообщение 01.06.2010, 14:33

скачай игру с торрента, gcf sucks

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#6 Сообщение 01.06.2010, 14:34

chocolate_chary
Ты, видимо, совсем не понял смысла темы. Предложи что-нибудь дельное по теме или прекращай наведываться в серьезные разделы.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#7 Сообщение 01.06.2010, 14:52

MOZGIII
NiGHt-LEshiY
А почему бы за основу не взять CFT .NET от erix920? По-моему, вы, ребята, велосипед изобретаете, не?

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#8 Сообщение 01.06.2010, 16:03

Ну можно взять, наверное, и превратить его в p2p мутанта :)
Тока всё ровно не понятно - как заставить gcf работать через p2p

Я думаю нажно писать модуль, кторый будет иметь функцию, (скажем GetFileFromSomewhere(GcfName+'.gcf/'+FullFileName); ) , которя бы сама искала этот файл в p2p сети + чтобы модуль сам файлы другим клиентам тоже предоставлял (из тех gcf что у него на есть у данного модуля)

А сервер - координитор будет иметь список клиентов с айпи-адресами и портами, чтобы не мучаться + возможно будет выполнять функцию поиска по ним (и ещё возможно список а-ля cdr)

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#9 Сообщение 01.06.2010, 16:35

MOZGIII
Так может и работать с GCF не как с файлом, который нужно патчить или не патчить, а как с файловой системой. Rain.dll может узнавать чексуммы файлов + импортировать файлы в GCF. Часть её функций выпрошена мной и некоторыми другими разработчиками у SteamCooker-a, и, собственно, некоторые из них используются в SiD Unpacker-e. Если что, можно так же подключить и HLLib.dll - глядишь, может и она пригодится

[user]
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 3501
Зарегистрирован: 18.07.2008
Благодарил (а): 2 раза
Поблагодарили: 17 раз
Контактная информация:

#10 Сообщение 01.06.2010, 20:18

MOZGIII
2. Обновлять gcf файлы
http://cs.rin.ru/forum/viewtopic.php?f=20&t=52518 для применения GCF патчей годится.
А загрузку можно реализовать хотябы через FTP / HTTP (тогда обязательно раздавать через RAR + 5% для восстановления).
Последний раз редактировалось [user] 01.06.2010, 20:26, всего редактировалось 1 раз.
© [user]

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#11 Сообщение 01.06.2010, 20:26

[user]
А я ему советовал уж %) . И да, кстати, я пытаюсь убедить steamCooker-a пофиксить утечки, в которые он не хочет верить %) . Из-за них Phx не может нормально продолжать работу. А так уже бы готовый плагин был.

[user]
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 3501
Зарегистрирован: 18.07.2008
Благодарил (а): 2 раза
Поблагодарили: 17 раз
Контактная информация:

#12 Сообщение 01.06.2010, 20:42

Раздачу GCF по p2p не поддерживаю: контент будет раздаваться без сжатия (или у юзеров "на лету" будет паковаться? - бред). Хотя, для дозагрузки файлов сойдёт. Загрузку полного файла лучше выполнять в архиве по ftp / http
HTTP (тогда обязательно раздавать через RAR + 5% для восстановления)
© [user]

Аватара пользователя
bugme666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 1168
Зарегистрирован: 29.01.2009
Откуда: MOSCOШ
Благодарил (а): 882 раза
Поблагодарили: 358 раз
Контактная информация:

#13 Сообщение 01.06.2010, 21:17


[user]
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 3501
Зарегистрирован: 18.07.2008
Благодарил (а): 2 раза
Поблагодарили: 17 раз
Контактная информация:

#14 Сообщение 01.06.2010, 21:41

bugme
На FTP Simbiat'а файлы без сжатия лежат...
© [user]

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#15 Сообщение 01.06.2010, 21:43

[user]
Ну, для обновления контента сойдёт и так на первое время (хотя, конечно, это действительно "не фонтан").

Ответить