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.
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.
Id tech 2 tilbyder to gengivelsestilstande til 3d, enten via grafikkortet eller beregnet af processoren. Quake1 administrerede kun, i sin første version, processorgengivelse.
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.
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 :
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.
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.
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.
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.
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")
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.
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.
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 (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 (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 (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 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.
Der er selvfølgelig mange andre ændringer til motoren: