Re: [Предложение] Загрузка/обновление игр из Интернета

В идеале список мог бы быть один, тогда юзеру все-равно где игра... Он щелкает на имени и если она уже скачана -- пускается instead. Если нет -- то скачивает и пускает. Но в текущей схеме все четко в плане простоты. И с апдейтами проблем, вроде, нет. Локально стоит 1.0.2. В 'Установить' -- 1.0.3. Установил -- каталог тот же, поэтому локально станет тоже 1.0.3. smile Тогда кнопку установить можно переименовать в 'Новые игры' или что-то подобное. Чтобы был стимул ее жать. В общем, мне оба варианты кажутся приемлемыми.

Короче, давайте кто-нибудь заведет проект на том же googlecode?  Или будем на instead-games? Там просто нельзя вроде еще один репозиторий делать, но каталог можно в принципе прямо в trunk сделать (хоть и не красиво)...

Re: [Предложение] Загрузка/обновление игр из Интернета

В том, что набросал раньше фактически нет gui.
Предполагалось сделать три таба: интерпретатор, игры, загрузчик.
Каждая отвечает за обновления своей части.
Написал небольшой пример на загрузку по http
и на этом закончилось время.

По интерпретатору:
При появлении новой версии предлагается загрузить source code (linux/unix) или setup.exe (windows).

По играм:
Один список в три колонки: title/ver/act. В зависимости от статуса игры (установлена/не установлена/требует обновления) колонка act содержит кнопку: Uninstall, Install, Update.

По загрузчику:
Аналогично интерпретатору.

Завел проект на instead-launcher.googlecode.com. Присылайте координаты для googlecode.

Re: [Предложение] Загрузка/обновление игр из Интернета

Ilja wrote:

По интерпретатору:
При появлении новой версии предлагается загрузить source code (linux/unix) или setup.exe (windows).

По играм:
Один список в три колонки: title/ver/act. В зависимости от статуса игры (установлена/не установлена/требует обновления) колонка act содержит кнопку: Uninstall, Install, Update.

Imho, на интерпретатор и сам загрузчик НЕ заморачиваться, а просто показывать инф. по новой версии и ссылку. Для начала точно хватит. В крайнем случае делать установку ТОЛЬКО для win пользователей. Так как качать tar.gz для многих не нужно. Я через aur обновлюсь, например... wink

Насчет интерфейса -- предлагаю еще упростить:
В играх (списке) -- напротив имени кнопка или 2 кнопки. install (если игра не установлена) или launch и remove (если это локальная). Кнопка refresh глобальная. И все. smile update похоже не нужен, как ты и говорил. Так как при install'е игра попадет в тот=же каталог что старая версия.

Лаунчер сканит игры по main.lua tag'у Version.

29 (edited by morkow 2010-01-17 17:47:32)

Re: [Предложение] Загрузка/обновление игр из Интернета

rec wrote:

Вот такой quick & dirty вариант.

Ого! Выглядит отлично smile

В общем я тоже набросал свой вариант smile С UI у него не очень (да и вообще его надо будет переписать полностью), но зато он загружает список из интернета (я придумал вот такой формат — http://dl.dropbox.com/u/728854/game_list.xml ), потом выводит список и по нажатию на кнопку install скачивает игру во временный файл. Остаётся только распаковать в нужную папку.

По формату списка:

<?xml version="1.0" encoding="UTF-8"?>
<game_list version="1.0">
    <game id="quarantine">
        <name>Карантин</name>
        <version>0.3.1</version>
        <url>http://instead-games.googlecode.com/files/instead-quarantine-0.3.1.zip</url>
    </game>
........

id="quarantine" — это название папки куда оно будет распаковано (тогда можно ассоциировать название локальной папки с игрой в списке)
Ещё можно легко добавить локализацию для имён, описания, скриншоты, несколько зеркал для загрузки итд.

Остаются такие вопросы:

При появлении новой версии предлагается загрузить source code (linux/unix) или setup.exe (windows).

Зачем использовать setup.exe, если исходники на lua в любом случае кроссплатформенные?
Что на счёт UI? Мне понравился вариант от rec. Пришлите пожалуйста ваши варианты дизайна (желательно с картинками smile.

P.S. Свой проект собирал только в ubuntu. В localgames.cpp в 12-й строке можно указать правильный путь для папки с играми.

Post's attachments

Attachment icon instead-game-manager-0.0001.zip 9.6 kb, 128 downloads since 2010-01-17 

Re: [Предложение] Загрузка/обновление игр из Интернета

Зачем использовать setup.exe, если исходники на lua в любом случае кроссплатформенные?

Для случая, когда изменения не в lua. Но это сейчас не важно.

А вариант хороший! smile
Предлагаю взять за основу вариант gui, предложенный rec, проект назвать instead-launcher.
P.S. Насчет QtCreator. Использование данного IDE принципиально, насколько привычно, необходимо? smile

31 (edited by rec 2010-01-17 20:26:46)

Re: [Предложение] Загрузка/обновление игр из Интернета

Использование креатора не принципиально, как вариант есть QDevelop, или любой редактор с подсветкой с++ и кутешный редактор форм. Проект можно собирать и без него - qmake && make, если нет желания ставить.

А так у креатора интерфейс довольно простой, освоился где то через час работы. Есть даже недопиленная работа с svn smile

To morkow: прогу под слакой собрал, список работает, насчет загрузки пока хз, наверное просто инет лагает сегодня и я плохо жду smile

Re: [Предложение] Загрузка/обновление игр из Интернета

Пытаюсь фиксировать то, что у нас есть в качестве идей.

1) Вариант a) Список с играми один -- в нем, установленные игры могут запускаться и удаляться, а не установленные -- устанавливаться. Установка и update -- одно и то же по сути. Идеал -- это окно в программе пока --  единственное. smile Не считая about.  Стоит предусмотреть фильтр или сортировку по дате???  Вариант b) Списка два, как у rec.

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

