Id Tech 3

С Википедије, слободне енциклопедије
ID Tech 3
Програмер(и)id Software
Прво издање2.12.1999.
Репозиторијум Уреди на Википодацима
Написан уC
Оперативни системMicrosoft Windows, Mac OS 8, Linux
ПлатформаPC, PowerPC Macintosh, Nintendo 64, PlayStation
ТипПокретач видео игре
ЛиценцаГНУ-ова општа јавна лиценца
Веб-сајтwww.idsoftware.com/business/idtech3/

id Tech 3, популарно познат као Quake III Arena engine, је покретач игре направљен од стране id Software за њихову видео игру Quake III Arena. Усвојен је у бројним играма. Током свог времена, он се такмичио са Unreal Engine; оба покретача су била широко лиценцирана.

Док је id Tech 3 базиран на id Tech 2 покретачу;велики део кода је само преписан. Наследник id Tech 4 је настао из id Tech 3 покретача.

Током QuakeCon 2005, John Carmack најавио је да ће id Tech 3 изворни код бити пуштен под ГНУ-овом општом јавном лиценцом (верзија 2), и он је пуштен 19. августа 2005. Код се може преузети са id-овог GitHub налога.

Карактеристике[уреди | уреди извор]

Графика[уреди | уреди извор]

За разлику од већине других покретача игара објављених у том времену — укључујући главног конкурента, Unreal Engine, id Tech 3 захтева OpenGL-компатабилни графички процесор за покретање. Покретач не садржи софтверски рендерер - software renderer.

id Tech 3 уводи дугачке заобљене површине поред планарних висина, које су одговорне за многе површине присутне у игри.[1]

Нијансе

Графичка технологија игре заснива се чврсто на "shader" систему где се појава многих површина дефинише у текстуалне датотеке и називају се "shader scripts" (нијансне скрипте). "Shader-и" (нијансе) су описане и доносе неколико слојева, сваки слој садржи текстуру, а "blend mode" који одређује како да га изнад претходног слоја и текстура оријентације подеси као што су мапирање животне средине, прелиставање и ротације. Ове функције могу лако да се виде у игри са много светлих и активних површина у свакој мапи, па чак и на моделима карактера.Shader систем превазилази визуелни изглед, дефинисање садржаја запремине (нпр запремина воде је дефинисана применом shader-а воде својим површинама), лаке емисије звука се емитује, која звучи као када је јачина звука "утабана".[1] Да би се помогло при рачунању ових нијанси, id Tech 3 уводи специфично брзу функцију обрнутог квадратног корена, која је привукла значајну пажњу у развоју заједнице за његовим паметним коришћењем целих операција.[2][3]

Видео

Сви видео снимци унутар саме игре користе формат познатији као "RoQ", који је направњен од стране Graeme Devine, помоћни дизајнер Quake 3, за игрицу The 11th Hour. Унутрашњи RoQ користи vector quantization (векторску квантизацију) за енкодовање видеа и DPCM за енкодовање аудиа-звука. Иако је сам формат заштићен, он је успешно реконструисан 2001 године,[4] и актуелни RoQ декодер је смештен унутар Quake 3 издања изворног кода. RoQ  је видео формат мале користи ван игре засноване на id Tech 3 или id Tech 4 покретачима, али је подржан од стране пар плејера (као на пример MPlayer) и прегршт независних енкодера и даље постоји.

Модели

id Tech 3 учитава-лоадује 3D моделе у MD3 формату. Формат користи vertex-високе покрете (понекад се помињу као vertex анимације) супротно скелетским анимацијама да би запамтио анимацију. Карактеристике анимација у формату MD3 су супериорније у односу на оне у id Tech 2 MD2 формату зато што сам "аниматор" је у могућности да има вићи број променљивих фрејмова по секунди у односу на MD2 формат који је има стандардних 10 фрејмова по секунди. Ово је омогућило комплексније анимације које су мање "дрхтаве-климаве" у односу на моделе који се налазе унутар Quake II.

Још једна важна карактеристика у вези са MD3 форматом је да се модел разбијен на три различита дела који су "усидрени" међусобно. Типично, ово се користи да се одвоји глава, труп и ноге, тако да сваки део може самостално да анимира због анимације стапања (тј ради анимација на ногама, и пуца анимација на торзо). Сваки део модела има свој сет текстура.

