Id Tech 2

Id Tech 2

Information
Udviklet af id-software
Første version 1997
Depositum github.com/id-Software/Quake-2
Skrevet i C , montør
Operativ system Microsoft Windows og Linux
Miljø Hjemmecomputer , Macintosh , PlayStation 2 , Dreamcast , Amiga og PlayStation
Type Spilmotor
Licens GNU General Public License
Internet side www.idsoftware.com/business/idtech2

Kronologi af versioner

Den id Tech 2 er et videospil udviklet af id Software . Det efterfølger Tech 1-id'et, der bruges til Doom- spillet . Indledt til spillet Quake (1996) og forbedret til spillet Quake II (1997). Ifølge dens udvikling blev den successivt udpeget Quake-motor , derefter Quake II-motor , og i 2007 omdøbte id Software sit udvalg af motorer, og denne version tager det endelige navn på id Tech 2. Artiklen handler om de to versioner (for Quake og Quake II ), versioner der har meget kode til fælles.

Historisk

Grundlæggende om id Tech 2 blev oprettet i 1996 med Quake-motoren til Quake- spillet . John Carmack udførte det meste af programmeringsarbejdet der ved hjælp af Michael Abrash , en specialist inden for algoritmiske optimeringer og samlere .

Samme år blev koden til netværksdelen, der kun tilpasset de lave latenstider i lokale netværk , revideret til at arbejde på et mindre pålideligt og langsommere netværk end Internettet . Dette er grenen ved navn QuakeWorld (December 1996), produceret af John Carmack med hjælp fra John Cash og Christian Antkow .

Den originale Quake- motor gør al gengivelse i software. John Carmack eksperimenterer med flere dedikerede eksekverbare filer, der understøtter forskellige hardwareaccelerationer (for eksempel VQuake, for at understøtte Vérité 1000 Rendition- chip på 3D Blaster- kortet ), blev der i slutningen af ​​januar 1997 produceret en generisk OpenGL- support (GLQuake), der derefter blev understøttet af nogle kort (inklusive 3dfx Voodoo ).

I slutningen af ​​1997 blev Quake II offentliggjort. Quake II-motoren skyldes hovedsageligt konvergensen af ​​koden for de forskellige grene . Der blev foretaget strukturelle ændringer, herunder opdelingen af ​​de forskellige aspekter af motoren i flere dynamiske biblioteker , der for eksempel adskiller den logik, der er specifik for spillet, fra resten af ​​motoren .

De forskellige versioner blev frigivet successivt under GPL i 1999 (Quake engine), derefter i 2001 (Quake 2 engine).

I 2007 omdøber id Software sit udvalg af motorer, og formelt tager Quake II-motoren navnet id Tech 2, og de andre mellemversioner, da Doom-motoren ( id Tech 1 ) trækkes tilbage fra området.

Teknisk

Software / hardware

Id tech 2 tilbyder to gengivelsestilstande til 3d, enten via grafikkortet eller beregnet af processoren. Quake1 administrerede kun, i sin første version, processorgengivelse.

BSP aksel

Dekorationerne er opdelt efter et BSP- træ (binær rumpartitionering): et planhierarki opdeler rummet i to helt separate halvdele. Planer introduceres også langs kortets ydervægge. De underzoner, der således er defineret af planerne, kaldes bladet  : de er dem, der indeholder kortets objekter. Tomme ark indeholder den synlige overflade (polygoner), og faste ark indeholder stive volumener (børster).

Det er let at vide rekursivt på hvilken side af et skud et punkt (her kameraet) er, og at finde i hvilket blad det er placeret. Vi får listen over synlige blade (se pvs). Ved at følge planerne for BSP-træet, der deler verden, kan vi få en perfekt sortering af blade fra det nærmeste til det længste fra kameraet. Denne z-ordning er nødvendig for at optimere softwaregengivelsen.

PVS eller potentielt synligt sæt

Mens Id Tech 1 fuldt ud beregner okklusion i realtid, beregner Id Tech 2 arkokklusion ved hjælp af portaler under kortkompilering. Hvert ark indeholder en liste over synlige ark. Dette begrænser gengivelsen af ​​skjult geometri betydeligt.

