id Tech 3, popularno poznat kao Quake III Arena engine, je pokretač igre napravljen od strane id Software za njihovu video igru Quake III Arena. Usvojen je u brojnim igrama. Tokom svog vremena, on se takmičio sa Unreal Engine; oba pokretača su bila široko licencirana.

ID Tech 3
Programer(i)id Software
Prvo izdanje2.12.1999.
Repozitorijum Uredi na Vikipodacima
Napisan uC
Operativni sistemMicrosoft Windows, Mac OS 8, Linux
PlatformaPC, PowerPC Macintosh, Nintendo 64, PlayStation
TipPokretač video igre
LicencaGNU-ova opšta javna licenca
Veb-sajtwww.idsoftware.com/business/idtech3/

Dok je id Tech 3 baziran na id Tech 2 pokretaču;veliki deo koda je samo prepisan. Naslednik id Tech 4 je nastao iz id Tech 3 pokretača.

Tokom QuakeCon 2005, John Carmack najavio je da će id Tech 3 izvorni kod biti pušten pod GNU-ovom opštom javnom licencom (verzija 2), i on je pušten 19. avgusta 2005. Kod se može preuzeti sa id-ovog GitHub naloga.

Karakteristike

uredi

Grafika

uredi

Za razliku od većine drugih pokretača igara objavljenih u tom vremenu — uključujući glavnog konkurenta, Unreal Engine, id Tech 3 zahteva OpenGL-kompatabilni grafički procesor za pokretanje. Pokretač ne sadrži softverski renderer - software renderer.

id Tech 3 uvodi dugačke zaobljene površine pored planarnih visina, koje su odgovorne za mnoge površine prisutne u igri.[1]

Nijanse

Grafička tehnologija igre zasniva se čvrsto na "shader" sistemu gde se pojava mnogih površina definiše u tekstualne datoteke i nazivaju se "shader scripts" (nijansne skripte). "Shader-i" (nijanse) su opisane i donose nekoliko slojeva, svaki sloj sadrži teksturu, a "blend mode" koji određuje kako da ga iznad prethodnog sloja i tekstura orijentacije podesi kao što su mapiranje životne sredine, prelistavanje i rotacije. Ove funkcije mogu lako da se vide u igri sa mnogo svetlih i aktivnih površina u svakoj mapi, pa čak i na modelima karaktera.Shader sistem prevazilazi vizuelni izgled, definisanje sadržaja zapremine (npr zapremina vode je definisana primenom shader-a vode svojim površinama), lake emisije zvuka se emituje, koja zvuči kao kada je jačina zvuka "utabana".[1] Da bi se pomoglo pri računanju ovih nijansi, id Tech 3 uvodi specifično brzu funkciju obrnutog kvadratnog korena, koja je privukla značajnu pažnju u razvoju zajednice za njegovim pametnim korišćenjem celih operacija.[2][3]

Video

Svi video snimci unutar same igre koriste format poznatiji kao "RoQ", koji je napravnjen od strane Graeme Devine, pomoćni dizajner Quake 3, za igricu The 11th Hour. Unutrašnji RoQ koristi vector quantization (vektorsku kvantizaciju) za enkodovanje videa i DPCM za enkodovanje audia-zvuka. Iako je sam format zaštićen, on je uspešno rekonstruisan 2001 godine,[4] i aktuelni RoQ dekoder je smešten unutar Quake 3 izdanja izvornog koda. RoQ  je video format male koristi van igre zasnovane na id Tech 3 ili id Tech 4 pokretačima, ali je podržan od strane par plejera (kao na primer MPlayer) i pregršt nezavisnih enkodera i dalje postoji.

Modeli

id Tech 3 učitava-loaduje 3D modele u MD3 formatu. Format koristi vertex-visoke pokrete (ponekad se pominju kao vertex animacije) suprotno skeletskim animacijama da bi zapamtio animaciju. Karakteristike animacija u formatu MD3 su superiornije u odnosu na one u id Tech 2 MD2 formatu zato što sam "animator" je u mogućnosti da ima vići broj promenljivih frejmova po sekundi u odnosu na MD2 format koji je ima standardnih 10 frejmova po sekundi. Ovo je omogućilo kompleksnije animacije koje su manje "drhtave-klimave" u odnosu na modele koji se nalaze unutar Quake II.