Модели карактера су осветљени и осенчени користећи Gouraud сенчење док су нивои (сачувани у BSP формату) осветљени или са lightmaps или са Gouraud сенкама у зависности од избора самог корисника. Покретач је у стању да боје светла узме из "лаке" координатне мреже и примени их на моделима, што је резултирало већим квалитетом осветљења који је, за своје време, био веома напредан.

Унутар "GPL-ове" верзије изворног кода, већи део кода који ради са MD4 скелетским анимацијама недостаје. Претпоставља се да id једноставно никада није завршио тај формаt,[5] иако скоро сви лиценцирани корисници свој скелетни систем анимација праве од онога што је било присутно-написано. Ritual Entertainment је урадио ово за употребу у игри, Heavy Metal: F.A.K.K.², SDK који је формиран на основу MD4 подршке која је  завршена од стране "некога" под псеудонимом Gongo.[6]

Динамичке сенке

Покретач је био у стању да створи три различите врсте сенки. Један се само ставља у круг са избледелим ивицама ногу карактера, техника познатија као "blob сенка" . Друга два начина пројектује тачну полигоналну (са више тачака) сенку по поду. Разлика између последња два начина је нечије ослањање на мутне, солидне црне сенке, док су остали покушаји били (са мешовитим успехом) да се пројектује дубина додавања stencil сенке јачине звука у средње транспарентној црној боји. Ниједна од ових техника није "затворила" запремине сенки, што изазива да сенке продуже низ зидова и чак кроз саму геометрију.

Остале карактеристике рендеринга (приказивања)

Остале карактеристике укључују визуелне волуметријске магле (volumetric fog), огледала (mirrors), портале (portals), "декале" (decals), и таласне форме волуметријске искривљености (wave-form vertex distortion).

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

id Tech 3-ов  звучни систем излази на два канала који користе лупинг (петљу) као излазни бафер, помешан са 96 звукова са Стерео упросторавањем (stereo spatialization) и Doppler ефектом. Сво мешање звука се одвија у оквиру покретача, што може створити проблеме за лиценце које се надају да спроведу EAX или surround (окружени) звук. Неколико популарних ефекта као што су одјеци су одсутни.

Главни недостатак звучног система је да миксер не даје своју нит,[7] па ако игра "стоји" предуго (посебно док је кретање кроз мени или повезивање на сервер), мали излазни бафер ће почети да прави петљу, веома приметни проблем.. Овај проблем је такође и унутар Doom 3, Quake, и Quake II покретачима.

Повезивање[уреди | уреди извор]

id Tech 3 користи "snapshot" систем да пренесе информације од огре - "фрејмова" до клијента преко UDP. Ажурирање сервера поправља интеракцију по фиксној стопи независно од клијената стопа се ажурира са сервером преко својих акција, а потом покушава да пошаље стање свих објеката у том тренутку (тренутном серверу - фрејму) сваком клијенту. Сервер покушава да изостави што је могуће више информација о сваком кадру, преносећи само разлике у односу на последње оквире, клијент се потврђује као примљен (Delta кодирање). Сви пакети података компресовани по Huffman-овом кодирању статистичких података се већ унапред рачунају фреквенционално чак се и додатно смањује проток (bandwidth) коришћења.

Quake 3 такође интегрише релативно сложен систем за заштиту од "превара" (читова-cheat) под називом "чист сервер"(pure server). Било када се клијент повезује са "чистим сервером" он аутоматски омогућава "чист" начин, и док је омогућен тај режим само датотекама у пакетима података се може приступити. Клијенти су искључени (disconnected) ако њихови пакети података не прођу неколико провера интегритета. "cgame.qvm" фајл, са великим потенцијалом за "чит модификације", подлеже додатним проверама интегритета. Програмери морају ручно искључити чист сервер за тестирање мапе или модификација које нису у пакетима података коришћењем формата .pk3 датотеке. Касније верзије заштићених сервера допуњене су са подршком PunkBuster-а, мада за њега су одсутни делови изворног кода јер PunkBuster је затворени софтвер, укључујући и подршку за то у изворном коду издање би проузроковало неке издавачке/корисничке кодексе који крше GPL.[8]

Виртуелна машина[уреди | уреди извор]

