Id Tech 2

Id Tech 2

Informasjon
Utviklet av id-programvare
Første versjon 1997
Innskudd github.com/id-Software/Quake-2
Skrevet i C , montør
Operativsystem Microsoft Windows og Linux
Miljø Hjemmecomputer , Macintosh , PlayStation 2 , Dreamcast , Amiga og PlayStation
Type Spillmotor
Tillatelse GNU General Public License
Nettsted www.idsoftware.com/business/idtech2

Kronologi av versjoner

Den id Tech 2 er en video spillmotor utviklet av id Software . Det etterfølger Tech 1-id-en som brukes til Doom- spillet . Initiert for spillet Quake (1996) og forbedret for spillet Quake II (1997). I henhold til utviklingen ble den kalt Quake-motor , deretter Quake II-motor , og i 2007 omdøpte id Software sitt utvalg av motorer, og denne versjonen tar det endelige navnet på id Tech 2. Artikkelen tar for seg de to versjonene (for Quake og Quake II ), versjoner som har mye kode til felles.

Historisk

Grunnleggende om id Tech 2 ble opprettet i 1996 med Quake-motoren for Quake- spillet . John Carmack gjorde det meste av programmeringsarbeidet der, med hjelp av Michael Abrash , en spesialist innen algoritmiske optimaliseringer og assembler.

Samme år ble koden til nettverksdelen, da bare tilpasset de lave ventetidene til lokale nettverk , fullstendig revidert for å operere på et mindre pålitelig og langsommere nettverk enn Internett . Dette er grenen som heter QuakeWorld (Desember 1996), produsert av John Carmack med assistanse fra John Cash og Christian Antkow .

Den originale Quake- motoren gjengir all programvare. John Carmack eksperimenterer med flere dedikerte kjørbare filer som støtter forskjellige maskinvareakselerasjoner (for eksempel VQuake, for å støtte Vérité 1000 Rendition- brikken til 3D Blaster- kortet ), og i slutten av januar 1997 ble det opprettet en generell OpenGL- støtte (GLQuake), som deretter ble støttet av noen kort (inkludert 3dfx Voodoo ).

På slutten av 1997 ble Quake II publisert. Quake II-motoren skyldes hovedsakelig konvergensen av koden til de forskjellige grenene . Strukturelle endringer ble gjort, inkludert splitting av de forskjellige aspektene av motoren i flere dynamiske biblioteker som skiller for eksempel den logikken som er spesifikk for spillet fra resten av motoren .

De forskjellige versjonene ble gitt ut suksessivt under GPL i 1999 (Quake engine), deretter i 2001 (Quake 2 engine).

I 2007 omdøper id Software sitt utvalg av motorer, og formelt tar Quake II-motoren navnet id Tech 2, og de andre mellomversjonene siden Doom-motoren ( id Tech 1 ) er trukket ut av serien.

Teknisk

Programvare maskinvare

Id tech 2 tilbyr to gjengivelsesmodi for 3d, enten via skjermkortet eller beregnet av prosessoren. I sin første versjon klarte Quake1 bare prosessorgjengivelse.

BSP aksel

Den dekorasjoner er inndelt i henhold til en BSP (Binary plass partisjone) treet : et hierarki av plan å dele inn plass i to helt separate halvdeler. Planer introduseres også langs kartets yttervegger. Delsonene som således er definert av planene kalles bladet  : det er de som inneholder kartobjektene. Tomme ark inneholder den synlige overflaten (polygoner) og faste ark inneholder stive volumer (børster).

Det er lett å rekursivt vite på hvilken side av et plan et punkt (her kameraet) er, og å finne i hvilket blad det er plassert. Vi får listen over synlige blad (se pvs). Ved å følge planene til BSP-treet som skjærer verden, kan vi ha en perfekt sortering av blad fra det nærmeste til lengst fra kameraet. Denne z-bestillingen er nødvendig for å optimalisere gjengivelsen av programvaren.

PVS eller potensielt synlig sett

Mens Id Tech 1 beregner okklusjon i sanntid, beregner Id Tech 2 ark okklusjon på forhånd ved hjelp av portaler under kartkompilering. Hvert ark inneholder en liste over synlige ark. Dette begrenser gjengivelsen av skjult geometri betraktelig.

Dette er hvordan den Id Tech 2 gjengi rørledning verk :

  1. klysten på kameraet krysser bsp med en z-ordning for å eliminere bladene utenfor synsfeltet. Okkluderte ark som ikke er inkludert i listen over synlige ark elimineres også;
  2. motoren blir bedt om å synliggjøre alle polygonene i disse arkene;
  3. i gjengivelse av "programvare" blir polygonene klippet sammen før de gjengis (se GEL);
  4. polygonene blir sendt til skjermkortet (i maskinvaremodus) eller tegnet av prosessoren (i programvaremodus);
  5. tegnene blir gjengitt enklere, direkte i z-buffer (i programvare som i maskinvare).

Penselkollisjonskart

En samling av konvekse faste stoffer ("børster") er lagret i bsp så vel som i de dynamiske modellene, og gjør det mulig å beregne kollisjonene mellom tegnene og arkitekturen.

Gjengitt av GEL

Denne teknikken fullfører beregningen av okklusjonen til nærmeste piksel for gjengivelsesmodus for programvare.

For ikke å vise veggdelene skjult av en nærmere vegg, brukes en Globel Edge List: den lagrer listen over kanter på alle trekanter som allerede er vist, og hver nye trekant blir " klippet " ( klippet ) av disse segmentene: bare de synlige delene av disse trekantene vises deretter. Dette klippet er optimalisert ved hjelp av et 2d bsp-tre.

Denne utklippsmetoden vil være tilgjengelig i skyggegjengivelse for id tech 4.

Tekstur, overflatecache

Veggene vises med en basis tekstur og et lyskart . For ikke å vise alt to ganger, genereres en overflate ved å blande tekstur og lyskart som brukes av en vegg.

Overflater lagres i en cache for å gjenbruke de tidligere beregnede, og for å frigjøre dem hvis de ikke lenger brukes.

Mindre overflater blir generert for lengre vegger ved hjelp av mipmaps i tekstur (lightmaps er allerede i lav oppløsning), for å spare minne og unngå et fenomen med aliasing / pixelering av teksturer sett for langt unna.

ZBuffer og karakter

Under visningen av landskapet fylles også en Z-buffer. Den brukes ikke under gjengivelse av naturen, men under gjengivelse av tegn og andre dynamiske 3D-objekter, for å skjule dem av naturen når det er nødvendig.

Sett på avstand vises ikke tegnene i 3D, men av et system av voxels  : et stort punkt hvis farge, uniform, kommer fra karakterens tekstur.

Dynamisk belysning

Karakterene belyses jevnt, med en farge som avhenger av deres posisjon; denne fargen kommer fra en struktur som lagrer omgivelsesbelysningen i 3D. (= "lightvol")

Visning av trekanter i prosessormodus

Den lave gjengivelsen av trekanter er skrevet i samleren. Den bruker FPU for alle perspektivkorreksjon og interpolasjonsberegninger for teksturkoordinater, på grunn av den begrensede mengden heltallregistre.

Bemerkelsesverdige spill

Liste over bemerkelsesverdige spill som bruker motoren, eller en fornyet versjon, av Quake eller Quake II-spillet. Mods er ikke oppført her, motorversjoner har utløst hundrevis av mods.

Avledede gratis motorer

De 21. desember 1999, John Carmack fra id Software lanserer kildekoden for Quake-motoren på Internett under vilkårene i GNU General Public License , slik at programmerere kan endre motoren og legge til nye funksjoner i den. Snart begynte de første modifiserte versjonene av motoren å sirkulere på Internett.

Noen av disse endringene er tilgjengelige på Live CD-er . Disse inkluderer et gratis operativsystem samt QuakeWorld- klienten . Noen originale filer fra Quake CD ( pak0.pakog pak1.pak) må imidlertid kopieres til disse Live CD-ene for at de skal være i full drift. QuakeEngine-motoren har faktisk gått over i det offentlige, mens de grafiske elementene (teksturer, grafikk, etc.) har vært ID Software.

DarkPlaces

Darkplaces  (in) er en modifikasjon av motoren som forbedrer nettverkskoden (netcode), legger til støttekart over Quake III , en gjengivelsesmotor som er fullstendig omgjort (belysning og skygger beregnet i sanntid, bump-kartlegging , styring av OpenGL-skyggeleggere osv.), en innebygd nettleser og legger til støtte for Ogg Vorbis .

Den er basert på versjonen av Id Tech 2 som ble gitt ut av Id Software og er kompatibel med Linux, Mac OS X og Windows. Det brukes spesielt av Nexuiz , deretter Xonotic.

Den er utviklet av Forest Hale, kjent som "LordHavoc", samt et fellesskap av utviklere.

ezQuake

ezQuake  (in) er en modifisert versjon av FuhQuake-motoren. Kompatibel med MacOs og FreeBSD, støtter den QuakeTV og multiview, gir flere muligheter for servere, nye menyer og integrerer en mp3-spiller, en nettleser for servere og innspilte spill.

ProQuake

ProQuake  (en) er basert på koden utgitt av Id. Denne moden, under GPL-lisens, fokuserer på å forbedre flerspillermodus (skuddnøyaktighet, etc.) og anti- cheat- beskyttelse,men det tillater også:

Den er utviklet av JP Grossman (aka "Mephistopheles"). Den siste versjonen (3.50 av21. september 2002) er kompatibel med Quake og NetQuake, men ikke med QuakeWorld.

Telejano

Telejano er en modifikasjon avledet fra TomazQuake-motoren som tilfører mange nye elementer som en partikkelmotor, lyseffekter, gnister ved kollisjonsslag, eksplosjoner; for vann: bølge- og kaustiske effekter  ; røykstier bak magmakuler og raketter; men også mer realistisk blod, tåke. Alt dette uten noen endring av de originale kartene.

Den siste versjonen (kunngjort som den endelige versjonen av prosjektet) er 8.01 av 7. januar 2005.

Andre kjente motorer

Andre motorer

Det er selvfølgelig mange andre modifikasjoner på motoren:

Merknader og referanser

  1. (in) "  id Software's Technology Licensing Program  "http://www.idsoftware.com/ (åpnet 12. september 2008 )  : "Mange mennesker er klar over at original QUAKE Var offentlig kildekode utgitt av id i 1999 under GNU Allmennheten. "
  2. (in) Slashdot, 22. desember 2001 Quake 2 kildekode utgitt under GPL
  3. (in) "  id Software's Technology Licensing Program  "http://www.idsoftware.com/ (åpnet 12. september 2008 )  : "[..] fra og med desember 2001, denne kritikerroste motoren er disponibel sous le GNU General Public License . "
  4. (in) "  3D Engine: Quake  "http://www.mobygames.com/home (åpnet 5. september 2008 )
  5. (in) "  3D Engine id Tech 2  "http://www.mobygames.com/home (åpnet 5. september 2008 )
  6. (in) "  LordHavoc's Darkplaces Quake  " (åpnet 6. september 2008 )
  7. (in) "  ezQuake  " , men 26. 2007 (åpnet 22. oktober 2009 )
  8. (in) "  ProQuake  " (åpnet 6. september 2008 )
  9. (in) JP Grossman, "  Readme versjon 3.50  " ,21. september 2002(åpnet 6. september 2008 )
  10. (in) Telejano, "  Telejano  " (åpnet 5. september 2008 )
  11. (in) C. Hollemeersch, "  Tenebrae  " (åpnet 5. september 2008 )
  12. (in) Tomaz, "  Tomaz 'Corner  " (åpnet 5. september 2008 )
  13. (in) "  ezQuake  " ,26. mai 2007(åpnet 5. september 2008 )
  14. (in) John Fitzgibbons, "  FitzQuake  " (åpnet 5. september 2008 )
  15. (in) Jozsef, "  JoeQuake  " (åpnet 5. september 2008 )
  16. (in) "  MacGLQuake  " (åpnet 5. september 2008 )
  17. (in) "  Pocket Quake  " (åpnet 5. september 2008 )
  18. (in) "  QuakeForge  " (åpnet 5. september 2008 )
  19. (in) "  ZQuake  " (åpnet 5. september 2008 )

Eksterne linker