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.
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.
Id tech 2 tilbyr to gjengivelsesmodi for 3d, enten via skjermkortet eller beregnet av prosessoren. I sin første versjon klarte Quake1 bare prosessorgjengivelse.
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.
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 :
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.
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.
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.
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.
Karakterene belyses jevnt, med en farge som avhenger av deres posisjon; denne fargen kommer fra en struktur som lagrer omgivelsesbelysningen i 3D. (= "lightvol")
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.
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.
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 (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 (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 (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 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.
Det er selvfølgelig mange andre modifikasjoner på motoren: