если кому интересно, зачем оно мне нужно - хочу написать программу, которая в том числе будет находить все запущенные игры. личный проект, будем считать что просто захотелось для себя написать. программы, юзающие DirectX я в общем и целом отсекать научился, на Flash игры мне плевать, а вот с OpenGL не обладаю пока информацией. если что - интересует только и исключительно винда, то что на некоторых других платформах OpenGL еще дышит, я знаю.
ну и если вдруг кто знает еще какую игровую библиотеку, на основе которой реальные игры создают, тоже благодарен буду за информацию, хотя думаю что это уже из области фантастики...
[Ответ]
В своё время читал книжкку вот этого дядечки http://steps3d.narod.ru/.
Он вроде знает толк в OpenGl, открою секрет, что ему даже можно на почту написать, и если вопрос адекватный он ответит. Кстати, думаю ему можно ответ переадресовать
P.S. Что хорошо, библиотеки, так-же как и код на которых человек с вышеприведённого сайта, написан на C++. Так что разбираться будет проще.
[Ответ]
Spectator 16:52 29.03.2014
Сообщение от Hopkroft:
P.S. Что хорошо, библиотеки, так-же как и код на которых человек с вышеприведённого сайта, написан на C++. Так что разбираться будет проще.
не-не, я игры уже понаписался, по взрослому, желание написать "ыгру мячты" у меня давно отсутствует как класс. я пишу небольшую программулину, которая позволит немного организовать установленные игры.
соответственно задача, в том числе, такая - не заставлять пользователя вручную добавлять каждую игру.
человеку понять что игра - это игра, а Delphi или Word - это прикладные программы, как бы несложно. встал вопрос - как научить программу отвечать на вопрос - запущенный процесс принадлежит игре или не игре. ну или установленная программа, из списка, который тоже не так сложно получить, это игра или не игра.
[Ответ]
manifest 17:45 29.03.2014
Сообщение от Spectator:
Товарищи, может кто-нибудь более менее веско ответить на вопрос: используется ли в современных PC (Windows) играх вообще и в принципе OpenGL?
Мы используем, в том числе и на Windows.
Сообщение от Spectator:
то что на некоторых других платформах OpenGL еще дышит, я знаю
Он не то что дышит, он общепринятый стандарт, в отличаи от DirectX
[Ответ]
Spectator 18:10 29.03.2014
Сообщение от manifest:
Мы используем, в том числе и на Windows.
Он не то что дышит, он общепринятый стандарт, в отличаи от DirectX
холивары, повторюсь, мне совершенно не интересны. вот если ты так утверждаешь, то можешь привести реальный пример современной коммерчески успешной (да хотя бы со страницей на Википукии) виндовой игры, которую в загруженном состоянии невозможно поймать за хвост на использовании директиксовых библиотек?
[Ответ]
Hopkroft 19:31 29.03.2014
Spectator, слушай, вот ты объясни. Ты собираешься структурировать уже имеющиеся игры или установочный пакет отнести к какому-то классу приложений? manifest, слышал что-нибудь за Mantle от AMD? Судя по видюхам вещь интересная.
[Ответ]
Spectator 19:42 29.03.2014
Сообщение от Hopkroft: Spectator, слушай, вот ты объясни. Ты собираешься структурировать уже имеющиеся игры или установочный пакет отнести к какому-то классу приложений?
я хочу вывести пользователю список установленных у него игр. ну там дальше он будет использоваться для определенных целей, это не конечная цель программы, безусловно.
мне нужно название и исполняемый файл, по сути. я в курсе уже что есть некоторые проблемы, часто по ссылке из меню Пуск запускается Launcher, который, в свою очередь, запускает уже игру... но это уже следующий этап.
смысл, если вкратце, в том что у меня есть список программ, надо получить из него список игр. путем выкидывания не-игр.
под программой понимается полный путь к исполняемому файлу.
[Ответ]
Hopkroft 19:55 29.03.2014
Spectator, это типа анализировать имеющиеся установленные программы, находить их вхождение с имеющимся списком игр и выводить юзеру?
[Ответ]
Spectator 19:58 29.03.2014
Сообщение от Hopkroft: Spectator, это типа анализировать имеющиеся установленные программы, находить их вхождение с имеющимся списком игр и выводить юзеру?
без попытки искать "Games" в строке пути, безусловно, это просто пример для того чтобы понятно было что я хочу получить))
на данный момент я успешно реализовал просмотр путей используемых библиотек на предмет присутствия там *\d3d*, нужно либо расширить этот критерий, либо или убедиться что он достаточен...
задача 100% идентификации не стоит, безусловно, это попросту невозможно. никто не мешает написать библиотеку d3d.dll, которая будет умножать голубей на овец... Skype использует DirectX и игрой при этом не является. но это не страшно... важнее НЕ пропустить игры, вернее не выкинуть из списка то что игрой является.
вариант - не выкидывать ничего - не подходит)))
[Ответ]
manifest 20:54 29.03.2014
Сообщение от Spectator:
можешь привести реальный пример современной коммерчески успешной (да хотя бы со страницей на Википукии) виндовой игры, которую в загруженном состоянии невозможно поймать за хвост на использовании директиксовых библиотек?
это мне не интересно гуглите
Сообщение от Hopkroft: manifest, слышал что-нибудь за Mantle от AMD? Судя по видюхам вещь интересная.
Не слышал. Я впринципе не понимаю, зачем огр***** для себя лишних проблем используя ограниченые архитектурой/платформой технологии.
[Ответ]
manifest 20:58 29.03.2014
Сообщение от Spectator:
на данный момент я успешно реализовал просмотр путей используемых библиотек на предмет присутствия там *\d3d*
потрясающе, Вы скоро реализуете ldd с гуи, брекджеком и женщинами )
[Ответ]
X0R 21:00 29.03.2014
Spectator, а список импорта просматривать не вариант?
[Ответ]
aerin 21:08 29.03.2014
X0R, не факт, что поможет, очень часто графическая подсистема выносится в отдельные dll, придется просматривать все dll в папке.
[Ответ]
Spectator 21:15 29.03.2014
Сообщение от X0R: Spectator, а список импорта просматривать не вариант?
да блин. это - не вопрос. его я и просматриваю.
вопрос в другом - ЧТО в нем искать.
сейчас я ищу то что уже написал, результат меня удовлетворяет. но наверняка есть какой-то класс игр, которые под это условие не подпадут. т.е. мне нужны реальные примеры игр, которые не используют DirectX, современные.
может кто с этим разбирался, кто работает в игровой конторе, быть может... и знает наверняка - есть ли сегодня игры, не дергающие в конечном итоге DirectX. кроме, понятно, самых простейших, типа сапера. они неинтересны.
[Ответ]
X0R 21:15 29.03.2014
aerin, а для этого сделать галочку - "Расширенный анализ" [Ответ]
Spectator 21:17 29.03.2014
Сообщение от aerin: X0R, не факт, что поможет, очень часто графическая подсистема выносится в отдельные dll, придется просматривать все dll в папке.
не в папке. смотреть надо список используемых процессом библиотек. это, повторюсь, не проблема. вопрос - что там искать.
какие внешние библиотеки сигнализируют что программа - игра.
[Ответ]
X0R 21:32 29.03.2014
Сообщение от Spectator:
что там искать.
Direct3DCreate* и какой нить glEnable, в инете предлагают разные способы инициализации OpenGL, но наверняка во всей этой чехарде есть что то общее.
[Ответ]
Spectator 21:35 29.03.2014
Сообщение от X0R: Direct3DCreate* и какой нить glEnable, в инете предлагают разные способы инициализации OpenGL, но наверняка во всей этой чехарде есть что то общее.
это функции. до такой степени я заморачиваться не хочу. мне хватит библиотек.
если использует DirectX - это игра. сейчас так.
мне интересно - есть ли реальные современные игры, которые используют только OpenGL, без DirectX (у меня таких вот не нашлось) или вообще что-то кроме даже как DirectX так и OpenGL.
[Ответ]
silly 21:53 29.03.2014
Сообщение от Spectator:
но наверняка есть какой-то класс игр, которые под это условие не подпадут. т.е. мне нужны реальные примеры игр, которые не используют DirectX, современные.
Емнип, quake2+ всегда использовал directx то ли для звука то ли еще зачем-то. Добавь детектирование sdl/openal/fmod/miles.
[Ответ]
silly 22:01 29.03.2014
Сообщение от X0R: Direct3DCreate* и какой нить glEnable, в инете предлагают разные способы инициализации OpenGL, но наверняка во всей этой чехарде есть что то общее.
Системные требования:
•Microsoft® Windows® XP SP2 / Vista / 7 / Linux / Mac OS
•процессор 1.5 ГГц
•1.0 Гб оперативной памяти
•1.5 Гб свободного места на жестком диске
•видеокарта совместимая 128 Мб памяти (NVIDIA GeForceFX или ATI Radeon 9600)
•звуковое устройство 16 бит, совместимое с DirectX®
•устройство для чтения DVD-дисков •DirectX® 9.0c
Сообщение от silly:
Добавь детектирование sdl/openal/fmod/miles.
ну вот я посмотрел что такое SDL
загрузил OpenTTD (игра из списка внизу).
она использует DirectX...
а мне надо чтобы игра не использовала DirectX...
[Ответ]
Так тебе нужна тулза, которая будет висеть, скажем, хуком на CreateProcess и определять игра это или не игра, или тебе нужен сканер .exe файлов на диске. Это разные задачи.
[Ответ]
Spectator 22:24 29.03.2014
Сообщение от aerin:
Ты ж раньше писал, что
Так тебе нужна тулза, которая будет висеть, скажем, хуком на CreateProcess и определять игра это или не игра, или тебе нужен сканер .exe файлов на диске. Это разные задачи.
да не важно это всё. и сканер процессов и сканер exe - это делается элементарно. задача - определить является ли exe или процесс игрой. достаточно даже процесса, из него вычленить можно больше информации. программы, которые реально не запускаются, особо и не интересны.
список запущенных процессов и используемых ими модулей я уже получаю, это реализовано и работает.
[Ответ]
Системные требования:
•Microsoft® Windows® XP SP2 / Vista / 7 / Linux / Mac OS
•процессор 1.5 ГГц
•1.0 Гб оперативной памяти
•1.5 Гб свободного места на жестком диске
•видеокарта совместимая 128 Мб памяти (NVIDIA GeForceFX или ATI Radeon 9600)
•звуковое устройство 16 бит, совместимое с DirectX®
•устройство для чтения DVD-дисков •DirectX® 9.0c
Ага. Directx в сущности часть api винды. Получается, даже если в самом приложении не используется directx, он почти наверняка дергается в каком-нибудь слое совместимости.
[Ответ]
это понятно, самый дубовый способ.
есть игры, замечательно живущие в окне, есть программы, замечательно работающие в FullScreen.
когда я написал первый вариант, проверяющий ЭТО, пошел курить и, вернувшись, обнаружил что у меня запустилась игра... это был screensaver.
после этого я понял что это слишком дубовый вариант.
[Ответ]