[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » Моддинг » Программирование (Уроки, Вопросы, Идеи) » Крези идея, или как улучшить жизнь людям (Буа)
Крези идея, или как улучшить жизнь людям
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
Суть идеи

Суть заключается в том, что с помощью программы игрок подключается к серверу созданным игроком (мультиплеер) и качает с сервера все его установленные моды (проверку осуществляем с помощью проверки хеш-сумм всех файлов)

Реализация

Предлагайте свои варианты реализации)

Программа будет писаться постепенно

З.Ы. выражаю плохо свои мысли, уж извините =)


:3
 
firsacho
Админы
Сообщений: 3812
Реп: 84 / Инв: 15
Quote (Lex-Serest)
с помощью проверки хэш-сумм всех файлов

это что такое и как работает?

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




Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
firsacho,
http://ru.wikipedia.org/wiki/Хеширование
http://ru.wikipedia.org/wiki/MD5

Составляется хеш всех файлов,хеширование произвидится например с помощью md5

Этот метод используется для простоты сравнения файлов


:3
 
Проверенные
Сообщений: 2848
Реп: 60 / Инв: 6
охохо, это было бы реально круто, но возникнет проблема: что если моды стоят не у создателя серва?



-------------------------------------------------------------
And when the sun is shining, there is justice for all...
And all the people will remember that funny "war".
War, which was so dark in the beginning and so shiny in the end.
But now it's over. Over for all.
-------------------------------------------------------------
Я сюда захожу только из-за Game Project. И да, я больше не модер, поэтому не надо писать мне тонны лс с просьбами кого-либо забанить. И еще: черви меня не интересуют. Совсем. Поэтому, даже не напоминайте мне про них - вызовете большой БУГУРТ.
 
firsacho
Админы
Сообщений: 3812
Реп: 84 / Инв: 15
Quote (rocketvadim)
охохо, это было бы реально круто, но возникнет проблема: что если моды стоят не у создателя серва?

прога является менеджером модов - отключает и подключает те которые нужны для игры на сервере. Но надо чтоб моды устанавливались через прогу. Видимо так.




Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
эту прогу я начну писать после того как напишу прогу для быстрой установки мода

формат с модом - простой зип архив в котором находится мод и конфигурационный файл с описанием самого мода, автора мода и так далее


:3
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Зачем тебе нужен перехват захода на сервер? 2
Оптимально отдельный загрузчик перед стартом игры.

Юзверь запускает загрузчик, видит список модов, видит текущий выбранный мод.
При этом он может переключиться на другой мод.

При этом есть некий глобальный сервер, к примеру example.com, на нём находтся php скрипт, который возвращает xml-ку со списком модов и где их можно загрузить + краткое описание + md5 + возможно, список зеркал.
Ещё можно возвращать список подобных ему сайтов, где можно раздобыть такой вот список.

md5 логично использовать для каждого файла и папки, ибо большинство модов затрагивают пару-тройку файлов и нет смысла лопатить всю папку.

На чём собираешься писать? Если на C#, плюсах или java - могу немного помочь, если будет желание.
Сразу делай хранилище либо в SVN, либо в git, или не буду помогать ;)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
уж извени, я ужасно выражаю свои мысли)
хотя твоя идея тоже красива)

Quote
md5 логично использовать для каждого
файла и папки

я так и хотел)

что бы кодить на си ++ надо его сначало выучить более нормально, а я его только начал изучать, ты мне можешь помогать с помощью длл библиотеки, которую можно очень просто подключить если конечно знать какие у нее есть функции и параметры к этим функциям


:3
 
DrHitman27
Админы
Сообщений: 2115
Реп: 52
а зачем что-то проверять? программа будет знать какой мод сейчас установлен и какие файлы она заменила, это быстрей, чем какой-то там md5 из файлов считывать.

 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
md5 не считывается из файла, а считается по файлу - это контрольная сумма. Это позволит контролировать, не изменён ли файл пользователем. Если у двух файлов совпадают md5, то с огромной вероятностью совпадает и их содержимое.

Мои идеи:

Для загрузчика модов важно будет иметь начальный список файлов (от начльной установки червей) с их md5.
При запуске мода все файлы не в этом моде должны вернуться в начальное состояние, для этого надо сравнить их md5 суммы с начальными. Затем все md5 файлов мода надо сравнить с установленными файлами и заменить, если надо.

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

К тому же можно, чтобы мод имел список зависимостей (то есть список других модов, которые должны быть установлены). У этих модов не должно быть общих файлов.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
Создавать только пакеты модов не очень будет хорошо)
Пример: на сервере пользователь поставил множество своих модов, которые некуда не выкладывал, но эти моды весьма интересны

