Пређи на садржај

Id Tech 4

С Википедије, слободне енциклопедије
ID Tech 4
Програмер(и)id Software
Прво издање3.8.2004.
Репозиторијум Уреди на Википодацима
Написан уC++
Оперативни системWindows, OS X, Linux, Xbox, Xbox 360, PlayStation 3
ТипПокретач видео игре
ЛиценцаГНУ-ова општа јавна лиценца
Веб-сајтgithub.com/id-Software/DOOM-3-BFG

id Tech 4, познатији као Doom 3 engine, јесте покретач игре који је развила компанија id Software и први пут је коришћен у игри Doom 3. Покретач је направио John Carmack. Carmack је такође креирао и претходне верзије, као што су оне за игре Doom и Quake, које су широко признате као значајни доприноси у овој области. Овај покретач игре заснован на технологији OpenGL коришћен је и за игре Quake 4, Prey, Enemy Territory: Quake Wars, Wolfenstein и Brink.

Историја

[уреди | уреди извор]

id Tech 4 је почео као проширење id Tech 3. Током развоја, у почетку је био само потпуни препис од покретачевог приказивача (рендерер), при чему је задржао друге подсистеме, као што су приступ датотекама и управљање меморијом. Одлука да се пређе са програмског језика C на C++ захтевала је реструктурирање и преписивање остатка на нови покретач; данас, id Tech 4 садржи део кôдa из id Tech 3 покретача, већим делом само преписаног.[1]

Током QuakeCon 2007, Џон Кармак, главни графички издавач покретача игара у id-у, рекао је LinuxGames: "Мислим, нећу се држати датума, али Doom 3 компоненте ће бити отвореног кода". Као и његови претходници, John Carmack је рекао да ће id Tech 4 бити издат као open source (отворени код).[2]

На QuakeCon 2009, Кармак је рекао да планира да покрене петицију за ZeniMax Media да издају id Tech 4 код током издавања њихове нове игре - Rage.[3] Као део свог обраћања током QuakeCon 2011 потврдио је да ће изворни код Doom 3 бити издат до краја године, после издавања Rage-а.[4]

16. новембра, 2011, Кармак најавио је на Twitter-у да он пише нови код за Doom 3 издавање отовреног кода, зато што "су адвокати  још увек снебљиви о питању патента око Carmack-ове промене".[5] Ово се односи на имплементацију stencil buffered shadow volume (стенсил бафер просторне сенке) алгоритама.

22. новембра, 2011, Carmack издаје Doom 3 изворни код на GitHub.[6] Код не укључује никакве измене Carmack-ове промене кода. Према Carmack-у, мање измене су направљене да би се избегао било какав прекршај.[7]

Оригинални захтев/потреба за id Tech 4 била је "high-end" графичка картица (GPU) са пуним програмерским пиксел сенкама (pixel shaders) и највишим тачкама/врхунци (vertex), као што су Nvidia GeForce 3 или ATI Radeon 8500, са најмање 64 MB VRAM-а. До E3 2002, препоручена GPU је била "100% DirectX 9.0b компатибилност", као што су Radeon 9700 са 128 MB VRAM-а. Док Radeon 9700's DirectX 9.0 могућности нису биле потребне за рендеровање игре, њена напредна архитектура, 256-битна меморијска магистрала, и ефикасност биле су потребне за покретање Doom 3 на високим детаљима и брзином потребном за игру.[8]  "Ultra" графички мод који је унутар Doom 3 није могуће покренути на тадашњим картицама све до 2004, који је захтевао 512 MB видео меморије да би се могао поставити и нормално играти унутар њега, што значи да је фактички био не употребљив током самог његовог издања.[9]