id Tech 3 користи виртуелну машину да контролише понашање објеката на серверу, ефекте и предвиђања о клијенту и корисничком интерфејсу. Ово представља многе предности тако што аутори модова не морају да брину о "пуцању" целе игре због лошег кода, клијенти могу да покажу напредне ефекте и меније саме игре пре него што је то било могуће у Quake II и кориснички интерфејс за модове је био потпуно прилагодљив.

Фајлови вируелних машина су напраљене помоћу ANSI C, користећи LCC да их саставе у 32-битну RISC монтажном формату. Алатка под називом "q3asm"  их затим конвертује у QVM фајлове, који се мулти-поделом фајлова састоје од статичких података и инструкција на основу смањеног скуп улазних кодека. Уколико се користе операције које захтевају посебну "endianness" (Big endian), QVM датотека ће се покренути исто на било којој платформи која подржава Quake 3.

Виртуелна машина такође садржи бајткод компилаторе за x86 и PowerPC архитектуре, извршавајући QVM инструкције преко тумача-интерпретера.

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

Ioquake3 је пројекат покретача игре који планира да се направи чим се id Tech 3 изворни код[9][10]објави у циљу уклањања бугова, чишћење изворног кода и додавање више напредних графичких и аудио функција преко SDL и OpenALioquake3 је такође намењен да делује као чиста основица пакета, на коју могу да се изграде и други пројекти. Покретач игре подржава "Ogg Vorbis" формат и видео снимање демо снимака у .avi формату.[11]

Пројекат је започет убрзо након издања изворног кода са циљем стварања кода без багова, унапређена верзија изворног кода Quake III покретача код које су расподеле на којима се могу заснивати нове игре и пројекти. Поред тога, пројекат има за циљ да обезбеди побољшано окружење у коме се игра "Quake III: Arena", "Team Arena" експанзија и сви популарни модови могу се играти.[12][13][14][15] Битније карактеристике су додате унутар оквира пројекта који укључује уграђену VoIP подршку, Anaglyph stereo rendering (стерео рендеровање) (за гледање са 3D наочарима), такође и бројне безбедносне исправке. Комплетан списак карактеристика је доступан на сајту пројекта.

Ioquake3 је основа за неколико пројеката играра базираних на id Tech 3 покретачу, као што су OpenArena (имитирајући Quake III Arena),[16][17] OpenWolf,[18] Tremulous,[19][20] Smokin' Guns,[21] Urban Terror,[22][23] Turtle Arena и World of Padman[24][25] такође и пројекти покретача игара као што су efport (Star Trek: Voyager - Elite Force Holomatch пројекат покретача), ioJedi Outcast,[26] ioJedi Academy,[27] ioDoom3[28] и OpenMoHAA.[29] Покретач и његове придружене игре су укључени у неколико Linux и BSD дистрибуција.[30][31][32][33][34]

Изворни код за Return to Castle Wolfenstein и Wolfenstein: Enemy Territory су објављени под GNU General Public License 12. августа 2010. године.[тражи се извор] "ioquake3" програмери су најавили почетак неколико пројеката покретача игара (iortcw,[35][36] iowolfet, Enemy territory:Legacy[37]) веома ускоро/убрзо.[38]

ioquake3 пројекат је такође коришћен у академској арени као основа за различита истраживања у институцијама као што су "Stanford" универзитетски центар за компјутерска истраживања у музици и акустици (CCRMA),[39][40] "Notre Dame" као фондација за VR истраживања,[41] и центар "Swinburne" универзитета технологија за унапређивање интернет архитектуре.[42][43] Постоји чак и заједнички напор од истраживача у "Carnegie Mellon" универзитету и универзитета у Торонту који користе ioquake3 као платформу за своје објављивање истраживања.[44][45] Студенти су користили ioquake3 као основу за напредне графичке радове за своје тезе, као и што је Stephan Reiter-ов рад[46][47] који је чак чувен на LLVM пројекту због његове синтезе са ioquake3 покретачем, ray-tracing рендеринг технике, и LLVM.

Иако име "ioquake3" је базирано на Ryan ''"Icculus"'' Gordon-ов сајт[мртва веза],  Рајан не води пројекат. Уместо тога, он има менторску улогу и пружа хостинг за маил листе и SVN складиште које се користи за пројекте.[48]

Игре које користе id Tech 3[уреди | уреди извор]