Я хотел сделать так что бы программа сверяла все файлы со списком с мд5 полученные из стандартных файлов, если хотя бы один файл он его запаковывает в архив вместе с "конфигурационным" файлом и когда игрок подключается к его серверу он скачивает его мод и "устанавливает" его

Один минус придется каждый раз восстанавливать стандартный набор файлов


:3
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Ты хочешь, чтобы игроки автоматом обменивались файлами для совместной игры?

Типа такой сценарий:
игрок запускает ланчер, видит список игроков + возможно чат
дальше 3 варианта:
Запуск стандартной игры (стандартный набор файлов).
Запуск своего мода (то есть свой набор файлов).
Скачать мод какого-либо игрока из списка игроков.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Некто
Проверенные
Сообщений: 1897
Реп: 21
а возможно так: ник, список подов ?
 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
Герыч, либо я плохо объясняю (что вполне возможно), либо тебе лень меня понять

пользователь только скачивает с сервера мод и ставит его


:3
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (Lex-Serest)
Тут нам придется расшифровывать принцип работы GameSpy.

GameSpy работает лишь с некоторыми не шифрованными данными остальные посылает пакетами.

Я когда делал робота по сбору статистики gamespy то считывал с сервера
Название игры, комнату, количество игроков, версию игры и IP адрес хостера.
http://worms3d-portal.com/portal.php?topic_id=1014

По поводу как это работает можно прочесть тут:
http://aluigi.altervista.org/papers.htm#gslist
http://en.wikipedia.org/wiki/Gslist

Но врятли для осуществления твоего плана нужна эта инфа.


 
firsacho
Админы
Сообщений: 3812
Реп: 84 / Инв: 15
Quote (AlexBond)
Название игры, комнату, количество игроков, версию игры и IP адрес хостера.

Вот это как раз то, что нужно. Мы можем определить хостера, а прога поможет определить какие у него стоят моды (если у него тоже будет запущена эта прога). Остается скачать эти моды с хостера или с сервера.




Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
В общем, программа будет работать примерно так:

Самый лучший вариант мне кажется работа при помощи гамеспу (а не WinAPI)
Сама по себе программа вынесена в отдельное приложение со своим интерфейсом и со своим лаунчером, с
возможностью работы с протоколом гамеспу, программа может работать как сервер, так и как клиент

Сервер работает следующим образом:
При создание сервера, сканируется папка воромса - проверяется все файлы на модификацию (с помощью мд5), после чего создает архив, в который записывается, все модифицированные файлы и создается список со всеми измененными файлами.
Так же программа в ник (имя сервера после создании игры) вписывает специальный символ (например, символ табуляции, это делается для более простого поиска сервера в программе)
И еще программа отсылает на сервер в пхп скрипт - ip адрес и ник
И еще программа открывает порт на компьютере

Клиент работает следующим образом:
При создание сервера, сканируется папка воромса - проверяется все файлы на модификацию (с помощью мд5), после чего создает архив, в который записывается, все модифицированные файлы и создается список со всеми измененными файлами.
Потом в таблице предоставляются все сервера со списком модифицированных файлов
После выбора сервера посылается запрос пхп скрипту с именем сервера, пхп скрипт возвращает ай пи адрес
На этот ip адрес посылается запрос на скачку файла мода, и пока скачивается мод, ставится все стандартные файлы (для более быстрого процесса восстанавливаем файлы, которые находятся в списке, полученное при запуске программа)
После того как будет скачен архив, он «устанавливается» и запускается игра с параметром для подключения к серверу


:3
 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
Установка модов будет работать примерно как в "http://w4tweaks.ru/forum/118-1400-1"

Вскоре напишу irc чат

Эта крэзи идея будет разрабатываться "постепенно" (я не алексбонд, терпения не так много)


:3
 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
ыыы, что-то не могу что-то одно нормально закончить... терпения нет...

В общем, начал писать IRC чат (который используется в воромсе по протоколу GameSpy)

http://aluigi.altervista.org/papers.htm#peerchat
Щас переписываю сорцы с си на паскаль

меня си начинает бесить, особенно конструкциями вида
*s++ ^= crypt[t];

в паскале все более строго и привычнее...


:3
 
Охотник
Проверенные
Сообщений: 16
Реп: 1
круто!
 
Форум » Моддинг » Программирование (Уроки, Вопросы, Идеи) » Крези идея, или как улучшить жизнь людям (Буа)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: