rec wrote:
morkow wrote:

А если так:

Да че то меня смущает ссылка не относящаяся к списку. Я бы подумал что она о самом ланчере ...

Эх-х smile  Хотя в принципе мне эти ссылки рядом с каждой игрой уже тоже не так смущают. Пожалуй и вправду лучше оставить как есть.

На самом деле, думаю, что в game_list.xml эту информацию лучше не добавлять, а сделать отдельны<й|е> xml.

Почему?? Наш текущий парсер смотрит только на содержимое тега

<game_list version="1.0">

А дальше в этот лист можно просто добавить что-то типа

...
</game_list>

<sw_list>
  <software name="instead" version="1.2.0">
    <download>http://example.com</download>
    <changelog>http://example.com</changelog>      
  </software>

  <software name="instead-launcher" version="1.2.0">
    <download>http://example.com</download>
    <changelog>http://example.com</changelog>      
  </software>
</sw_list>

И указать в коде, что парсить тэг sw_list можно только из официального источника.

По моему было лучше. html ссылка -- ассоциация с браузером.

А если так:
http://img16.imageshack.us/img16/6967/aboutonelinktooltip2.th.png

?

Ilja wrote:

Мне кажется, что это сейчас не принципиально, да и заменить просто. Почему не выбрал с кнопкой? Быть может привычка делать интерфейс подобным, а может интуитивно остановился на web-like варианте, когда информация и ссылки собраны в одной строке.

По-моему, пользователю проще кликнуть ссылку, чем осознать, что ссылка запрятана под button да еще при выбранном item. То есть это уже нестандартный шаблон (imho), что, кстати нельзя сказать о button "установить".

Сейчас лучше подумать над тем как информировать пользователя о новой версии instead и launcher'а. И в какой форме это предоставить?

ААА! я не удержался и всётаки сделал одну кнопку smile

На счёт обновления инстида/ланчера — завтра поковыряюсь с этим.. Вот тут: http://instead.pinebrush.com/wiki/ru/do … d=launcher есть пример XML с инфой об обновлении ланчера. ИМХО, можно юзать этот вариант. Только тогда надо будет как-то отделить обработку офф. листа ото всех остальных (а то ведь каждый тогда сможет в своём листе написать какуюнить левую ссылку для скачки ланчера версии 999.42 smile)

Ilja wrote:

Переделал в текстовую ссылку.

Так гораздо лучше, спасибо smile

А нельзя ли сделать кнопку/ссылку одну на всех? А то ведь можно было так же сделать с кнопкой «установить» (написать "установить" на против каждой игры), но был выбран вариант с одной кнопкой. Почему бы так же не поступить и с описанием?

P.S. я сам могу это реализовать если что smile

По поводу описаний к играм.
Как это реализовано у нас:
http://img685.imageshack.us/img685/5016/insteadlauncherdescript.png

Как это реализовано в убунту и в макоси:
http://img710.imageshack.us/img710/6786/updatemanagerdescriptio.png

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

Уважаемые ВСЕ smile Скажите что вы думаете по этому поводу.

Добавил возможность загрузки списков игр из нескольких источников. Надо ещё обновить конфиг, добавить перевод и проверку на правильность введённого url.

Ещё не понимаю почему, но похоже что qtcreator самовольно изменяет mainwindow.ui — постоянно меняет шрифты во вкладке About... sad

rec wrote:

Оказывается под windows instead стартует только из своего каталога, если в момент запуска текущий каталог не тот, где лежит sdl-instead.exe, то он вылетает.

Я тут тоже в виртуальной машине код поковырял. Насколько я понял, instead стартует только из своего каталога потому что там лежит куча библиотек необходимых для запуска. По идее, можно ещё добавить его каталог в %PATH%... но у меня такой вариант не сработал sad

А вообще, насколько я понял, launcher фактически готов smile Мы его сделали всего за 3 дня  big_smile

