[Evaporation Project] Система дистрибуции файлов

Для тех, кто хочет сделать мир лучше.

Как передавать файлы от сервера к клиенту

Через простые сокеты
22
39%
Через HTTP/FTP протокол
27
47%
Другое (отписать)
8
14%
 
Всего голосов: 57

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

#1 Сообщение 07.05.2009, 03:23

Предлагаю обсудить способы дистрибуции файлов игр. А именно как будет происходить передача данных.

На данный момент я рассмотрел возможности использоваияуже готовых протоколов, а именно Direct Connect и BitTorrent. И пришл к выводу, что оба они имеют лишний функционал и достаточно сложны в реализации. К тому-же в них кое-чего нету. Поэтому они оба были мной отброшены как не подходящие, тоесть на крайний случай.
Вводная закончена :)
Ну вот, значит, пишем свой протокол. Скорее всего из кусочков уже существующих, но это не особо важно.
А теперь, собственно, что я собрасля обговорить.
Прежде всего - что мы хотим получить?
Мои мысли на этот счёт:
1. Скачака файлов происходит не с главного сервера, а со специальных дополнительных серверов.
2. Информация обо всех файлах на всех доп. серверах имеется на главном сервере. Для него мы можем, наверное, использовать торрентный термин "трекер". Кому не нравиться - готовите главный сервер. %)
3. Файлы могут быть размещены не на одном доп. сервере, а на нескольких сразу, чтобы можно было использовать скачку с нескольких серверов сразу (с зеркалами).
4. Будет производиться скачка одного фала одновременно (одна копия клиента может качать только один файл - тоесть не как, например тотже uTorrent, а с очередью в один файл). Хотя для реализации самого протокола это и не важно. %)
5. Каждый файл будет иметь уникальный идентификатор, под которым он будет известен на главном сервере. Возмлжно это будет md5 хеш файла, но он в любом случае будет основан на содержимом файла.
6. Для передачи папок или нескольких файлов в одном алиасе будет использоваться либо архиватор, либо собственный формат файлов (без сжатия, просто слепление нескольких файлов в один).

Это, пока, всё. Жду ваших идей - дополнений, несогласий или вообще собственной структуры протокола ;)

UPD 07.05.09
Я выбрал как нам передавать алиасы, так что пункт 6 уже определён. Они будут передаваться в файлах типа .elib Структура этих файлов будет простая:
Код:
[идентификатор формата][размер общего заголовка][общий заголовок - указаны размеры каждого файла, имена файлов и папок и где они находятся, всмысле подпапки итд][файл1][файл2][файл3][файлN]

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

#2 Сообщение 07.05.2009, 06:38

"И здесь я исчезаю..." - сказал G-man я, посмотрев на свою скорость соединения %) .

Shift1493
Капитан
Капитан
Сообщения: 285
Зарегистрирован: 31.10.2008
Откуда: столько яги и сэмок ?
Поблагодарили: 1 раз

#3 Сообщение 07.05.2009, 08:12

MOZGIII
а как же клиентская часть ? или её вообще не будет ? или же будет просто что-то вроде FTP ?

ИМХО лучше запороленный DC хаб и никакого мутора
Изображение
голая правда
Topma4 писал(а):привет всем у меня вопрос ети игры оригенальные через стим оригенал??? =@
ho2 писал(а): посоветуйте аддон чтобы делать кагбы сиденья.ну так жмеж е и ыть задез кудато я нагарисмоде искал ничего подобного не нашол помогите плз
FaTaLiTy25 писал(а):я вернулся эвил а вы [Вырезано цензурой]и ип вам мой не забанить я в прокси а вы суки я вас буду ддосить [Вырезано цензурой]и эй импулсе666 я ебу твою маму ты сука
пидераст ах да ты ешё и фашист ёбанный@!!!!!!! ХДДДДДДДДД
Добавлено спустя 1 минуту 18 секунд:
ну где бан????????????
Изображение

Аватара пользователя
YASTREB2008
Сержант
Сержант
Сообщения: 30
Зарегистрирован: 11.12.2008

#4 Сообщение 07.05.2009, 09:45

MOZGIII
Это что-то собственного стима?
Изображение[/url]
Изображение
Изображение

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

#5 Сообщение 07.05.2009, 12:22

Блин. %) Меня кажется не поняли. Я предлагаю обсудить возможность реализации собствнного протокола обмена данными. Только теория, ну может небольшие технические подробности. Пока-что это никак не связано ни со стимом, ни с играми. Только протокол для передачи данных через сеть.

YASTREB2008
Нет, это не программа вообще. Эта тема предназначена для обсуждения протокола.

Shift1493
Вопрос пока слишком ранний. Вообще, клиентская часть будет представлена в виде новой верси ClientCache Manager'a, возможно с другим названием. А вообще, мне кажется ты не очень в теме (твои вопросы меня насторожили %)) И ещё, про DC я всё сказал. Там слишком много лишнего.

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

#6 Сообщение 07.05.2009, 12:41

Ну, ладно. Что если взять тот же http и уже от него плясать? Навороты всякие приделывать и т.п. У меня, например, так сделано: для закачки мини-GCF для SID2GCF на сервере лежит файл с индексами архивов, размером, AppID и ещё чем-то :-D . Когда надо, тогда я его скачиваю, читаю и смотрю что мне надо скачать.

Впрочем, признаюсь, я не силен в этом: мне это кажется немного заоблачной идеей...почему-то. Впрочем, кое с чем я могу может помочь. Хотя чем?

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

#7 Сообщение 07.05.2009, 12:54

MOZGIII
Создай такую тему (в двух вариантах: rus/eng) на рине и др. форумах...
© [user]

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

#8 Сообщение 07.05.2009, 12:58

$t@t!c_V()1D
Да, я вот сейчас и определяю, как лучше отдавать файлы клиенту - через HTTP/FTP/Самописный сокетный саб-протокол :)
Через HTTP и FTP такая скачка как я хочу возможна только с помощью расстреливания сервера запросами на выдачу куска файла. Это, кстати, решит проблему зеркальности и многопоточной скачки файла.

Кстати я выбрал как нам передавать алиасы, такчто пункт 6 уже определён. Они будут передаваться в файлах типа .elib Структура этих файлов будет простая:

Код: Выделить всё

[идентификатор формата][размер общего заголовка][общий заголовок - указаны размеры каждого файла, имена файлов и папок и где они находятся, всмысле подпапки итд][файл1][файл2][файл3][файлN]
Добавлено спустя 50 секунд:
[user]
Я думаю, не смогу перевести... терпения не хватит %) Надо переводчиков просить...
Кстати если кто из них читает эту тему, переведите заголовочный пост если не сложно %)

eldest
Разработчик
Разработчик
Сообщения: 302
Зарегистрирован: 17.03.2008
Откуда: такие как я?
Поблагодарили: 2 раза
Контактная информация:

#9 Сообщение 07.05.2009, 14:29

MOZGIII
всё уже до тебя придумано, всё что надо это хороший класс на C++ каторый читает и врайтит гцф фаилы и класс для управления пирами (p2p) а там дело за малым
первое можно украсть в цфтулбокс, в второе вытащить из первых версий мула

Аватара пользователя
Simbiat
Steam Content Support
Steam Content Support
Сообщения: 629
Зарегистрирован: 18.08.2008
Поблагодарили: 29 раз

#10 Сообщение 07.05.2009, 14:55

Я предпочту ДЦ... ибо.... удобно. и оперативней в итоге чем торрент.
DarkSteam R.I.P.
SilverSteam is less so

Аватара пользователя
Vit_amiN
Супермодератор
Супермодератор
Сообщения: 2509
Зарегистрирован: 01.02.2007
Откуда: Over Old Hills
Благодарил (а): 15 раз
Поблагодарили: 91 раз

#11 Сообщение 07.05.2009, 19:45

Мартышкин труд. Без обид.
Изображение

Мои русификаторы и другие полезные файлы здесь
ЗАПОМНИТЕ, ПОИСК — БЛИЖАЙШИЙ ПУТЬ К ИСТИНЕ!

Аватара пользователя
nALLITeT
Полковник
Полковник
Сообщения: 2560
Зарегистрирован: 01.08.2008
Откуда: 127.0.0.1
Поблагодарили: 2 раза
Контактная информация:

#12 Сообщение 08.05.2009, 13:45

nALLITeT писал(а):можно из украденых исходников ( в 2003 году ) портировать код TrackerNet Server и TrackerNet Client.
Он вроде бы как стим позволяет выбрать файлы для скачки ( ну как в стиме, тоесть отличная вещь для размещения )

Добавлено спустя 1 час 58 минут 23 секунды:
у меня есть сервер ( правда мой, домашний... )
http://zombie-mk.servegame.org/
Изображение
JIEGOKOJI писал(а)::lol: Steamworks это паблишер вальв лол.

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

#13 Сообщение 08.05.2009, 14:17

nALLITeT писал(а):из украденых исходников
Исходников чего?

Аватара пользователя
nALLITeT
Полковник
Полковник
Сообщения: 2560
Зарегистрирован: 01.08.2008
Откуда: 127.0.0.1
Поблагодарили: 2 раза
Контактная информация:

#14 Сообщение 08.05.2009, 14:18

MOZGIII
все исходники украденые вместе с бетой хл2...
там есть и обрезки стима, и файловая система стима, и этот Tracker.
Изображение
JIEGOKOJI писал(а)::lol: Steamworks это паблишер вальв лол.

eldest
Разработчик
Разработчик
Сообщения: 302
Зарегистрирован: 17.03.2008
Откуда: такие как я?
Поблагодарили: 2 раза
Контактная информация:

#15 Сообщение 08.05.2009, 17:13

у меня есть сервер ( правда мой, домашний... )
http://zombie-mk.servegame.org/
хех)) ну и как работает? может мне попробовать доделать его)

Ответить