id Tech 4 резултирао је застарелост DirectX 7 графичких чипова као што су GeForce 2 и Radeon 7200, као и страрији чип-сетови RIVA TNT2 и Rage 128, и софтверско рендеровање (са интегрисаном Intel GMA). До доласка id Tech 4, јаки/снажни CPU-процесори су били у стању да донекле компензује за старије графичке картице. Док је John Carmack упозоравао гејмере да не купују  GeForce 4 MX[10] (коју обични потрошачи често збуњују са DirectX 8 способности GeForce 4 Ti, иако је то било најбоље побољшање GeForce 2), њена донекле раширена употреба приморала је id Software да га дода у листу подржаних картица. Било је случајева ентузијаста који су присиљавали Doom 3 да ради на не подржаним графичким чиповима, као што је дуго застарели Voodoo 2, али они нису били у стању да рендерују осветљење по пикселу и изненадна/испупчена мапирања.[11]

Карактеристике

[уреди | уреди извор]

Id Tech 4 је додао неколико нових графичких функција које су биле одсутне у претходнику, id Tech 3. Оне укључују bump mapping (изненадно мапирање), normal mapping (нормално мапирање), и specular highlighting (рефлектирајуће истицање). Додатне функције су додате током развоја наредних успешних игара, и у још необјављеним играма које користе id Tech 4, нове функције су додате или су планиране да се додају у скорије време.

Главна иновација id Tech 4 била је потпуно коришћење динамичке методе пиксел по пиксел осветљења (per-pixel lighting), док су се претходно, 3D покретачи ослањали на коришћење већ израчунатих врхунаца осветљења (vertex lighting) или lightmaps и Gouraud shading. Док су динамички ефекти били доступни раније (као што су динамичко покретна светла), овај ефекат је само променио осветљеност темена полигона, уз боје пиксела једноставно се уметне између три високе боје свог полигона.

Овај потпуни приступ у реалном времену користи се у Doom 3, у комбинацији са употребом волумена у сенци дозвољено је реалније осветљење и сенке[12] него у претходним генерацијама id-ових покретача. Метод који се користи за креирање волумена у сенци је предмет патента који је креиран од стране Creative, који Creative даје id-ову дозволу за коришћење унутар Doom 3 покретача, у замену за подржавање Creative-овог EAX-а - напредне технологије звука.[13]

Модели коришћени у id Tech 4 покретачима игара су анимиране помоћу skeletal animation (скелетних анимација). Покретач може да помеша вишеструке анимације заједно, да би створио изглед који тачно описује покрете те анимације. Зато што је ово веома "тешко" за CPU, id је урадио доста посла на оптимизацији ових метода помоћу Intel-ове Streaming SIMD Extensions (SSE).[14]

MegaTexture технологија приказивања (рендеровања)

[уреди | уреди извор]

Оригинална верзија id Tech 4 покретача је дизајниран за мрачно окружење тако да је критикована због уочене немогућности да се избори са изузетно великим отвореним просторима који има дневно осветљење. MegaTexture технологија није само уклонила овај проблем увођењем средства за стварање широких отворених сцена, већ је и направила нову верзију као најбољи покретач игре за спољашње области. "Фарбањем" једне масовне текстуре (32,768×32,768 pixels-пиксела, иако је продужен до већих димензија у новијим верзијама у MegaTexture технологији) која покрива цео полигон и веома детаљно терен, жељени ефекти могу се постићи. MegaTexture tакође може одредити физичке информације о терену као што су износ тракције у појединим областима или навести који звучни ефекат треба да се чује када модел хода преко специфичних делова мапе. односно ходање по стени ће звучати другачије од ходања на трави.[15] Очекује се да ће ово довести до знатно детаљнијих сцена од већине постојећих технологија, користећи поплочане текстуре. Прва игра која је користила MegaTexture је Enemy Territory: Quake Wars, базирана на Tech 4 покретачу. Све id Tech 5 игре користе MegaTexture.

Технике рендеровања (приказивања) унутар id Tech 4 покретача

[уреди | уреди извор]

Скрипта покретача (језик покретача којим је написан - Engine Script)

[уреди | уреди извор]

id Tech 4 има свеобухватни језик скрипте која се може користити када креирате модове, и користи се у Doom 3 за контролу "чудовишта", оружја и за мапирање догађаја. Овај скриптни језик је сличан C++.[16]