Dette er, hvordan Id Tech 2 gengive pipeline værker :

  1. kameraets frustum krydser bsp med en z-ordning for at eliminere bladene uden for synsfeltet. Okkluderede ark, der ikke er med på listen over synlige ark, elimineres også;
  2. motoren instrueres i at synliggøre alle polygoner indeholdt i disse ark;
  3. i "software" -gengivelse klippes polygonerne sammen, før de gengives (se GEL);
  4. polygoner sendes til videokortet (i hardwaretilstand) eller tegnes af processoren (i softwaretilstand)
  5. tegnene gengives mere enkelt, direkte i z-buffer (i software som i hardware).

Pensel CollisionMap

En samling af konvekse faste stoffer ("børster") er gemt i bsp såvel som i de dynamiske modeller og giver mulighed for at beregne kollisionerne mellem tegnene og arkitekturen.

Gengivet af GEL

Denne teknik afslutter beregningen af ​​okklusionen til den nærmeste pixel for softwaregengivelsestilstand.

For ikke at vise vægdelene skjult af en tættere væg bruges en Globel Edge List: den gemmer listen over kanter på alle de allerede viste trekanter, og hver nye trekant " klippes " ( klippes ) af disse segmenter: kun de synlige dele af disse trekanter vises derefter. Dette klip er optimeret ved hjælp af et 2d bsp træ.

Denne klipningsmetode afvises i skyggegengivelse for id tech 4.

Tekstur, overfladecache

Væggene vises med en basistekstur og en lyskort . For ikke at vise alt to gange genereres en overflade ved at blande tekstur og lyskort, der bruges af en væg.

Overflader opbevares i en cache for at genbruge de tidligere beregnede og frigøre dem, hvis de ikke længere bruges.

Mindre overflader genereres til længere vægge ved hjælp af tekstmipmaps (lightmaps er allerede i lav opløsning) for at spare hukommelse og undgå et fænomen med aliasing / pixelation af teksturer set for langt væk.

ZBuffer og karakter

Under visningen af ​​landskabet udfyldes også en Z-buffer. Det bruges ikke under gengivelsen af ​​landskabet, men under gengivelsen af ​​tegn og andre dynamiske 3D-objekter for at skjule dem i landskabet, når det er nødvendigt.

Set fra afstand vises tegnene ikke i 3D, men af ​​et voxel- system  : et stort punkt, hvis farve, ensartet, kommer fra karakterens struktur.

Dynamisk belysning

Karaktererne belyses ensartet med en farve, der afhænger af deres position; denne farve kommer fra en struktur, der gemmer den omgivende belysning i 3D. (= "lightvol")

Visning af trekanter i processortilstand

Den lave gengivelse af trekanter er skrevet i samler. Den bruger FPU til alle perspektivkorrektion og teksturkoordinatinterpolationsberegninger på grund af den begrænsede mængde heltalsregistre.

Bemærkelsesværdige spil

Liste over bemærkelsesværdige spil, der bruger motoren eller en fornyet version af Quake eller Quake II-spillet. Mods er ikke angivet her, motorversioner har udløst hundreder af mods.

Afledte gratis motorer

Det 21. december 1999, John Carmack fra id Software frigiver kildekoden til Quake-motoren på Internettet under vilkårene i GNU General Public License , så programmerere kan ændre motoren og tilføje nye funktioner til den. Snart begyndte de første modificerede versioner af motoren at cirkulere på Internettet.

Nogle af disse ændringer er tilgængelige på Live CD'er . Disse inkluderer et gratis operativsystem såvel som QuakeWorld- klienten . Dog skal nogle originale filer fra Quake-cd'en ( pak0.pakog pak1.pak) kopieres til disse Live-cd'er, for at de kan fungere fuldt ud. QuakeEngine-motoren er faktisk gået over i det offentlige domæne, mens de grafiske elementer (teksturer, grafik osv.) Er forblevet ejet af ID-software.

DarkPlaces