Još jedna važna karakteristika u vezi sa MD3 formatom je da se model razbijen na tri različita dela koji su "usidreni" međusobno. Tipično, ovo se koristi da se odvoji glava, trup i noge, tako da svaki deo može samostalno da animira zbog animacije stapanja (tj radi animacija na nogama, i puca animacija na torzo). Svaki deo modela ima svoj set tekstura.

Modeli karaktera su osvetljeni i osenčeni koristeći Gouraud senčenje dok su nivoi (sačuvani u BSP formatu) osvetljeni ili sa lightmaps ili sa Gouraud senkama u zavisnosti od izbora samog korisnika. Pokretač je u stanju da boje svetla uzme iz "lake" koordinatne mreže i primeni ih na modelima, što je rezultiralo većim kvalitetom osvetljenja koji je, za svoje vreme, bio veoma napredan.

Unutar "GPL-ove" verzije izvornog koda, veći deo koda koji radi sa MD4 skeletskim animacijama nedostaje. Pretpostavlja se da id jednostavno nikada nije završio taj format,[5] iako skoro svi licencirani korisnici svoj skeletni sistem animacija prave od onoga što je bilo prisutno-napisano. Ritual Entertainment je uradio ovo za upotrebu u igri, Heavy Metal: F.A.K.K.², SDK koji je formiran na osnovu MD4 podrške koja je  završena od strane "nekoga" pod pseudonimom Gongo.[6]

Dinamičke senke

Pokretač je bio u stanju da stvori tri različite vrste senki. Jedan se samo stavlja u krug sa izbledelim ivicama nogu karaktera, tehnika poznatija kao "blob senka" . Druga dva načina projektuje tačnu poligonalnu (sa više tačaka) senku po podu. Razlika između poslednja dva načina je nečije oslanjanje na mutne, solidne crne senke, dok su ostali pokušaji bili (sa mešovitim uspehom) da se projektuje dubina dodavanja stencil senke jačine zvuka u srednje transparentnoj crnoj boji. Nijedna od ovih tehnika nije "zatvorila" zapremine senki, što izaziva da senke produže niz zidova i čak kroz samu geometriju.

Ostale karakteristike renderinga (prikazivanja)

Ostale karakteristike uključuju vizuelne volumetrijske magle (volumetric fog), ogledala (mirrors), portale (portals), "dekale" (decals), i talasne forme volumetrijske iskrivljenosti (wave-form vertex distortion).

id Tech 3-ov  zvučni sistem izlazi na dva kanala koji koriste luping (petlju) kao izlazni bafer, pomešan sa 96 zvukova sa Stereo uprostoravanjem (stereo spatialization) i Doppler efektom. Svo mešanje zvuka se odvija u okviru pokretača, što može stvoriti probleme za licence koje se nadaju da sprovedu EAX ili surround (okruženi) zvuk. Nekoliko popularnih efekta kao što su odjeci su odsutni.

Glavni nedostatak zvučnog sistema je da mikser ne daje svoju nit,[7] pa ako igra "stoji" predugo (posebno dok je kretanje kroz meni ili povezivanje na server), mali izlazni bafer će početi da pravi petlju, veoma primetni problem.. Ovaj problem je takođe i unutar Doom 3, Quake, i Quake II pokretačima.

Povezivanje

uredi

id Tech 3 koristi "snapshot" sistem da prenese informacije od ogre - "frejmova" do klijenta preko UDP. Ažuriranje servera popravlja interakciju po fiksnoj stopi nezavisno od klijenata stopa se ažurira sa serverom preko svojih akcija, a potom pokušava da pošalje stanje svih objekata u tom trenutku (trenutnom serveru - frejmu) svakom klijentu. Server pokušava da izostavi što je moguće više informacija o svakom kadru, prenoseći samo razlike u odnosu na poslednje okvire, klijent se potvrđuje kao primljen (Delta kodiranje). Svi paketi podataka kompresovani po Huffman-ovom kodiranju statističkih podataka se već unapred računaju frekvencionalno čak se i dodatno smanjuje protok (bandwidth) korišćenja.

Quake 3 takođe integriše relativno složen sistem za zaštitu od "prevara" (čitova-cheat) pod nazivom "čist server"(pure server). Bilo kada se klijent povezuje sa "čistim serverom" on automatski omogućava "čist" način, i dok je omogućen taj režim samo datotekama u paketima podataka se može pristupiti. Klijenti su isključeni (disconnected) ako njihovi paketi podataka ne prođu nekoliko provera integriteta. "cgame.qvm" fajl, sa velikim potencijalom za "čit modifikacije", podleže dodatnim proverama integriteta. Programeri moraju ručno isključiti čist server za testiranje mape ili modifikacija koje nisu u paketima podataka korišćenjem formata .pk3 datoteke. Kasnije verzije zaštićenih servera dopunjene su sa podrškom PunkBuster-a, mada za njega su odsutni delovi izvornog koda jer PunkBuster je zatvoreni softver, uključujući i podršku za to u izvornom kodu izdanje bi prouzrokovalo neke izdavačke/korisničke kodekse koji krše GPL.[8]

Virtuelna mašina

uredi

id Tech 3 koristi virtuelnu mašinu da kontroliše ponašanje objekata na serveru, efekte i predviđanja o klijentu i korisničkom interfejsu. Ovo predstavlja mnoge prednosti tako što autori modova ne moraju da brinu o "pucanju" cele igre zbog lošeg koda, klijenti mogu da pokažu napredne efekte i menije same igre pre nego što je to bilo moguće u Quake II i korisnički interfejs za modove je bio potpuno prilagodljiv.

Fajlovi viruelnih mašina su napraljene pomoću ANSI C, koristeći LCC da ih sastave u 32-bitnu RISC montažnom formatu. Alatka pod nazivom "q3asm"  ih zatim konvertuje u QVM fajlove, koji se multi-podelom fajlova sastoje od statičkih podataka i instrukcija na osnovu smanjenog skup ulaznih kodeka. Ukoliko se koriste operacije koje zahtevaju posebnu "endianness" (Big endian), QVM datoteka će se pokrenuti isto na bilo kojoj platformi koja podržava Quake 3.

Virtuelna mašina takođe sadrži bajtkod kompilatore za x86 i PowerPC arhitekture, izvršavajući QVM instrukcije preko tumača-interpretera.

ioquake3

uredi

Ioquake3 je projekat pokretača igre koji planira da se napravi čim se id Tech 3 izvorni kod[9][10]objavi u cilju uklanjanja bugova, čišćenje izvornog koda i dodavanje više naprednih grafičkih i audio funkcija preko SDL i OpenALioquake3 je takođe namenjen da deluje kao čista osnovica paketa, na koju mogu da se izgrade i drugi projekti. Pokretač igre podržava "Ogg Vorbis" format i video snimanje demo snimaka u .avi formatu.[11]

Projekat je započet ubrzo nakon izdanja izvornog koda sa ciljem stvaranja koda bez bagova, unapređena verzija izvornog koda Quake III pokretača kod koje su raspodele na kojima se mogu zasnivati nove igre i projekti. Pored toga, projekat ima za cilj da obezbedi poboljšano okruženje u kome se igra "Quake III: Arena", "Team Arena" ekspanzija i svi popularni modovi mogu se igrati.[12][13][14][15] Bitnije karakteristike su dodate unutar okvira projekta koji uključuje ugrađenu VoIP podršku, Anaglyph stereo rendering (stereo renderovanje) (za gledanje sa 3D naočarima), takođe i brojne bezbednosne ispravke. Kompletan spisak karakteristika je dostupan na sajtu projekta.

Ioquake3 je osnova za nekoliko projekata igrara baziranih na id Tech 3 pokretaču, kao što su OpenArena (imitirajući Quake III Arena),[16][17] OpenWolf,[18] Tremulous,[19][20] Smokin' Guns,[21] Urban Terror,[22][23] Turtle Arena i World of Padman[24][25] takođe i projekti pokretača igara kao što su efport (Star Trek: Voyager - Elite Force Holomatch projekat pokretača), ioJedi Outcast,[26] ioJedi Academy,[27] ioDoom3[28] i OpenMoHAA.[29] Pokretač i njegove pridružene igre su uključeni u nekoliko Linux i BSD distribucija.[30][31][32][33][34]