Поред главног скрипт језика, idTech 4 има још један скрипт језик који се користи за GUI (изглед) - и за мени и за HUD, такође и за GUI који је убачен у окружењу саме игре.[17] Ове скриптке које су убачене унутар саме игре су довољно "јаке" да на пример можете покренути другу игру унутар ње као што је на пример Doom 1.[18]

Упркос овом додатном нивоу скрипти, такође је могуће да се створе модови користећи C++ да направите "урођени" код.[19]

Као резултат договора са Creative-овом у вези са патентом за нивое јачина сенки, id Tech 4 покретач користи OpenAL, укључујући Creative Technology специфичне EAX екстензије. Посао око убацивања OpenAL подршке је урађена од стране Creative Technology, а не од стране id-а.[20]

Умрежавање

[уреди | уреди извор]

Покретач користи класично повезивање client–server model (клијент-сервер начин). У почетку је било планирано да имају peer-to-peer (од тачке до тачке) повезивање. Овај део покретача ради на основи сличној као id Tech 3 покретач, како год id Tech 4 излаже много више протокола за мрежу програмерима модова.[21]

Иако Doom 3 подржава само 4 играча, id Tech 4 покретач може да се користи за више играча, Quake 4 и Enemy Territory: Quake Wars подржавају знатно више играча.

Пројекти засновани на ID Tech 4 покретачу

[уреди | уреди извор]

iodoom3 је пројекат покретача игре који намерава да искористи предности id Software-овог id tech 4 изворног кода кад он буде пуштен. Праћењем ioquake3, можемо видети да је он почео веома брзо након објаве изворног кода са циљем да креира-направи bug-free (без кварова), побољшање изворног кода id tech 4 кода и да га дистрибуише тако да се на њему заснивају нове игре и пројекти.[22]

dhewm3 је такође пројекат покретача игре id Tech 4 GPL изворног кода. Циљ овог пројекта је да id Tech 4 омогући, уз помоћ SDL, свим погодним платформама, и поправи грешке (bugs-багове) које постоје без промене оригиналног gameplay-начина игре.[23]

Главна промена dhewm3 у поређењу са id Tech 4 покретачем је 64-битни порт, SDL подршка за "лошије"-слабије оперативне системе, OpenAL за аудио излаз, укључујући OpenAL EFX за EAX reverb ефекте и портабилни систем базиран на CMake-у.[23]

RBDOOM-3-BFG пројекат покретача игре заснован на изворном коду приликом издавања Doom 3 BFG едиције 2012 године. Додатне функције укључују подршку за Linux и Windows 32/64-битне системе, подршку OS X , подршку Bink-овом видеу преко FFmpeg-а, Soft shadows (меке сенке) помоћу PCF хардверског мапирања сенки и за интеракцију осветљења која би користила Half-Lambert-ов систем осетљења као што се користи у Half-Life 2. [24]

Игре које користе id Tech 4

[уреди | уреди извор]

У односу на претходну и нашироко коришћеном id Tech 3 (Quake III Arena покретачу) и id Tech 2 (Quake II покретач), id Tech 4 је имао мање успеха у лиценцирању другима.[25] Ово је посебно видљиво у поређењу са својим најближим савремеником, Unreal Engine 2 (2002) и Unreal Engine 3 (2006) покретачима Epic Games-а.[26] id Software није био вољан да лиценцира свој најновији покретач пре него што је "матична игра" Doom 3 била завршена. Међутим, неочекивано дуги период времена развоја Doom 3 од 2002 до 2004 значило је да они нису могли издржати темпо конкуренцију Epic Games-овог Unreal Engine 2 током тог периода. Многи који су лиценцирали Unreal Engine 2 су на тај начин могли да пређу на Unreal Engine 3 веома лако.

Док је id Tech 4 изабрао нови смер њиховог динамичког осветљења по покселу (dynamic per-pixel lighting), ова неконвенционална функција имала је "оштрије"-теже хардверске захтеве и био је у почетку само корисна у "чудним играма" (све до MegaTexture додатка), а све већи број програмера радије је бирао покретаче који могу учинити велико приказивање-рендеровање на отвореном простору. Такође, приметно је да id Tech 4 имао релативни недостатак силазне скалабилности у односу на конкурентске FPS покретаче; id Tech 4 генерално захтева DirectX 8.0 компатабилну графичку картицу (GPU) као што је GeForce 3; ривалски-конкурентски Source engine (изворни покретач) (који је настао из претходног GoldSrc покретача) могао је и даље да се покреће на старијим широко коришћеним DirectX 7 графичким картама (али се користи без нијанси осветљења).

Игре које користе власничку лиценцу

[уреди | уреди извор]

Игре које користе лиценцу отвореног кода

[уреди | уреди извор]

Референце

[уреди | уреди извор]
  1. ^ Q&A with John Carmack, E3 2002 Архивирано на сајту Wayback Machine (29. септембар 2009)[dead link]
  2. ^ Carmack, John (August 7, 2007).
  3. ^ Totilo, Stephen. „The John Carmack Keynote: Liveblogging QuakeCon”. Kotaku.com. Приступљено 5. 1. 2016. 
  4. ^ "Id Software will release the Doom 3 source code" Архивирано на сајту Wayback Machine (7. август 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" Архивирано [Date missing] на сајту Archive-It.
  9. ^ Doom is a boon Архивирано на сајту Wayback Machine (27. јул 2011) Game Industry News, article by Todd Hargosh.
  10. ^ „File for John Carmack (February 11, 2002)”. Архивирано из оригинала 05. 09. 2015. г. Приступљено 05. 01. 2016. 
  11. ^ "Doom3 + Voodoo2_Patch_v1_0".
  12. ^ „Doom 3”. Digit-life.com. Приступљено 5. 1. 2016. 
  13. ^ by craig@arstechnica.com - Jul 28, 2004 7:04 pm UTC (28. 7. 2004). „John Carmack: "This sucks.". Arstechnica.com. Приступљено 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. Приступљено 5. 1. 2016. 
  15. ^ „GameSpy: Enemy Territory: Quake Wars Preview”. Pc.gamespy.com. Архивирано из оригинала 13. 08. 2018. г. Приступљено 5. 1. 2016. 
  16. ^ „Making DOOM 3 Mods : Scripts”. Iddevnet.com. Архивирано из оригинала 10. 12. 2015. г. Приступљено 5. 1. 2016. 
  17. ^ „Making DOOM 3 Mods : GUIs”. Iddevnet.com. Архивирано из оригинала 11. 08. 2016. г. Приступљено 5. 1. 2016. 
  18. ^ „Fully Interactive Surfaces”. Battleteam.net. Приступљено 5. 1. 2016. 
  19. ^ „Making DOOM 3 Mods : The Code”. Iddevnet.com. Архивирано из оригинала 07. 03. 2016. г. Приступљено 5. 1. 2016. 
  20. ^ "How the latest Sound Blaster X-Fi technology was utilized in QUAKE 4" Архивирано на сајту Wayback Machine (4. август 2012).
  21. ^ „The Code - see Game Utility Files”. Iddevnet.com. Архивирано из оригинала 07. 03. 2016. г. Приступљено 5. 1. 2016. 
  22. ^ "iodoom3 official site" Архивирано на сајту Wayback Machine (1. новембар 2020).
  23. ^ а б "dhewm/dhewm3 GitHub".
  24. ^ "RobertBeckebans/RBDOOM-3-BFG GitHub".
  25. ^ „id Tech 4 (Concept)”. Giant Bomb. Приступљено 5. 1. 2016. 
  26. ^ "id Tech 5".
  27. ^ Meer, Alec (22. 10. 2012). „Outta Dunwall: Thief Remake The Dark Mod Updates”. Rock, Paper, Shotgun. Приступљено 5. 1. 2016. 
  28. ^ "The Dark Mod".
  29. ^ Campbell, Colin (February 4, 2013).

Спољашње везе

[уреди | уреди извор]