id Tech 4, poznatiji kao Doom 3 engine, jeste pokretač igre koji je razvila kompanija id Software i prvi put je korišćen u igri Doom 3. Pokretač je napravio John Carmack. Carmack je takođe kreirao i prethodne verzije, kao što su one za igre Doom i Quake, koje su široko priznate kao značajni doprinosi u ovoj oblasti. Ovaj pokretač igre zasnovan na tehnologiji OpenGL korišćen je i za igre Quake 4, Prey, Enemy Territory: Quake Wars, Wolfenstein i Brink.

ID Tech 4
Programer(i)id Software
Prvo izdanje3.8.2004.
Repozitorijum Uredi na Vikipodacima
Napisan uC++
Operativni sistemWindows, OS X, Linux, Xbox, Xbox 360, PlayStation 3
TipPokretač video igre
LicencaGNU-ova opšta javna licenca
Veb-sajtgithub.com/id-Software/DOOM-3-BFG

Istorija

uredi

id Tech 4 je počeo kao proširenje id Tech 3. Tokom razvoja, u početku je bio samo potpuni prepis od pokretačevog prikazivača (renderer), pri čemu je zadržao druge podsisteme, kao što su pristup datotekama i upravljanje memorijom. Odluka da se pređe sa programskog jezika C na C++ zahtevala je restrukturiranje i prepisivanje ostatka na novi pokretač; danas, id Tech 4 sadrži deo kôda iz id Tech 3 pokretača, većim delom samo prepisanog.[1]

Tokom QuakeCon 2007, Džon Karmak, glavni grafički izdavač pokretača igara u id-u, rekao je LinuxGames: "Mislim, neću se držati datuma, ali Doom 3 komponente će biti otvorenog koda". Kao i njegovi prethodnici, John Carmack je rekao da će id Tech 4 biti izdat kao open source (otvoreni kod).[2]

Na QuakeCon 2009, Karmak je rekao da planira da pokrene peticiju za ZeniMax Media da izdaju id Tech 4 kod tokom izdavanja njihove nove igre - Rage.[3] Kao deo svog obraćanja tokom QuakeCon 2011 potvrdio je da će izvorni kod Doom 3 biti izdat do kraja godine, posle izdavanja Rage-a.[4]

16. novembra, 2011, Karmak najavio je na Twitter-u da on piše novi kod za Doom 3 izdavanje otovrenog koda, zato što "su advokati  još uvek snebljivi o pitanju patenta oko Carmack-ove promene".[5] Ovo se odnosi na implementaciju stencil buffered shadow volume (stensil bafer prostorne senke) algoritama.

22. novembra, 2011, Carmack izdaje Doom 3 izvorni kod na GitHub.[6] Kod ne uključuje nikakve izmene Carmack-ove promene koda. Prema Carmack-u, manje izmene su napravljene da bi se izbegao bilo kakav prekršaj.[7]

Hardver

uredi

Originalni zahtev/potreba za id Tech 4 bila je "high-end" grafička kartica (GPU) sa punim programerskim piksel senkama (pixel shaders) i najvišim tačkama/vrhunci (vertex), kao što su Nvidia GeForce 3 ili ATI Radeon 8500, sa najmanje 64 MB VRAM-a. Do E3 2002, preporučena GPU je bila "100% DirectX 9.0b kompatibilnost", kao što su Radeon 9700 sa 128 MB VRAM-a. Dok Radeon 9700's DirectX 9.0 mogućnosti nisu bile potrebne za renderovanje igre, njena napredna arhitektura, 256-bitna memorijska magistrala, i efikasnost bile su potrebne za pokretanje Doom 3 na visokim detaljima i brzinom potrebnom za igru.[8]  "Ultra" grafički mod koji je unutar Doom 3 nije moguće pokrenuti na tadašnjim karticama sve do 2004, koji je zahtevao 512 MB video memorije da bi se mogao postaviti i normalno igrati unutar njega, što znači da je faktički bio ne upotrebljiv tokom samog njegovog izdanja.[9]

