Doomov pogon (id Tech 1): definicija in ključne značilnosti
Spoznajte Doomov pogon (id Tech 1): definicija, tehnike upodabljanja, arhitektura, izvorni porti in ključne značilnosti, ki so zaznamovale zgodovino FPS iger.
Motor Doom, včasih imenovan ID Tech 1, je računalniška koda za videoigro Doom. Uporablja ga tudi več drugih iger, vključno z Doom 2 (ne pa tudi Doom 3, ki ima svoj lasten pogon). Močno spremenjene različice motorja Doom se uporabljajo v igrah Heretic, Hexen in Strife.
Pogon Doom uporablja tehniko, imenovano binarna razdelitev prostora, s katero prikazuje ravni 3D na način, ki ga lahko računalnik hitro obdela. Napisan je večinoma v jeziku C. Izvorna koda je bila brezplačno objavljena pod splošno javno licenco GNU. Številni ljubitelji Dooma so ustvarili svoje lastne spremenjene različice, ki se imenujejo izvorni porti. Izvorne različice pogosto dodajo nove funkcije in odpravljajo težave v izvirnem pogonu. Priljubljeni so Boom, PrBoom, PrBoom+, Zdoom in Chocolate Doom.
Pogon Doom notranje predstavlja ravni s strukturami, imenovanimi linedefi, sidedefi, sektorji, vertikalami in stvarmi (pošasti, predmeti, okraski itd.). Motor Doom prebere ravni in druge podatke iz datoteke, imenovane WAD.
Pogon Doom v celoti upodablja ravni na procesorju in ne na grafični kartici, saj večina grafičnih kartic v tistem času (1993) ni imela pospeševanja 3D. To je zahtevalo zelo učinkovite algoritme, da je igra delovala na takratnih počasnih računalnikih.
Pogon Doom je bil na voljo za več vrst računalnikov kot katerikoli drug pogon za prvoosebne strelske igre. Programerji ga zlahka pripravijo za delovanje na novi vrsti računalnika, saj je napisan v jeziku C in uporablja zelo malo sistemskih virov, kar mu omogoča delovanje na ročnih računalnikih in računalnikih brez 3D pospeševalnika.
Zgodovina in izid izvorne kode
Pogon je razvil id Software pod vodstvom Johna Carmacka v začetku 1990-ih. Doom je izšel leta 1993 in je hitro postal vpliven zaradi hitrosti, igrivosti in razširljivosti. Izvorna koda pogona je bila prvič javno objavljena pozneje v devetdesetih; kasneje je bila izvorna koda izpuščena tudi pod splošno javno licenco GNU, kar je omogočilo široko razvojno skupnost in nastanek številnih izvornih portov ter modifikacij.
Arhitektura in ključne tehnike
Pogon uporablja več značilnih tehnik, zaradi katerih je bil tako hiter in prenosljiv:
- Binarna razdelitev prostora (BSP) — raven se razdeli na pod-prostore (subsectors), kar omogoča hitro determinizacijo vidnih področij in pravilno risanje scen brez izčrpnega preizkusa vidnosti za vsako polje.
- 2.5D ali "pseudo-3D" — Doom ni pravi 3D pogon: ravni so sestavljene iz sektorjev z višino tal in stropa, teksture so na ravninah, vendar ni podporo za polno prostorsko prekrivanje (npr. "sobe ena nad drugo" brez trikov niso možne) ali nagnjene površine. Ta poenostavitev je bistveno pospešila upodabljanje in načrtovanje stopenj.
- Column-based renderer — upodabljanje slik poteka po navpičnih stolpcih (columns) in uporablja tabele za hitro preslikavo tekstur, osvetlitev in palete (colormap). Velik del kritičnih zank je bil optimiziran v sestavljavnem jeziku za dodatno hitrost.
- Sprite-fiksen prikaz — pošasti, predmeti in okrasje so predstavljeni kot dvodimenzionalni spritei, ki so vedno obrnjen proti kameri (billboarding), kar je poenostavilo 3D iluzijo.
- Osvetlitev in barvna paleta — pogon uporablja omejeno barvno paleto in posebne tabele za zatemnjevanje/razsvetlitev (light levels), kar je pomagalo pri atmosferskem videzu in hkrati ohranilo hitrost.
WAD format
Vsi podatki o nivojih, teksturah, zvokih in grafičnih elementih so shranjeni v datotekah WAD. Obstajata dve glavni vrsti: IWAD (glavni podatkovni WAD igre) in PWAD (uporabniški ali mod WAD). WAD je sestavljen iz vrst "lumpov" z različnimi podatki — za stopnje so ključni lumpi, ki opredeljujejo linedefe, sidedefe, sektorje, vertikale, THINGS (pošasti in predmeti), VERTEXES ipd. To omogoča urejanje stopenj z zunanjimi orodji in enostavno razširljivost vsebine.
Izvorni porti in skupnost
Ker je bila izvorna koda na voljo, so ustvarjalci skupnosti razvili številne izvorne porte, ki izvirni pogon razširjajo, izboljšujejo stabilnost, odpravljajo napake in dodajajo sodobne funkcije. Med priljubljenimi so Boom, PrBoom, PrBoom+, Zdoom in Chocolate Doom, vsaka s svojimi poudarki (združljivost z mapami, natančnost izvajanja izvirnega vedenja, nove skriptne možnosti, boljša omrežna igra ipd.). Novi porti pogosto dodajo podporo za miško, prosto vrtenje kamere (freelook), razširjene formate skriptov in sodobne grafične nastavitev brez žrtvovanja združljivosti s starimi WAD-ji.
Značilnosti in omejitve
- Upodabljanje na CPU: izvirni Doom je vse risal na procesorju, saj so bile grafične kartice s 3D pospeševanjem redke — zato je bil pogon zelo optimiziran za hitrost na takratnih strojih.
- Velika prenosljivost: koda v jeziku C in minimalna odvisnost od sistema sta olajšali portanje na številne platforme — od osebnih računalnikov do konzol in vgrajenih sistemov.
- Omejitve 2.5D: ni podpore za nagnjene razpone, kompleksno prostorsko prekrivanje ali popolno 3D geometrijo, zato so morali oblikovalci stopenj uporabljati trike (npr. visinska ureditev sektorjev) za ustvarjanje iluzije kompleksnosti.
- Grafične omejitve: fiksna paleta in omejene teksturne funkcije v primerjavi z modernimi pogoni, čeprav to daje igri značilen videz.
Vpliv in pomen
Doomov pogon je pomembno vplival na razvoj iger z več vidiki: hitrost izvajanja, razširljivost preko WAD-jev, bogata moderska scena in standard nastavitve za prvoosebne strelske igre. Njegova arhitektura je dokazala, da je mogoče z dobro zasnovo in pametnimi optimizacijami doseči prepričljivo tridimenzionalno izkušnjo tudi brez sodobnega strojnega pospeševanja.
Čeprav je tehnologija napredovala in sodobni pogoni nudijo mnogo več (pravo 3D, fizikalne simulacije, osvetlitev v realnem času itd.), ostaja id Tech 1 (Doomov pogon) pomemben mejnik v zgodovini videoiger in priljubljena platforma za učenje, eksperimentiranje in ustvarjanje modifikacij.
Vprašanja in odgovori
V: Kaj je motor Doom?
O: Motor Doom je računalniška koda, ki stoji za videoigro Doom. Uporablja ga tudi več drugih iger, vključno z Doom 2 (ne pa tudi Doom 3, ki ima svoj lasten pogon). Močno spremenjene različice motorja Doom se uporabljajo v igrah Heretic, Hexen in Strife.
V: Kako pogon Doom prikazuje 3D-ravni?
O: Motor Doom uporablja tehniko, imenovano binarna razdelitev prostora, za predstavitev 3D-ravni na način, ki ga lahko računalnik hitro obdela.
V: V katerem jeziku je napisan motor Doom?
O: Motor Doom je večinoma napisan v jeziku C.
V: Ali je na voljo odprtokodna različica gonilnika Doom?
O: Da, izvorna koda motorja Doom je bila brezplačno objavljena pod splošno javno licenco GNU. Številni oboževalci so naredili tudi lastne spremenjene različice, imenovane izvorni porti.
V: Kateri so nekateri priljubljeni izvorni prenosi izvirnega motorja doom?
O: Med priljubljene izvorne porte spadajo Boom, PrBoom, PrBoom+, Zdoom in Chocolate Doom.
V: Katere strukture uporablja motor Doom za notranjo predstavitev ravni?
O: Motor Doom notranje predstavlja ravni z uporabo struktur, imenovanih linedefs, sidedefs, sectors, verticies in things (torej pošasti, predmeti, okraski itd.).
V: Kako bere podatke iz datotek?
O: Motor Doom prebere ravni in druge podatke iz datoteke, imenovane WAD.
Iskati