2) Список с играми из сети берется из текстового файла по http. Мне милее plaintext, но не буду возражать и против xml, если для qt это проще. Формат должен быть расширяем (например, в будущем захочется ввести тег -- жанр. тогда все-таки xml?) Формат содержит: название игры (utf8), версию, url, контрольную сумму, (имя каталога в архиве?)..., и видимо -- дату выхода. Возможно -- размер. что-то забыл? С языком -- пока не морочимся  (язык названия об этом говорит), или еще одно поле -- язык: en, ru, es... Фильтров по языкам для игр пока не делаем, пусть выводятся в одно окно. smile

3) Апдейт движка и самого апдейтера пока не делаем, но пишем о выходе новых версий и показываем в виде http ссылок.

4) Минимизируем количество диалогов, по возможности. smile Вообще, чем тупее/проще программа, тем лучше. big_smile

5) В настройках -- путь к скаченным играм и к instead. Чекбокс --  автоматический refresh при старте.

Если энтузиазм остался, предлагаю rec в wiki создать маленькую страничку с этим описанием, и по мере продвижения будем корректировать текст. Если писать будете в паре, все-равно нужно как-то поделить работу, хотя бы для начала. Кто-то наверное, один, должен взяться за gui. Кому это интересней? И еще я так понял, что желательно обойтись без средств визуального проектирования интерфейса.

33 (edited by rec 2010-01-18 01:41:48)

Re: [Предложение] Загрузка/обновление игр из Интернета

Вот попытался объединить свое gui с сетевым кодом morkow.

1) Наверное все таки вариант b, т.к. играют обычно чаще, чем качают новые игры tongue
2) Здесь лучше XML, для расширяемости.
3) Может версию движка и самого апдейтера вставить в ту же XML где список игр? И заодно с обновлением списка предлагать перейти на сайт с обновлением.
4) Уже и так один, меньше только если переделать в демона smile
5) Авто refresh хорошая идея, обязательно прикрутим

Вот завел страничку на вики http://instead.pinebrush.com/wiki/ru/do … =launcher.

А какие проблемы могут возникнуть от средств визуального проектирования интерфейса ? Редактор ui есть на любой системе, где есть qt, uic который их конвертит в си тоже.

Post's attachments

Attachment icon instead-launcher-0.0.2.tar.gz 8.48 kb, 138 downloads since 2010-01-17 

Re: [Предложение] Загрузка/обновление игр из Интернета

rec wrote:

Вот попытался объединить свое gui с сетевым кодом morkow.

Ого!! Это просто невероятно круто smile

Он правильно распознал установленную игру и её версию (карантин 0.2.1 и я обнаружил что её пора обновлять)))), успешно загрузил список и даже скачал игру в /tmp smile

Моя система: ubuntu 9.10

rec, ты решил чем лучше распаковывать zip-архивы? На stackoverflow рекомендуют zlib...

35 (edited by rec 2010-01-18 02:08:05)

Re: [Предложение] Загрузка/обновление игр из Интернета

Насчет zlib - http://www.zlib.net/zlib_faq.html#faq11 завтра посмотрю что за minizip и что умеет.
А насчет того  что обнаружил что пора обновлять ... может если включена галочка auto refresh или нажали обновление списка, то и на первой вкладке стоит показать что есть новая версия игры ? например иконку поменять.

Re: [Предложение] Загрузка/обновление игр из Интернета

Мой пока скромный вклад... smile
Дофиксил пока только progress...

А вообще, конечно, потом надо будет все переписать аккуратнее...
Версию, пардон, не щелкнул... wink

Post's attachments

Attachment icon instead-launcher.zip 8.49 kb, 114 downloads since 2010-01-18 

Re: [Предложение] Загрузка/обновление игр из Интернета

rec wrote:

А насчет того  что обнаружил что пора обновлять ... может если включена галочка auto refresh или нажали обновление списка, то и на первой вкладке стоит показать что есть новая версия игры ? например иконку поменять.