id Tech 4 rezultirao je zastarelost DirectX 7 grafičkih čipova kao što su GeForce 2 i Radeon 7200, kao i strariji čip-setovi RIVA TNT2 i Rage 128, i softversko renderovanje (sa integrisanom Intel GMA). Do dolaska id Tech 4, jaki/snažni CPU-procesori su bili u stanju da donekle kompenzuje za starije grafičke kartice. Dok je John Carmack upozoravao gejmere da ne kupuju  GeForce 4 MX[10] (koju obični potrošači često zbunjuju sa DirectX 8 sposobnosti GeForce 4 Ti, iako je to bilo najbolje poboljšanje GeForce 2), njena donekle raširena upotreba primorala je id Software da ga doda u listu podržanih kartica. Bilo je slučajeva entuzijasta koji su prisiljavali Doom 3 da radi na ne podržanim grafičkim čipovima, kao što je dugo zastareli Voodoo 2, ali oni nisu bili u stanju da renderuju osvetljenje po pikselu i iznenadna/ispupčena mapiranja.[11]

Karakteristike

uredi

Grafika

uredi

Id Tech 4 je dodao nekoliko novih grafičkih funkcija koje su bile odsutne u prethodniku, id Tech 3. One uključuju bump mapping (iznenadno mapiranje), normal mapping (normalno mapiranje), i specular highlighting (reflektirajuće isticanje). Dodatne funkcije su dodate tokom razvoja narednih uspešnih igara, i u još neobjavljenim igrama koje koriste id Tech 4, nove funkcije su dodate ili su planirane da se dodaju u skorije vreme.

Glavna inovacija id Tech 4 bila je potpuno korišćenje dinamičke metode piksel po piksel osvetljenja (per-pixel lighting), dok su se prethodno, 3D pokretači oslanjali na korišćenje već izračunatih vrhunaca osvetljenja (vertex lighting) ili lightmaps i Gouraud shading. Dok su dinamički efekti bili dostupni ranije (kao što su dinamičko pokretna svetla), ovaj efekat je samo promenio osvetljenost temena poligona, uz boje piksela jednostavno se umetne između tri visoke boje svog poligona.

Ovaj potpuni pristup u realnom vremenu koristi se u Doom 3, u kombinaciji sa upotrebom volumena u senci dozvoljeno je realnije osvetljenje i senke[12] nego u prethodnim generacijama id-ovih pokretača. Metod koji se koristi za kreiranje volumena u senci je predmet patenta koji je kreiran od strane Creative, koji Creative daje id-ovu dozvolu za korišćenje unutar Doom 3 pokretača, u zamenu za podržavanje Creative-ovog EAX-a - napredne tehnologije zvuka.[13]

Modeli korišćeni u id Tech 4 pokretačima igara su animirane pomoću skeletal animation (skeletnih animacija). Pokretač može da pomeša višestruke animacije zajedno, da bi stvorio izgled koji tačno opisuje pokrete te animacije. Zato što je ovo veoma "teško" za CPU, id je uradio dosta posla na optimizaciji ovih metoda pomoću Intel-ove Streaming SIMD Extensions (SSE).[14]

MegaTexture tehnologija prikazivanja (renderovanja)

uredi

Originalna verzija id Tech 4 pokretača je dizajniran za mračno okruženje tako da je kritikovana zbog uočene nemogućnosti da se izbori sa izuzetno velikim otvorenim prostorima koji ima dnevno osvetljenje. MegaTexture tehnologija nije samo uklonila ovaj problem uvođenjem sredstva za stvaranje širokih otvorenih scena, već je i napravila novu verziju kao najbolji pokretač igre za spoljašnje oblasti. "Farbanjem" jedne masovne teksture (32,768×32,768 pixels-piksela, iako je produžen do većih dimenzija u novijim verzijama u MegaTexture tehnologiji) koja pokriva ceo poligon i veoma detaljno teren, željeni efekti mogu se postići. MegaTexture takođe može odrediti fizičke informacije o terenu kao što su iznos trakcije u pojedinim oblastima ili navesti koji zvučni efekat treba da se čuje kada model hoda preko specifičnih delova mape. odnosno hodanje po steni će zvučati drugačije od hodanja na travi.[15] Očekuje se da će ovo dovesti do znatno detaljnijih scena od većine postojećih tehnologija, koristeći popločane teksture. Prva igra koja je koristila MegaTexture je Enemy Territory: Quake Wars, bazirana na Tech 4 pokretaču. Sve id Tech 5 igre koriste MegaTexture.

Tehnike renderovanja (prikazivanja) unutar id Tech 4 pokretača

uredi

Skripta pokretača (jezik pokretača kojim je napisan - Engine Script)

uredi

id Tech 4 ima sveobuhvatni jezik skripte koja se može koristiti kada kreirate modove, i koristi se u Doom 3 za kontrolu "čudovišta", oružja i za mapiranje događaja. Ovaj skriptni jezik je sličan C++.[16]