Izvorni kod za Return to Castle Wolfenstein i Wolfenstein: Enemy Territory su objavljeni pod GNU General Public License 12. avgusta 2010. godine.[traži se izvor] "ioquake3" programeri su najavili početak nekoliko projekata pokretača igara (iortcw,[35][36] iowolfet, Enemy territory:Legacy[37]) veoma uskoro/ubrzo.[38]

ioquake3 projekat je takođe korišćen u akademskoj areni kao osnova za različita istraživanja u institucijama kao što su "Stanford" univerzitetski centar za kompjuterska istraživanja u muzici i akustici (CCRMA),[39][40] "Notre Dame" kao fondacija za VR istraživanja,[41] i centar "Swinburne" univerziteta tehnologija za unapređivanje internet arhitekture.[42][43] Postoji čak i zajednički napor od istraživača u "Carnegie Mellon" univerzitetu i univerziteta u Torontu koji koriste ioquake3 kao platformu za svoje objavljivanje istraživanja.[44][45] Studenti su koristili ioquake3 kao osnovu za napredne grafičke radove za svoje teze, kao i što je Stephan Reiter-ov rad[46][47] koji je čak čuven na LLVM projektu zbog njegove sinteze sa ioquake3 pokretačem, ray-tracing rendering tehnike, i LLVM.

Iako ime "ioquake3" je bazirano na Ryan ''"Icculus"'' Gordon-ov sajt[mrtva veza],  Rajan ne vodi projekat. Umesto toga, on ima mentorsku ulogu i pruža hosting za mail liste i SVN skladište koje se koristi za projekte.[48]

Igre koje koriste id Tech 3

uredi

Igre bazirane na izvornom izdanju

uredi
  • OpenArena - Igra koje je otvorenog koda i koja je veoma bazirana na Quake III Arena-(deathmatch) dedmeč stilu. Način igranja pokušava da imitira Quake III Arena i da predstavi statistiku fragova za pobedu koristeći izbalansirani set oružja, svaki dizajniran za različite situacije.
  • Space Trader - Strategijsko akciona igra napravljena od strane HermitWorks Entertainment.
  • Smokin' Guns - ima za cilj da bude polu-realna simulacija atmosfere "starog Zapada". Prvobitno Quake 3 modifikacija, ali je postala samostalna igra. Ona je promenjena nazad u ioquake3 pokretač 2009. godine.[49]
  • Urban Terror do verzije 4.2 – Quake III Mod konverzija, dok je projektovan i pušten u rad sa maloprodajnim softverom Quake III, takođe je kompatibilan sa alternativnim pokretačkim otvorenim kodom.
  • Tremulous - Tremulous je pucačina u prvom licu sa elementima strategije u realnom vremenu. Svaka ekipa mora izgraditi i braniti bazu, koja se sastoji od objekata koji pomažu igračima na neki način. Kao Smokin' Guns, počela je kao mod, ali od 1.1 verzije postala je samostalna igra.

Igre koje koriste vlasničku licencu

uredi
Bazirane na id Tech 3
Koje koriste id Tech 3 sa ÜberTools

Vidi još

uredi

Reference

uredi
  1. ^ a b Paul Jaquays, Brian Hook.
  2. ^ Eberly, David (2002).  Nedostaje ili je prazan parametar |title= (pomoć)
  3. ^ Sommefeldt, Rys (November 29, 2006).
  4. ^ Tim Ferguson (2001).
  5. ^ „ioquake3 md4-readme.txt”. Arhivirano iz originala 16. 07. 2012. g. Pristupljeno 12. 11. 2015. 
  6. ^ gongo. "md4 v4 file spec, by gongo".
  7. ^ "Sound in the main thread".
  8. ^ "Ioquake3 Help Page" Arhivirano na sajtu Wayback Machine (11. januar 2016).
  9. ^ "Complete Guide: Configure and Customise ioQuake3 in Linux - Linux Today" Arhivirano na sajtu Wayback Machine (9. mart 2012).
  10. ^ "Quake 3 ported to iPod Touch with tilt controls - Betanews".
  11. ^ Valich, Theo (3 April 2007).
  12. ^ "ioquake3 for OS X - Inside Mac Games" Arhivirano na sajtu Wayback Machine (24. septembar 2015).
  13. ^ "ioquake3 for Mac OS X available for download - Macsimum News" Arhivirano na sajtu Wayback Machine (12. septembar 2006).
  14. ^ "IOQuake3 OSX : Clone de Quake III (gratuit) - MaxiApple.com".
  15. ^ "IOQuake3 1.34 - Jogue Quake 3 no Mac OS X - Maclivre.net" Arhivirano na sajtu Wayback Machine (23. jul 2011).
  16. ^ "Open Arena about page".
  17. ^ "XP Games".
  18. ^ „OpenWolf”. GitHub. Arhivirano iz originala 11. 01. 2016. g. Pristupljeno 12. 11. 2015. 
  19. ^ "Tremulous about page" Arhivirano na sajtu Wayback Machine (10. decembar 2015).
  20. ^ „Quake, Meet GPL; GPL, Meet Quake | Linux Journal”. "Quake, Meet GPL; GPL, Meet Quake - Linux Journal"].
  21. ^ "Entretien avec l'équipe de Smokin'Guns - JeuxLinux" Arhivirano na sajtu Wayback Machine (19. mart 2021).
  22. ^ "Urban Terror manual".
  23. ^ "Two free games based on the Quake 3 engine tip up - The Inquirer" Arhivirano na sajtu Wayback Machine (28. avgust 2010).
  24. ^ "A Look At Free Quake3 Engine Based Games - Slashdot".
  25. ^ "Comparison of free software shooters - linuX-gamers.net"[mrtva veza].
  26. ^ GitHub - ioquake/jedi-outcast
  27. ^ ioJedi Academy
  28. ^ Iodoom3
  29. ^ OpenMOHAA
  30. ^ "Fedora 12 Update: quake3-1.36-5.fc12 - fedora-package-announce".
  31. ^ „"ioquake3-1.36-1mdv2010.0 RPM for i586 - RPM Find". doi:10.0/i586/media/contrib/release/ioquake3-1.36-1mdv2010.0.i586.html. Arhivirano iz originala 21. 02. 2014. g. Pristupljeno 12. 11. 2015. .
  32. ^ "Package: openarena-data (0.8.1-2) - Debian".
  33. ^ "ioquake3 1.36 build 3 - FreshPorts".
  34. ^ "igames/ioquake3 - The NetBSD Packages Collection" Arhivirano na sajtu Wayback Machine (10. jun 2011).
  35. ^ Iortcw compiled package
  36. ^ Iortcw source code
  37. ^ ET Legacy source code
  38. ^ Larabel, Michael (2010-06-13). "id Software Open-Sources ET, RTCW".
  39. ^ "Q3osc research paper" (PDF).
  40. ^ "Q3osc wiki".
  41. ^ "A Survey of Collaborative Virtual Environment Technologies" Arhivirano na sajtu Wayback Machine (10. oktobar 2015) (PDF).
  42. ^ "L3DGEWorld 2.1 Input & Output Specifications" (PDF).
  43. ^ "L3DGEWorld 2.3".
  44. ^ "VMM-Independent Graphics Acceleration" Arhivirano na sajtu Wayback Machine (9. oktobar 2009) (PDF).
  45. ^ Lagar-Cavilla, H. Andres; Tolia, Niraj; Satyanarayanan, M.; De Lara, Eyal (2007). „VMM-independent graphics acceleration”. Proceedings of the 3rd international conference on Virtual execution environments. str. 33—43. ISBN 978-1-59593-630-1. S2CID 655357. doi:10.1145/1254810.1254816. 
  46. ^ "Real-time Ray Tracing of Dynamic Scenes".
  47. ^ "Run-Time Code Generation for Materials".
  48. ^ "ioquake3 Miscellany - LinuxGames" Arhivirano na sajtu Wayback Machine (14. jun 2011).
  49. ^ Bougard, Guillaume (alias Tequila) (22 January 2009).

Spoljašnje veze

uredi