Может быть стоит из загруженного списка удалять все установленные игры последних версий (нафига они там?), а если игра уже загружена, но имеет другую версию, можно просто к названию добавить сторочку [обновление] или что-то в этом духе и ещё можно жирным выделить smile

Сейчас тоже копаюсь с zip-ом...

Re: [Предложение] Загрузка/обновление игр из Интернета

Ilja wrote:

Мой пока скромный вклад... smile
Дофиксил пока только progress...

Работающий прогресс-бар!!! Круто  cool

Re: [Предложение] Загрузка/обновление игр из Интернета

Смотрите, я залил все сюда:
http://code.google.com/p/instead-launch … #svn/trunk

Предлагаю чекаутить и коммитить...

Но для этого, нужно иметь аккаунт в гугле, пришлите если есть ваши координаты.

40 (edited by morkow 2010-01-18 02:53:22)

Re: [Предложение] Загрузка/обновление игр из Интернета

Ilja wrote:

Смотрите, я залил все сюда:
http://code.google.com/p/instead-launch … #svn/trunk

Предлагаю чекаутить и коммитить...

Но для этого, нужно иметь аккаунт в гугле, пришлите если есть ваши координаты.

neokril @ гмэил.ком

P.S. Я смог синтегрировать распаковщик zip (http://www.winimage.com/zLibDll/minizip.html) в проект! Он даже смог открыть архив smile

Re: [Предложение] Загрузка/обновление игр из Интернета

Здорово! smile
Уже поздновато -- завтра посмотрю тоже. smile
Все дополнительные включаемые пакеты исходников, собираемые вместе с проектом предлагаю размещать в соответствующие поддиректории, например:  /minizip и т.д...

P.S. В wiki подправил пункт TODO, относящийся к прогрессбару для загрузки игр. Для загрузки листа для начала быть может лучше бегающий, поскольку сейчас, скорее всего, основное время занимает не загрузка, а переключение состояния...

42 (edited by morkow 2010-01-18 06:16:14)

Re: [Предложение] Загрузка/обновление игр из Интернета

Отправил версию с распаковкой архивов. Успешно протестировал на oldstory, quarantine и стальной крысе. Зеркало почему-то отказался распаковывать (судя по логам, не создаёт корневую директорию для игры) sad

В проекте не прибавилось новых зависимостей, т.к. используется zlib встроенный в qt.

http://code.google.com/p/instead-launch … detail?r=4

И ещё тут такая штука: не знаю с чем это связано (может это из-за того что 5 часов утра smile, но игрухи скачиваются не стабильно. Очень часто загрузка идёт до 99% и останавливается. Приходится жать отмену загрузки и в логе появляется запись "WARN: Game load error" (надо бы ещё выводить код ошибки).

43

Re: [Предложение] Загрузка/обновление игр из Интернета

Ilja, на googlecode зарегился под  virtualdc сабака майл точка ру. Или стоит перерегиться с гугловским ящиком ?

zip и прогрессбар работают ... ну это же отлично!

Может быть стоит из загруженного списка удалять все установленные игры последних версий (нафига они там?)

Да на вики я вроде писал про такое, хотя не помню, 3 утра уже было когда писал. Если нету добавляй smile

Re: [Предложение] Загрузка/обновление игр из Интернета

rec, добавил -- попробуй.

Re: [Предложение] Загрузка/обновление игр из Интернета

Если версии instead и stead увеличиваются одновременно, можно брать версию instead из stead/stead.lua.

Re: [Предложение] Загрузка/обновление игр из Интернета

Для зеркала пофиксил пока промежуточный вариант...

Re: [Предложение] Загрузка/обновление игр из Интернета

Круто! Только кот у меня на 99% повисает... sad

P.S. Плюс захордкожены пути вида .instead -- а это должен быть архитектурозависимый код.

Re: [Предложение] Загрузка/обновление игр из Интернета

Peter wrote:

Круто! Только кот у меня на 99% повисает... sad

Я создал багу http://code.google.com/p/instead-launch … etail?id=1 Запости туда дополнительную информацию пожалуйста (хотя бы версия qt)

Re: [Предложение] Загрузка/обновление игр из Интернета

Закоммитил версию, в которой исправлена загрузка (загружаются все, без подвисаний, в конце удаляется zip), обновляются списки уже загруженных и новых игр.

Внес изменение в спецификацию описания игры на wiki. Вместо "dir" сделал "name", исправил xml, расположенный в файлах проекта.

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

По вопосам портирования пока предлагаю не заморачиваться и сделать нормально работающую unix-версию, единственное -- приоритет в использовании переносимого кода.

50 (edited by rec 2010-01-18 19:26:22)

Re: [Предложение] Загрузка/обновление игр из Интернета

Закоммитил запуск игры из списка игр. Путь к интерпретатору пока определяется статически в функции getDefaultInterpreterPath(). На время работы игры ланчер скрывается.

Ilja, обновил у себя подряд 3 игры, с загрузкой\установкой\обновлением списков проблем не возникло.