"Сумасшедшая Оклахома" или приручаем Game Explorer
На данный момент патчей доступно... 2
Патч "Сумасшедшая Оклахома" для S.T.A.L.K.E.R. Windows Vista Game Explorer v0.2.1
Патч "Сумасшедшая Оклахома" для UEFA Champions League 2006-2007 v0.1
Внимательно ознакомьтесь с readme внутри архива - там подробно описано, как устанавливать патч!
Raiker, ага... на сщет реестра это ты точно подметил... но, есть еще способ) открыв библеотеку gameux.dll ты там волшебным абсолютно образом найдешь тот чудесный XML, о котором ты писал выше) вот в нем, построчно находится вся информация об играх (там шикарный список игр, я о таих и не слышал), разработчик, дата выхода, описание.. остальное, конечно, типа версии файла уже черпается из самого .exe файла игры.. именно таким способом наш всеми любимый Half-Life 2, прекрасно там отображается в игровом проводнике.... вот думаю стоит внести коррективы именно в эту библеотеку...
когда-то это был первый пост...
Сегодня я начал свое небольшое расследование относительно того, как добавить дополнительную информацию к игре, которая не поддерживается Game Explorer (Игры). Я только начал разбираться в этом, поэтому только то, что я знаю точно.
Система такая. В идеале разработчик создает *.GDF файл - этот файл фактически представляет собой XML код. Этот файл можно создать как вручную (написав код в блокноте) либо через особый инструмент из состава DirectX SDK (последнее проще, там человеческий GUI). В этом файле прописывается все: описани еигры, разработчик, издатель, рейтинг, адрес на иконку (256х256), название, заголовок. В общем все то, что вы можете видеть в Game Explorer о других играх, поддерживаемых. Создав файл - *.GDF, разработчик должен интегрировать его либо в DLL библиотеку игры, либо в исполнительный EXE файл. Отдельно (сам по себе), GDF использован быть не может. После всего этого, разработчик (насколько я понимаю) прописывает базовую информацию об игре и адрес к файлу (библиотеке или исполнительному), содержащему GDF файл. Эта информация (об игре) хранится по следующему адресу:
[quote]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\Games[/quote]
Это в идеале. А теперь посмотрим на игры, которые не поддерживаются Game Explorer. Система работает следующим образом. Если игра не поддерживает Vista, то вы перетаскиваете ярлык игры в папку. Это добавляет базовую информацию в реестр (адрес смотри выше, только подраздел игры помещается не в Games, а в отдельным, новый раздел). Далее - опять же в идеале - система должна проверять дополнительную информацию об игре на сайте http://allgame.com и, при наличие таковой, скачивать. Тут начинается самое интересное =)
Возьмем пример S.T.A.L.K.E.R. Он не поддерживает Game Explorer + несмотря на то, что он присутствует в списках allgame.com, информация о нем не скачивается в Game Explorer. Здесь начинается все самое интересное, то, что мне хочется добиться.
В теории можно поступить так. Самостоятельно скомпилировать GDF файл с подробной информацией в игре. Засунуть его в DLL-пустышку. Далее прописать в реестре (см. выше) адрес к этой DLL. По логике вещей - информация должна отобразиться в Game Explorer. Чтобы не тратить времени зря, я просто прописал путь к исполнительному файлу Сапера, в котором хранится GDF файл Сапера. Как я (наивный) думал, Game Explorer отобразит под ярлыком S.T.A.L.K.E.R. информацию о Сапере. Не тут-то было, вообще 0 эмоций. Видимо, все не так просто.
Продолжение следует...
теперь посмотрим на игры, которые не поддерживаются Game Explorer. Система работает следующим образом. Если игра не поддерживает Vista, то вы перетаскиваете ярлык игры в папку. Это добавляет базовую информацию в реестр (адрес смотри выше, только подраздел игры помещается не в Games, а в отдельным, новый раздел). Далее - опять же в идеале - система должна проверять дополнительную информацию об игре на сайте
Возьмем пример S.T.A.L.K.E.R. Он не поддерживает Game Explorer + несмотря на то, что он присутствует в списках allgame.com, информация о нем не скачивается в Game Explorer. Здесь начинается все самое интересное, то, что мне хочется добиться.
В теории можно поступить так. Самостоятельно скомпилировать GDF файл с подробной информацией в игре. Засунуть его в DLL-пустышку. Далее прописать в реестре (см. выше) адрес к этой DLL. По логике вещей - информация должна отобразиться в Game Explorer. Чтобы не тратить времени зря, я просто прописал путь к исполнительному файлу Сапера, в котором хранится GDF файл Сапера. Как я (наивный) думал, Game Explorer отобразит под ярлыком S.T.A.L.K.E.R. информацию о Сапере. Не тут-то было, вообще 0 эмоций. Видимо, все не так просто.
Продолжение следует...[/code]
Dargalon, хм, надо будет посмотреть. Но это слишком, на мой взгляд, трудоемко. Вариант с пустышкой DLL и веткой реестра позволит фактически создавать всю информацию по игре и хоть распространять по интернету - абсолютно свободно. Нужно будет только скопировать в определенную папку DLL, подправить .reg и установить его. Хочу отработать этот вариант, если не получится начну копаться в gameux.dll
P.S. Сейчас качаю DirectX SDK и VS 2005 Express. Буду эксперементировать.
P.P.S. Я, кажется, понял, почему информация по Саперу не отобразилась в S.T.A.L.K.E.R. в случае, описанном выше. Там, кажется, имеет значение ID приложения. Он (ID) прописывается и в GDF, и в реестре. И вот по этой самой причине информация GDF от одного AppID никогда не отобразиься в игре с другим AppID. Но это все догадки, нужен VS и DX SDK, тогда опробую и скажу точнее.
Dargalon писал:Raiker, на сайте MSDN, я видел мануал для разработчиков игр... именно мануал по созданию этого файла для инициализации данных игры и отображение в игровом проводнике.....
Я сегодня этот мануал весь день изучаю, все изученное - на русском читай выше.
Файл, конечно, можно создать вручную, но с помощью DX SDK - куда легче.
Я так понимаю ты имел в виду не gameux.dll (я там ничего не нашел), а GameUXLegacyGDFs.dll? Посмотрел. Интересно там сделано. Описания там нет - только ссылка на него. Странно как-то там все, даже ссылки на рисунок нет (откуда он берется, спрашивается). Надо разбираться.
Что бы всем читателям темы было понятно, что я хочу сделать и как это будет работать.
Если мои эксперименты завершаться успешно, то созданием DLL-файла с интегрированным GDF (создается самостоятельно) и соответсвующим REG файлом можно будет установить поддержку игры для Game Explorer на любом компьютере с Vista.
Raiker, надеюсь в итоге у нас будет точная схема, с помощью которой можно будет легко добавлять инфу в игровой проводник... но скорее всего.. эта система, по которой все игры инициализируется, далека от идеала... похоже, что игоровой проводник, добавляет в себя только те игры, информация о которых (в виде WMID) встроена в библеотеку GameUXLegacyGDFs.dll... если разработчик игры не позаботился о наличии такого файла в игровом .exe, тогда нам придется вручную это дело монтировать... или по крайней мере ждать SP1, где наверное эту библеотеку обновят... или может выпустят отдельный апдейт...
Dargalon, верно, только вот вовсе не обязательно, чтобы GDF был встроен именно в игровой EXE. Он может быть встроен в любой исполняемый файл или любую библиотеку (DLL). А указывается этот файл - в реестре, насколько я понимаю, за него отвечает строковой параметр ConfigGDFBinaryPath. Так же в реестре прописывается параметр ApplicationId, который должен соответствовать (насколько я понял) этому параметру в GDF файле. Монтировать GDF в уже существующий EXE / DLL вряд ли получится. А вот создать абсолютно новый EXE в том же Visual Studio с встроенным туда как ресурсом GDF файлом - раз плюнуть. То есть последовательность действий будет такая:
* Создается GDF файл (либо через DirectX SDK, либо вручную) с полной информацией об игре и каким-либо (можно и просто сгенерировать) ApplicationID.
* В Visual Studio создается исполняемый файл или библиотека, куда как ресурс вставляется этот GDF файл. Компилируется.
* В реестре прописывается ConfigGDFBinaryPath (на тот скомпилированный в п.2 файл) и ApplicationId, равный тому, что был указан в GDF.
* В Game Explorer все должно отобразиться, как мы и хотели.
В общем завтра все скачаю и посмотрю что к чему. Если ты меня не опередишь ;)
Dargalon писал:надеюсь в итоге у нас будет точная схема, с помощью которой можно будет легко добавлять инфу в игровой проводник
Вот это вряд ли будет. Мой способ приведенный выше, даже если он каким-то чудом сработает, легким не назовешь. Слишком много инструментов нужно. А на то, что кто-нибудь напишет программу генерирующую GDF, компилирующего его в составе DLL и прописывающего в реестре автоматически () уповать не приходиться.
Скажите пожалуйста как мне картинку привезать к ярлыку в Game Explorer????????
Klerik112 писал:Скажите пожалуйста как мне картинку привезать к ярлыку в Game Explorer????????
Пока что проверенный способ только один: конвертнуть ее в формат ico с разрешением 256х256 и установить как обычную иконку для ярлыка.
А как её установить?
Klerik112 писал:А как её установить?
Ну вы блин даете. Windows 95 когда-нибудь пользовались? Ну вот, в Vista все так же ;)
Правый щелчок по ярлыку > Свойства > Сменить значок > выбираете ваш ICO. Далее, после того, как иконка примениться, просто перетаскиваете ее в Game Explorer.
А ну это я понял.Теперь кокой прогой сделать ico файл с разрешением256х256?
Raiker, если дашь точные указания то можно и программу попробовать написать...
Klerik112 писал:А ну это я понял.Теперь кокой прогой сделать ico файл с разрешением256х256?
Этого я не знаю. Google тебе да в помощь.
Ride писал:Raiker, если дашь точные указания то можно и программу попробовать написать...
Я сейчас как раз заканчиваю разбираться в всей этой кухне, остается понять как написать этот ключевой скрипт и уже смогу сообщить о результатах. Надеюсь что-нибудь да получиться, а там видно будет.
Ну что, мои опыты закончились полным провалом. В принципе я понимаю, что нужно делать, но проблема в том, что я - не программист. В общем, нужен человек понимающий, чтобы мог скомпилировать EXE или DLL файл с GDF / PNG / и описанием внутри. После того, как такой файл будет, уже можно двигаться дальше. Пока что у меня ничего не получилось. Если кто считает себя сильным в программировании и готов помочь (в принципе там элементарные основы) - пишите в ПМ.
достиг определенного прогресса. Сейчас докачиваю некоторые инструменты и потом точно скажу - работает это или нет. Если сработает то ближе к вечеру выложу подробный мануал как да что делать. Пока что остается только надеяться.
Уродны. Их VS 2005 C++ Express не поддерживает редактирование ресурсных скриптов ака RC. Нужна прошка. А у меня с прошкой диск битый... буду его мучить, я кажется в шаге до финишной прямой.
Добавлено: с грехом пополам ставлю VS 2005 Pro. Все что остается - скомпилить dll-ку и вперед...
Результаты.
Способ не заработал. Я еще буду разбираться почему и как. DLL c GDF и иконкой для STALKER была мною скомпилированна и прописана в реестре. Game Explorer это проигнорировал. Также еще один интересный нюанс был мною открыт. Если игра устаревшая и информация о ней берется из GameUXLegacyGDFs.dll, то вся информация прописывается в реестре (вплоть до описания, ссылки на картинку и т.п). А вот если вручную прописать эту информацию - она не принимается. В общем есть еще много в чем нужно разобраться, многое остается лично мне непонятным. Если будет какая-нибудь новая информация обязательно отпишусь.
Сегодня в 0:56 по Москве был совершен прорыв в области добавления собственной информации об игре. Дело в том, что я, совместно с Dasus, отыскали исходники скрипта для добавления информации в Game Explorer. Вся картина почти что прояснилась, но все еще остается куча вопросов, которые будут разрешены на свежую голову завтра утром.
Совместными усилиями были созданы:
* EXE файл-пустышка, содержащая GDF файл и 256х256 иконку. Мне кажется, что этот файл сделан полностью правильно.
* Патч, который должен устанавливать вышеуказанную EXE в Game Explorer. Пока что не работает.
Проблема пока неизвестна, пытаюсь разобраться. Видимо, где-то ошибка закралась. Патч взят из сэмлов, а вот почему он отказывается регистрировать нашу, а не оригинальную exe, пока неясно.
Черт побери, получилось! Не совсем так, как я хотел, получается патчится оригинальная exe игры, но - получилось!
datas/users/666-stalker_ge.jpg