Darkplaces  (in) er en motormodifikation, der forbedrer netværkskoden (netcode), tilføjer supportkort over Quake III , en gengivelsesmotor, der er gjort helt om (belysning og skygger beregnet i realtid, bump-kortlægning , styring af OpenGL-shaders osv.), en indbygget serverbrowser og tilføjer support til Ogg Vorbis .

Det er baseret på den version af Id Tech 2, der blev frigivet af Id Software og er kompatibel med Linux, Mac OS X og Windows. Det bruges især af Nexuiz , derefter Xonotic.

Det er udviklet af Forest Hale, kendt som "LordHavoc", samt et samfund af udviklere.

ezQuake

ezQuake  (in) er en modificeret version af FuhQuake-motoren. Kompatibel med MacO'er og FreeBSD, understøtter den QuakeTV og multiview, giver yderligere muligheder for servere, nye menuer og integrerer en mp3-afspiller, en browser til servere og indspillede spil.

ProQuake

ProQuake  (en) er baseret på koden frigivet af Id. Denne mod, under GPL-licens, fokuserer på at forbedre multiplayer-tilstand (optagelsesnøjagtighed osv.) Og anti- cheat- beskyttelse,men det tillader også:

Det er udviklet af JP Grossman (også kendt som "Mephistopheles"). Den seneste version (3.50 af21. september 2002) er kompatibel med Quake og NetQuake, men ikke med QuakeWorld.

Telejano

Telejano er en modifikation, der stammer fra TomazQuake-motoren, der tilføjer mange nye elementer som en partikelmotor, lyseffekter, gnister ved kuglens påvirkning, eksplosioner; til vand: bølger og kaustiske virkninger  ; røgstier bag magmakugler og raketter; men også mere realistisk blod, tåge. Alt dette uden ændringer af de originale kort.

Den seneste version (annonceret som den endelige version af projektet) er 8.01 af 7. januar 2005.

Andre kendte motorer

Andre motorer

Der er selvfølgelig mange andre ændringer til motoren:

Noter og referencer

  1. (in) "  id Softwares teknologilicenseringsprogram  "http://www.idsoftware.com/ (adgang til 12. september 2008 )  : "Mange mennesker er opmærksomme på, at den originale QUAKE blev offentliggjort kildekode udgivet af id i 1999 under GNU Offentligheden. "
  2. (i) Slashdot, den 22. december 2001 Quake 2 kildekode udgivet under GPL
  3. (in) "  id Softwares teknologilicenseringsprogram  "http://www.idsoftware.com/ (adgang til 12. september 2008 )  : "[..] pr. December 2001, denne kritikerroste motor er disponibel sous le GNU General Public License . "
  4. (in) "  3D Engine: Quake  "http://www.mobygames.com/home (adgang til 5. september 2008 )
  5. (in) "  3D Engine id Tech 2  "http://www.mobygames.com/home (adgang til 5. september 2008 )
  6. (in) "  LordHavoc's Darkplaces Quake  " (adgang til 6. september 2008 )
  7. (in) "  ezQuake  " , men 26. 2007 (adgang til 22. oktober 2009 )
  8. (i) "  ProQuake  " (adgang til 6. september 2008 )
  9. (in) JP Grossman, "  Readme version 3.50  " ,21. september 2002(adgang til 6. september 2008 )
  10. (in) Telejano, "  Telejano  " (adgang til 5. september 2008 )
  11. (i) C. Hollemeersch, "  Tenebrae  " (tilgængelige på 5 September 2008 )
  12. (in) Tomaz, "  Tomaz 'Corner  " (adgang til 5. september 2008 )
  13. (in) "  ezQuake  " ,26. maj 2007(adgang til 5. september 2008 )
  14. (in) John Fitzgibbons, "  FitzQuake  " (adgang til 5. september 2008 )
  15. (in) Jozsef, "  JoeQuake  " (adgang den 5. september 2008 )
  16. (in) "  MacGLQuake  " (adgang til 5. september 2008 )
  17. (in) "  Pocket Quake  " (adgang til 5. september 2008 )
  18. (in) "  QuakeForge  " (adgang til 5. september 2008 )
  19. (in) "  ZQuake  " (adgang til 5. september 2008 )

eksterne links