Игре базиране на изворном издању[уреди | уреди извор]

  • OpenArena - Игра које је отвореног кода и која је веома базирана на Quake III Arena-(deathmatch) дедмеч стилу. Начин играња покушава да имитира Quake III Arena и да представи статистику фрагова за победу користећи избалансирани сет оружја, сваки дизајниран за различите ситуације.
  • Space Trader - Стратегијско акциона игра направљена од стране HermitWorks Entertainment.
  • Smokin' Guns - има за циљ да буде полу-реална симулација атмосфере "старог Запада". Првобитно Quake 3 модификација, али је постала самостална игра. Она је промењена назад у ioquake3 покретач 2009. године.[49]
  • Urban Terror до верзије 4.2 – Quake III Мод конверзија, док је пројектован и пуштен у рад са малопродајним софтвером Quake III, такође је компатибилан са алтернативним покретачким отвореним кодом.
  • Tremulous - Tremulous је пуцачина у првом лицу са елементима стратегије у реалном времену. Свака екипа мора изградити и бранити базу, која се састоји од објеката који помажу играчима на неки начин. Као Smokin' Guns, почела је као мод, али од 1.1 верзије постала је самостална игра.

Игре које користе власничку лиценцу[уреди | уреди извор]

Базиране на id Tech 3
Које користе id Tech 3 са ÜberTools

Види још[уреди | уреди извор]

Референце[уреди | уреди извор]

  1. ^ а б Paul Jaquays, Brian Hook.
  2. ^ Eberly, David (2002).  Недостаје или је празан параметар |title= (помоћ)
  3. ^ Sommefeldt, Rys (November 29, 2006).
  4. ^ Tim Ferguson (2001).
  5. ^ „ioquake3 md4-readme.txt”. Архивирано из оригинала 16. 07. 2012. г. Приступљено 12. 11. 2015. 
  6. ^ gongo. "md4 v4 file spec, by gongo".
  7. ^ "Sound in the main thread".
  8. ^ "Ioquake3 Help Page" Архивирано на сајту Wayback Machine (11. јануар 2016).
  9. ^ "Complete Guide: Configure and Customise ioQuake3 in Linux - Linux Today" Архивирано на сајту Wayback Machine (9. март 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" Архивирано на сајту Wayback Machine (24. септембар 2015).
  13. ^ "ioquake3 for Mac OS X available for download - Macsimum News" Архивирано на сајту Wayback Machine (12. септембар 2006).
  14. ^ "IOQuake3 OSX : Clone de Quake III (gratuit) - MaxiApple.com".
  15. ^ "IOQuake3 1.34 - Jogue Quake 3 no Mac OS X - Maclivre.net" Архивирано на сајту Wayback Machine (23. јул 2011).
  16. ^ "Open Arena about page".
  17. ^ "XP Games".
  18. ^ „OpenWolf”. GitHub. Архивирано из оригинала 11. 01. 2016. г. Приступљено 12. 11. 2015. 
  19. ^ "Tremulous about page" Архивирано на сајту Wayback Machine (10. децембар 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" Архивирано на сајту Wayback Machine (19. март 2021).
  22. ^ "Urban Terror manual".
  23. ^ "Two free games based on the Quake 3 engine tip up - The Inquirer" Архивирано на сајту Wayback Machine (28. август 2010).
  24. ^ "A Look At Free Quake3 Engine Based Games - Slashdot".
  25. ^ "Comparison of free software shooters - linuX-gamers.net"[мртва веза].
  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" Архивирано на сајту Wayback Machine (21. фебруар 2014).
  32. ^ "Package: openarena-data (0.8.1-2) - Debian".
  33. ^ "ioquake3 1.36 build 3 - FreshPorts".
  34. ^ "igames/ioquake3 - The NetBSD Packages Collection" Архивирано на сајту Wayback Machine (10. јун 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" Архивирано на сајту Wayback Machine (10. октобар 2015) (PDF).
  42. ^ "L3DGEWorld 2.1 Input & Output Specifications" (PDF).
  43. ^ "L3DGEWorld 2.3".
  44. ^ "VMM-Independent Graphics Acceleration" Архивирано на сајту Wayback Machine (9. октобар 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. стр. 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" Архивирано на сајту Wayback Machine (14. јун 2011).
  49. ^ Bougard, Guillaume (alias Tequila) (22 January 2009).

Спољашње везе[уреди | уреди извор]