Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

Beginnen aan C#, Direct X

Pagina: 1
Acties:

  • Meijuh
  • Registratie: December 2006
  • Laatst online: 17-03 21:08
Hoi,

Ik ben eerste jaars student op de UT heb net java achter de rug, maar wil toch eens gaan kijken naar programmeren in C# en gebruik maken van directX. Ik vraag me af hoe objecten in een spel herkend worden, neem nou bijvoorbeeld een programma zoals een wallhack of aimbot in bijvoorbeeld call of duty, hoe werkt zoiets? Het lijkt me dat het programma dat je schrijft gebruik moet maken van directX en dan objecten moet herkennen ofzo? Heeft iemand misschien een paar artikelen die hier over gaan?

Alvast bedankt

Asus EN8800GTS, Asus P5E, Intel E8400, 2x500gb Spinpoint (raid0), Zalman HP 600 watt, cnps 9500 led, creative xfi music, 4x1gb hyperX PC2 8500


  • beany
  • Registratie: Juni 2001
  • Laatst online: 16-11 14:01

beany

Meeheheheheh

Ten eerste, C# en D3D is tegenwoordig alleen nog te doen via XNA(google is your friend). Het 'echte' D3D gebeuren kan nog wel met de managed libraries, maar die worden niet meer ondersteund. Geen bug fixes, geen nieuwe features. Geen idee overigens of de managed dx libraries nog te downloaden zijn :?

Ten tweede, een aimbot of een wallhack analyseert de beelden niet. Een spel weet waar objecten zich bevinden in een 3D wereld. Ook als je multiplayer speelt. De lokatie is simpelweg bekend. Dan is het dus voor een aimbot eenvoudig werk om het wapen daar precies op te richten. Een spel weet de lokatie van objecten ook al is een object niet in beeld. Een server stuurt de lokatie namelijk gewoon door, zonder zich zorgen te maken of het object wel of niet zichtbaar is. Het wel of niet zichtbaar is pas van belang bij het renderen(wel tekenen, of niet). Al zijn er spellen die tegenwoordig wat slimmere algoritmes hebben die lokaties van objecten(spelers, voertuigen etc) niet sturen als het object erg ver van de speler vandaan is. Maar in een kleine map heeft dat weinig zin.

Wat betreft wallhacks, dat ligt wat moeilijker. Volgens mij moet je dan wel redelijk diep D3D in duiken, en moeilijker nog: anti-cheat software omzeilen(zoals punkbuster). Deze software is erop gespecialiseerd om dit soort zaken te herkennen/ontdekken. Dat geldt overigens ook voor de aimbot. Het maken van de aimbot zelf is niks aan, het ontwijken van anti-cheat software is de kunst!

Maar de vraag is nu: gaat je interesse uit naar het herkennen van objecten in een 2D stream(video, spelletje) of wil je cheats gaan maken?

In het geval van het 2e... je zal dat hier verder niet vinden, men is niet zo gecharmeerd van cheats-makers ;)

[ Voor 25% gewijzigd door beany op 25-06-2008 15:58 ]

Dagelijkse stats bronnen: https://x.com/GeneralStaffUA en https://www.facebook.com/GeneralStaff.ua


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
Tsja die ruikt eigenlijk naar "ik wil snel een cheat maken want dan ben ik super 1337"

bah, maar goed om het topic een kans te geven kijk inderdaad is naar XNA maar voordat je zover bent da tje iets kunt maken als Cod4 (of uberhaupt een 3D game met een net mvc-paradigma en zo opgezet dat niet alles onveranderbaar is) ben je wel een goede tijd verder (ook als UT vrees ik/heb ik aan de lijve ondervonden)

~ Mijn prog blog!


Verwijderd

Echt hulpzaam zijn jullie ook niet echt hoor precies alsof ie een atoomwapen wil maken in directX :) , kijk eens hier om te beginnen:

http://www.riemers.net

[ Voor 29% gewijzigd door Verwijderd op 25-06-2008 20:57 ]


  • beany
  • Registratie: Juni 2001
  • Laatst online: 16-11 14:01

beany

Meeheheheheh

Verwijderd schreef op woensdag 25 juni 2008 @ 20:56:
Echt hulpzaam zijn jullie ook niet echt hoor precies alsof ie een atoomwapen wil maken in directX :) , kijk eens hier om te beginnen:

http://www.riemers.net
Mja, dat is gewoon simpel google werk. Er zijn zat sites te vinden over DirectX en C#. Dus op linkjes zit hij ook niet te wachten en is ook niet echt de bedoeling op GoT ;)

Dagelijkse stats bronnen: https://x.com/GeneralStaffUA en https://www.facebook.com/GeneralStaff.ua


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
Verwijderd schreef op woensdag 25 juni 2008 @ 20:56:
Echt hulpzaam zijn jullie ook niet echt hoor precies alsof ie een atoomwapen wil maken in directX :) , kijk eens hier om te beginnen:

http://www.riemers.net
Riemers vond ik zelf inderdaad een erg goede bron om evne het 3d / 2d gedeelte te leren. Maar er is wel veel kritiek op de manier hoe hij het doet. Het zijn vaak niet de meest nette/simpele manieren waarop hij het doet. Hoewel als je al wat gestructureerde IT kennis hebt (bijvoorbeeld al wat basis vakken OOP en Software Design) je wel goed zit omdat je het dan meer als compacte code voorbeelden gaat beschouwen.

(een van de kritieken is dat hij altijd alles in 1 bestand wil stoppen, wat meestal niet handig is).

verder is ziggyware.com erg goed, een XNA fan site van een Microsoft MVP erg veel tutorials en ook een redelijk goed bezocht forum mocht je even vast zit. Er is ook een #xna channel op een irc server dat hulpzaam is moet je maar even googlen welke server het was (niet quakenet iig)

~ Mijn prog blog!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:04

.oisyn

Moderator Devschuur®

Demotivational Speaker

Meijuh1 schreef op woensdag 25 juni 2008 @ 15:48:
Ik vraag me af hoe objecten in een spel herkend worden, neem nou bijvoorbeeld een programma zoals een wallhack of aimbot in bijvoorbeeld call of duty, hoe werkt zoiets?
Een aimbot analyseert de gegevens van het spel (netwerk-verkeer, geheugen van de app zelf, d3d calls) om te bepalen waar enemies zich bevinden, en genereert dan bepaalde mouse events om exact goed te richten. Voor een wallhack is het het handigst als je tussen de applicatie en de videokaart in gaat zitten ofwel aan de front-end (tussen app en d3d.dll) ofwel aan de back-end (d3d en de videodriver, moeilijker te detecteren voor de app) en de uitvoer aanpassen (muren transparant maken, enemies over alles heen tekenen, dat soort dingen).

In feite heb je aan netwerkverkeer voldoende informatie. Als je een viewer kan maken gebaseerd op die info kun je alle cheats compleet ondetecteerbaar op een andere PC laten plaatsvinden, zolang je ervoor zorgt dat het resultaat van je gecheat niet opzichtelijk wordt (het valt nou eenmaal op als je elke keer in staat bent om die kogels precies tussen de ogen te laten belanden de eerste frame dat je de enemy zou kunnen raken :Y))

Best interessante materie. Moreel verwerpelijk, dat ook :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Mozin
  • Registratie: November 2000
  • Laatst online: 04-06-2023

Mozin

Gewoon een gamer

Welliswaar pre-XNA, maar als je thuis wil raken in C# en tegelijk wat game programming materie wil leren is onderstaande link/boek een aanrader. Erg vlot geschreven en met duidelijke (game) voorbeelden, vooral C# dingen uitgelegd krijgen met game voorbeelden vond ik erg relaxed (en een goede afwisseling t.o.v.MSDN :p).

http://www.amazon.com/Beg...oks&qid=1214498676&sr=8-1

  • MarCreative
  • Registratie: Februari 2008
  • Laatst online: 29-09 17:02
roy-t schreef op woensdag 25 juni 2008 @ 20:49:
Tsja die ruikt eigenlijk naar "ik wil snel een cheat maken want dan ben ik super 1337"

bah, maar goed om het topic een kans te geven kijk inderdaad is naar XNA maar voordat je zover bent da tje iets kunt maken als Cod4 (of uberhaupt een 3D game met een net mvc-paradigma en zo opgezet dat niet alles onveranderbaar is) ben je wel een goede tijd verder (ook als UT vrees ik/heb ik aan de lijve ondervonden)
Ik denk dat dit niet zo zeer te maken heeft met een "cheat" maken. Ik weet zelf uit ervaring dat het maken van dit soort dingen leuk is om te doen, omdat dit soort "projecten" niet al te groot worden en gewoon lekker in je vrije tijd te doen zijn.

Ik heb het ook wel eens geprobeerd om een aim-bot te maken, dit is niet gelukt. Wat ook hier boven stond: Het heeft vrij weinig te maken met D3D maar met de coördinaten die binnen komen op de computer en die het geheugen gebruiken.

Ik denk, dat als je echt een snelle aimbot wilt maken dat je dan het netwerk naar jou computer van het spelletje moet gaan sniffen. Dit kun je vinden op google. Kijk dan eens wat voor informatie er binnen komt en hoe je dit kunt gaan gebruiken.

Ik zou persoonlijk niet weten hoe je dan verder moet, maar je weet in iedergeval dan wel waar de vijanden zich bevinden.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:04

.oisyn

Moderator Devschuur®

Demotivational Speaker

Voor dat soort experimenten zou ik een game als Quake 3 oid pakken, waar je de source in principe gewoon van hebt, zodat het bekend is hoe het netwerkprotocol werkt en hoe het beeld opgebouwd wordt.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1