SDK за наслагвания в играта

Малкото информация, която успях да изкопая за разработването на наслагвания в играта (подобно на това, което прави Steam), споменава, че трябва да прихващам повикванията на функцията за размяна на рамки на API на графики и да закача моята собствена рутина за рисуване в нея.

Изглежда, че това прави Mumble (VoIP за игри). Тъй като никога не съм правил нещо, което включва закачане, и тъй като всъщност нямам много опит с DirectX, се чудя дали има някакъв SDK или дори просто по-четлив пример от Mumble, който също прилага въвеждане, който демонстрира как да внедрите интерактивно наслагване в играта. Mumble е страхотен, но изглежда не мога да се замисля за него, особено за по-интересните неща, които прави, за да закачи правилно нещата си.

Освен това, ако имате по-подробна информация как да направите това на Mac и Linux... :-)


person Ivan Vučica    schedule 07.09.2010    source източник


Отговори (2)


Може би GLIntercept може да ви даде малко вдъхновение. Той предоставя файл openGL.dll, който поставяте в папката на приложението си. Windows зарежда тази dll вместо тази на system32 поради правилата за приоритет. GLIntercept препраща всички повиквания към dll на system32, но междувременно ги регистрира всички. Така че можете да имплементирате свой собствен glSwapBuffers(), който изобразява още някои неща и след това препраща повикването.

Изходният код също е наличен.

Подкрепям въпроса ви и се интересувам от бъдещите ви открития... не се колебайте да публикувате отново, когато имате повече информация :)

person Calvin1602    schedule 09.09.2010
comment
Благодаря :-) За съжаление, GLintercept (и еквивалентни методи за DX), както ги описвате, не са това, което търся; Бих искал да инжектирам функциите във всяка игра, която стартира. Въпреки това изглежда като този свързан въпрос (както е предложено от StackOverflow): stackoverflow.com/questions/1994676/ изглежда съдържа отговора. - person Ivan Vučica; 12.09.2010

  • Започнете, като проектирате вашето наслагване, без да прихващате графичен API. Имайте предвид, че въвеждането на ключ трябва да използва глобални кукички.
  • Интегрирайте го в приложението с помощта на dll за прихващане на Direct3D. Google, за да извлечете основен код.

Редактиране:

person tibur    schedule 07.09.2010
comment
Желаете ли да споделите конкретна връзка? Direct3D interceptor dll не връща никакви разумни резултати чрез Google. - person Ivan Vučica; 08.09.2010
comment
Прокси/прихващащи DLL файлове, поставени в папката на приложението, не са това, което търся, тъй като бих искал да мога да повлияя на всяка игра, стартирана на машината. Изглежда, че този въпрос може да съдържа отговора, който търся: stackoverflow.com/questions/1994676/ - person Ivan Vučica; 12.09.2010