Я завёл задачу http://code.google.com/p/instead-launch … etail?id=2 И 19 января вечером попробую её решить, если конечно никто не сделает это раньше  roll

rec wrote:

Не пойму почему в qunzip.c не работали Q_OS_WIN32 и Q_OS_UNIX, пока не добавил макрос в .pro. Надо бы пофиксить красивым способом.

Только там надо обязательно учесть что Q_OS_WIN32 будет работать только для 32-битной винды. Лучше использовать просто "Q_OS_WIN" ИМХО....

rec wrote:

Думал об этом, вызов действительно проще, но start() используется, чтобы оповещение о завершении процесса прилетало, в startDetached() такой возможности нет.

А зачем нам может понадобиться оповещение о завершении?

Peter wrote:

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

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

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

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

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

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

Ilja wrote:

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

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

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

neokril @ гмэил.ком

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

Ilja wrote:

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

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

rec wrote:

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

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

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

rec wrote:

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

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

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

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

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

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-й строке можно указать правильный путь для папки с играми.

Fangel wrote:
Ilja wrote:

Конечно. smile
qt штука хорошая, полностью поддерживаю.
А есть представление как этот launcher/updater должен работать/выглядеть?

Есть проэктик один. Плагин для psi+ человек разрабатывает. Так до конца и не поняли почему он на qt4:4.5.2 не идет, а идет строго на qt4:4.5.3. Из-за этого плагин на убунте не пошел, выяснилось что убунта на этот счет полна костылей и как такового qt4:4.5.3 там совершенно нет. Думаю ни в одной только убунте так. Может не qt?

У самого убунта. Версия: 4.5.3really4.5.2-0ubuntu1  (прямо так и написано smile

В любом случае от этого кутэ потребуется только сетевой модуль + gui, которые точно есть во всех версиях qt4.

Peter wrote:
morkow wrote:

А реализация zip есть в qt?

К сожалению, нет (по крайней мере я не нашёл легальной реализации) sad

Это вроде недокументировано:
http://vingrad.ru/blogs/sabrog/2009/03/ … -arhivami/

#include <Qt/private/qzipreader_p.h>

Страшновато как-то  hmm но конечно можно попробовать. Спасибо за ссылку smile

А реализация zip есть в qt?

К сожалению, нет (по крайней мере я не нашёл легальной реализации) sad

Но в поставку можно включить http://www.info-zip.org/ — эта утилита по умолчанию поставляется в большинство линукс дистрибутивов (команда zip). Есть windows, mac версии

А есть представление как этот launcher/updater должен работать/выглядеть?

Быстренько накидал вариант интерфейса:
http://img109.imageshack.us/img109/1908/mockupj.png
Ах да, в контекстное меню можно добавить пункт "играть!"

Если юзер жмёт на Загрузить/Обновить, то скачивается список игр и отображается в таком же окне, только рядом с каждой игрой можно будет поставить галочку smile Внизу будет кнопка "Загрузить".

@rec может как-то объединить усилия? smile

На счёт редактора всё понятно.

Но про загрузку игр из интернета не совсем:

Не так просто написать универсальный код, который будет работать одинаково на Unix и Windows.

Да, на си это будет сложновато, но есть же QT!  big_smile  Там есть модуль network, который работает одинаково и в линуксе и в винде. Можно это оформить в виде отдельного приложения, чтобы не плодить зависимости...

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

А работа над этим уже ведётся? И если нет, есть ли какие-то идеи как его реализовать??

Можно реализовать в меню выбора игр пункт «Загрузить игру из Интернета» и «Обновить игры». Когда юзер нажимает загрузку игры, клиент скачивает список всех доступных игр с какого-нибудь доверенного сервера и показывает список юзеру. Дальше при клике на название игры она скачивается и в неё уже можно поиграть  big_smile

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

P.S. у меня есть небольшой опыт разработки на си и я мог бы сам попробовать реализовать эту фичу, если она покажется полезной  smile