{{notification.text}}

MirGames

12.09.07 15:40
0
Кто нить может подсказать структуру удобную для автоапдейта файлов онлайн игры? У меня пока одна мысль есть. Сервер выдаёт клиенту адрес, логин и пасс для доступа на фтп, где лежит копия игры, какая она должна быть, а клиент сравнивает файлы свои и на фтп и, если несоответствие, докачивает или перезакачивает файл..
#1
12.09.07 16:07
0
А с помощью версий нельзя.
Допустим сервер смотрит какая у тя версия, какая у него, и вычесляет че надо качать.
#2
12.09.07 16:11
0
Или клиент просто качает с сервера список файлов и контрольную сумму каждого из них (все в одном *.тхт листе например). и потом сравнивает файлы клиента с файлами из листа - если контрольная сумма разная или файла вообще нету - качаем с сайта необходимое. и не надо никакие пароли передавать...
Отредактировано: 12.09.07 16:12
#3
12.09.07 17:01
0
"А с помощью версий нельзя.
Допустим сервер смотрит какая у тя версия, какая у него, и вычесляет че надо качать."

Неудобно :(( Кроме того бывают ситуации недокача, версии начинают путацца и тд. надо по контрольной сумме.

"Или клиент просто качает с сервера список файлов и контрольную сумму каждого из них (все в одном *.тхт листе например). и потом сравнивает файлы клиента с файлами из листа - если контрольная сумма разная или файла вообще нету - качаем с сайта необходимое. и не надо никакие пароли передавать..."

Многие фаерволы, да и сервера не пропускают файлы с различными расширениями. т.е. тоже не выход.. Можно конечно сделать свой скачивальщик на базе tcp/ip..
#4
mov, просто mov
12.09.07 17:17
0
Woolf
хы чот те нечё не нравиться ;)
помоему вариант $'talker'а будет как раз :)

а вот сервер и файрвол можна настроить ;)
Отредактировано: 12.09.07 17:18
#5
12.09.07 17:40
0
"помоему вариант $'talker'а будет как раз"

Говорю же, по http 90% серваков не дают ничего качать кроме exe,jpg,gif,zip,rar ну и там еще десяток расширений.
#6
12.09.07 17:42
0
"ы чот те нечё не нравиться "

Потому, что я намучался и с первым вариантом и со вторым... Оба варианта работали по году и все равно нормального результата не дали..
Больше не хочу такого гемороя. Вот и думаю, может ктонить что получше придумает..
#7
Mirage
12.09.07 18:01
0
Я так понял посредством HTTP качать планируется? Да еще с фришного хостинга? На платных ограничений на скачку по расширениям нет. А на бесплатном это все несерьезно.

Если у игры все данные в одном хранилище, то можно для каждой версии иметь файл с обновлениями до текущей.
.exe и .dll (если есть) можно просто скачивать целиком.
Файл с обновлением может генерироваться автоматически по файлу хранилища текущей версии и старых.

В принципе, можно также делать и если у игры все отдельными файлами идет. Просто архивировать их в один файл. Генерация архива тоже автоматическая по образам старых и новой версии.

Т.е. серверу обновлений сообщается версия, которая у клиента, а он выдает соответствующий файл.
#8
mov, просто mov
12.09.07 18:15
0
Woolf
mime типы править можно ;)
#9
DSL88
18.09.07 16:37
0
Попробуй сделать апдейт на версиях. Пусть апдейтер качает екзешник по типу бат (который сам все поставит и версию в конце повысит, а после закроется). Тогда не будет гемора и работать будет все удобно и файрволы пропустят и не надо мучиться по поводу закачки.
#10
sasha
30.07.08 09:37
0
Цитата(Woolf @ 12.09.2007 - 15:40) [snapback]66409[/snapback]

Кто нить может подсказать структуру удобную для автоапдейта файлов онлайн игры? У меня пока одна мысль есть. Сервер выдаёт клиенту адрес, логин и пасс для доступа на фтп, где лежит копия игры, какая она должна быть, а клиент сравнивает файлы свои и на фтп и, если несоответствие, докачивает или перезакачивает файл..

Есть такой вариант:
На сервере выкладываются патчи для игры, клиент проверяет их наличие, потом сравнивает со своей версией, скачивает и устанавливает.
#11
30.07.08 13:05
0
Оу.. некропостеры :))

Цитата
Или клиент просто качает с сервера список файлов и контрольную сумму каждого из них (все в одном *.тхт листе например). и потом сравнивает файлы клиента с файлами из листа - если контрольная сумма разная или файла вообще нету - качаем с сайта необходимое. и не надо никакие пароли передавать...


Я вот это реализовал.. Работает, но надо както уменьшать список файлов.. А то большой довольно получися.
#12
sasha
30.07.08 14:08
0
Все новые файлы кидаются в один архив, кладется на сервер, ему присваивается номер версии, клиент, видя, что появилась новая версия, качает и ставит.
#13
30.07.08 14:54
0
sasha, ИМХО бред.
Woolf, ZLib?!
#14
sasha
30.07.08 15:25
0
Qu1nt это может не стыковаться с вашим мышлением, но это работает.

#15
30.07.08 15:48
0
Работать будет, безусловно. Вот только вариант со списками более гибкий - скачивается только то, что необходимо. Т.е. если у меня версия 1.0, а актуальная - 1.5, нет необходимости качать все промежуточные патчи (1.1, 1.2, 1.2b...etc). Мы сразу же обновимся до последней версии.
Другое дело, если ваша контора называется Blizzard, файлы ресурсов весят несколько ГБ, да и патчики выходят с завидной нерегулярностью. Тогда да.
Отредактировано: 30.07.08 15:49
#16
sasha
30.07.08 16:16
0
Qu1nt
Спасибо за объяснение.
Когда патчей становится слишком много(напр. 1.1, 1.2, 1.3, 1.4), мы их пакуем в один большой(и называем 1.4).
Наша контора называется Асус и игр пока не выпускает :rolleyes:
#17
30.07.08 18:28
0
Цитата
Woolf, ZLib?!

дело не в самом размере списка, а в том, что надо для многих файлов подсчитывать хешсумму. Это довольно таки долгий процесс.. Сервак загружается таки..
#18
30.07.08 18:31
0
Цитата
Когда патчей становится слишком много(напр. 1.1, 1.2, 1.3, 1.4), мы их пакуем в один большой(и называем 1.4).


Но это лишняя работа.. Паковать, объединять..
По контрольной сумме оно какбы лучше. Перезалил какойто файл - система сама наёдет изменения и скачает его.
#19
30.07.08 21:17
0
Woolf
А зачем на серваке считать хэши? По крайней мере, более одного раза, при загрузке на него измененного файла. А со стороны клиента можно хранить файлы в паках вместе с хешами. Для уменьшения размера загружаемого списка файлов можно использовать сжатие. Еще можно вместо имен в списке хранить их хеши :)
В Lost Times планировалось вообще только один общий "хеш" юзать - номер версии клиента :)
Еще для одного проекта использовался "разделенный архив" - файл-заголовок (список файлов с хешами) плюс сжатые по отдельности файлы.
Отредактировано: 30.07.08 21:19
#20
gambit_oz
31.12.08 00:22
0
Если брать например тот же WOW так там патчи отдельными паками хранятся, да еще заразы сразу последний не поставишь )) приходилось по одному скачивать и обновляться..

Вывод - самое простое - запихать все новые дополнения в 1 пак скачивать и обрабатывать
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}