Pored glavnog skript jezika, idTech 4 ima još jedan skript jezik koji se koristi za GUI (izgled) - i za meni i za HUD, takođe i za GUI koji je ubačen u okruženju same igre.[17] Ove skriptke koje su ubačene unutar same igre su dovoljno "jake" da na primer možete pokrenuti drugu igru unutar nje kao što je na primer Doom 1.[18]

Uprkos ovom dodatnom nivou skripti, takođe je moguće da se stvore modovi koristeći C++ da napravite "urođeni" kod.[19]

Kao rezultat dogovora sa Creative-ovom u vezi sa patentom za nivoe jačina senki, id Tech 4 pokretač koristi OpenAL, uključujući Creative Technology specifične EAX ekstenzije. Posao oko ubacivanja OpenAL podrške je urađena od strane Creative Technology, a ne od strane id-a.[20]

Umrežavanje

uredi

Pokretač koristi klasično povezivanje client–server model (klijent-server način). U početku je bilo planirano da imaju peer-to-peer (od tačke do tačke) povezivanje. Ovaj deo pokretača radi na osnovi sličnoj kao id Tech 3 pokretač, kako god id Tech 4 izlaže mnogo više protokola za mrežu programerima modova.[21]

Iako Doom 3 podržava samo 4 igrača, id Tech 4 pokretač može da se koristi za više igrača, Quake 4 i Enemy Territory: Quake Wars podržavaju znatno više igrača.

Projekti zasnovani na ID Tech 4 pokretaču

uredi

iodoom3

uredi

iodoom3 je projekat pokretača igre koji namerava da iskoristi prednosti id Software-ovog id tech 4 izvornog koda kad on bude pušten. Praćenjem ioquake3, možemo videti da je on počeo veoma brzo nakon objave izvornog koda sa ciljem da kreira-napravi bug-free (bez kvarova), poboljšanje izvornog koda id tech 4 koda i da ga distribuiše tako da se na njemu zasnivaju nove igre i projekti.[22]

dhewm3

uredi

dhewm3 je takođe projekat pokretača igre id Tech 4 GPL izvornog koda. Cilj ovog projekta je da id Tech 4 omogući, uz pomoć SDL, svim pogodnim platformama, i popravi greške (bugs-bagove) koje postoje bez promene originalnog gameplay-načina igre.[23]

Glavna promena dhewm3 u poređenju sa id Tech 4 pokretačem je 64-bitni port, SDL podrška za "lošije"-slabije operativne sisteme, OpenAL za audio izlaz, uključujući OpenAL EFX za EAX reverb efekte i portabilni sistem baziran na CMake-u.[23]

RBDOOM-3-BFG

uredi

RBDOOM-3-BFG projekat pokretača igre zasnovan na izvornom kodu prilikom izdavanja Doom 3 BFG edicije 2012 godine. Dodatne funkcije uključuju podršku za Linux i Windows 32/64-bitne sisteme, podršku OS X , podršku Bink-ovom videu preko FFmpeg-a, Soft shadows (meke senke) pomoću PCF hardverskog mapiranja senki i za interakciju osvetljenja koja bi koristila Half-Lambert-ov sistem osetljenja kao što se koristi u Half-Life 2. [24]

Igre koje koriste id Tech 4

uredi

U odnosu na prethodnu i naširoko korišćenom id Tech 3 (Quake III Arena pokretaču) i id Tech 2 (Quake II pokretač), id Tech 4 je imao manje uspeha u licenciranju drugima.[25] Ovo je posebno vidljivo u poređenju sa svojim najbližim savremenikom, Unreal Engine 2 (2002) i Unreal Engine 3 (2006) pokretačima Epic Games-a.[26] id Software nije bio voljan da licencira svoj najnoviji pokretač pre nego što je "matična igra" Doom 3 bila završena. Međutim, neočekivano dugi period vremena razvoja Doom 3 od 2002 do 2004 značilo je da oni nisu mogli izdržati tempo konkurenciju Epic Games-ovog Unreal Engine 2 tokom tog perioda. Mnogi koji su licencirali Unreal Engine 2 su na taj način mogli da pređu na Unreal Engine 3 veoma lako.

Dok je id Tech 4 izabrao novi smer njihovog dinamičkog osvetljenja po pokselu (dynamic per-pixel lighting), ova nekonvencionalna funkcija imala je "oštrije"-teže hardverske zahteve i bio je u početku samo korisna u "čudnim igrama" (sve do MegaTexture dodatka), a sve veći broj programera radije je birao pokretače koji mogu učiniti veliko prikazivanje-renderovanje na otvorenom prostoru. Takođe, primetno je da id Tech 4 imao relativni nedostatak silazne skalabilnosti u odnosu na konkurentske FPS pokretače; id Tech 4 generalno zahteva DirectX 8.0 kompatabilnu grafičku karticu (GPU) kao što je GeForce 3; rivalski-konkurentski Source engine (izvorni pokretač) (koji je nastao iz prethodnog GoldSrc pokretača) mogao je i dalje da se pokreće na starijim široko korišćenim DirectX 7 grafičkim kartama (ali se koristi bez nijansi osvetljenja).

Igre koje koriste vlasničku licencu

uredi

Igre koje koriste licencu otvorenog koda

uredi

Vidi još

uredi

Reference

uredi
  1. ^ Q&A with John Carmack, E3 2002 Arhivirano na sajtu Wayback Machine (29. septembar 2009)[dead link]
  2. ^ Carmack, John (August 7, 2007).
  3. ^ Totilo, Stephen. „The John Carmack Keynote: Liveblogging QuakeCon”. Kotaku.com. Pristupljeno 5. 1. 2016. 
  4. ^ "Id Software will release the Doom 3 source code" Arhivirano na sajtu Wayback Machine (7. avgust 2011).
  5. ^ "John Carmack's Twitter status update".
  6. ^ "Doom 3 Source on GitHub".
  7. ^ "John Carmack tweets about code infringement work around".
  8. ^ "ATI's Radeon 9700 Takes Performance Lead" Arhivirano [Date missing] na sajtu Archive-It.
  9. ^ Doom is a boon Arhivirano na sajtu Wayback Machine (27. jul 2011) Game Industry News, article by Todd Hargosh.
  10. ^ „File for John Carmack (February 11, 2002)”. Arhivirano iz originala 05. 09. 2015. g. Pristupljeno 05. 01. 2016. 
  11. ^ "Doom3 + Voodoo2_Patch_v1_0".
  12. ^ „Doom 3”. Digit-life.com. Pristupljeno 5. 1. 2016. 
  13. ^ by craig@arstechnica.com - Jul 28, 2004 7:04 pm UTC (28. 7. 2004). „John Carmack: "This sucks.". Arstechnica.com. Pristupljeno 5. 1. 2016. 
  14. ^ Last updated on January 1, 2015 (1. 1. 2015). „Optimizing the Rendering Pipeline of Animated Models Using the Intel Streaming SIMD Extensions”. Software.intel.com. Pristupljeno 5. 1. 2016. 
  15. ^ „GameSpy: Enemy Territory: Quake Wars Preview”. Pc.gamespy.com. Arhivirano iz originala 13. 08. 2018. g. Pristupljeno 5. 1. 2016. 
  16. ^ „Making DOOM 3 Mods : Scripts”. Iddevnet.com. Arhivirano iz originala 10. 12. 2015. g. Pristupljeno 5. 1. 2016. 
  17. ^ „Making DOOM 3 Mods : GUIs”. Iddevnet.com. Arhivirano iz originala 11. 08. 2016. g. Pristupljeno 5. 1. 2016. 
  18. ^ „Fully Interactive Surfaces”. Battleteam.net. Pristupljeno 5. 1. 2016. 
  19. ^ „Making DOOM 3 Mods : The Code”. Iddevnet.com. Arhivirano iz originala 07. 03. 2016. g. Pristupljeno 5. 1. 2016. 
  20. ^ "How the latest Sound Blaster X-Fi technology was utilized in QUAKE 4" Arhivirano na sajtu Wayback Machine (4. avgust 2012).
  21. ^ „The Code - see Game Utility Files”. Iddevnet.com. Arhivirano iz originala 07. 03. 2016. g. Pristupljeno 5. 1. 2016. 
  22. ^ "iodoom3 official site" Arhivirano na sajtu Wayback Machine (1. novembar 2020).
  23. ^ a b "dhewm/dhewm3 GitHub".
  24. ^ "RobertBeckebans/RBDOOM-3-BFG GitHub".
  25. ^ „id Tech 4 (Concept)”. Giant Bomb. Pristupljeno 5. 1. 2016. 
  26. ^ "id Tech 5".
  27. ^ Meer, Alec (22. 10. 2012). „Outta Dunwall: Thief Remake The Dark Mod Updates”. Rock, Paper, Shotgun. Pristupljeno 5. 1. 2016. 
  28. ^ "The Dark Mod".
  29. ^ Campbell, Colin (February 4, 2013).

Spoljašnje veze

uredi