id Tech 3 - id Tech 3

id Tech 3
Logo Id Tech 3.png
Quake III Arena q3dm0.png
id Tech 3 v Quake III , rodičovské hře motoru
Vývojáři id Software
Stabilní uvolnění
1.32b / 19. srpna 2005 ; Před 16 lety ( 2005-08-19 )
Úložiště github.com/id-Software/Quake-III-Arena
Napsáno C
(přepsáno 14% v C ++ )
Plošina PC , Mac OS , OS X , Linux , Dreamcast , Nintendo GameCube , Nintendo Switch , PlayStation 2 , PlayStation 3 , PlayStation 4 , Xbox , Xbox 360 , iOS , Android
Předchůdce Motor Quake II
Nástupce id Tech 4
Licence GNU GPL-2.0 nebo novější
webová stránka www .idsoftware .com /business /idtech3 / Upravte to na Wikidata
Star Trek: Elite Force II byla jednou z posledních her, které využívaly engine id Tech 3.

id Tech 3 , populárně známý jako Quake III Arena engine , je herní engine vyvinutý společností id Software pro jejich videohru Quake III Arena . Byl přijat mnoha hrami. Během své doby soutěžil s Unreal Engine ; oba motory byly široce licencovány.

Zatímco id Tech 3 je založen na id Tech 2 enginu, velké množství kódu bylo přepsáno. Nástupce id Tech 4 byla odvozena z id Tech 3, stejně jako nekonečno Ward je IW motor použitý v CoD2 dále.

Na QuakeCon 2005 John Carmack oznámil, že zdrojový kód id Tech 3 bude vydán pod licencí GNU General Public License v2.0 nebo novější , a byl vydán 19. srpna 2005. Původně distribuován id prostřednictvím FTP , kód lze staženo z účtu GitHub id .

Funkce

Grafika

Na rozdíl od většiny ostatních herních motorů vydaných v té době -včetně jeho hlavního konkurenta, Unreal Engine , id Tech 3 ke svému provozu vyžaduje grafický akcelerátor kompatibilní s OpenGL . Motor neobsahuje softwarový renderer .

id Tech 3 kromě rovinných objemů představil zakřivené povrchy na bázi spline, které jsou zodpovědné za mnoho povrchů přítomných ve hře.

Shadery

Grafická technologie hry je úzce založena na systému „ shader “, kde lze vzhled mnoha povrchů definovat v textových souborech označovaných jako „shader skripty“. Shadery jsou popsány a vykresleny jako několik vrstev, každá vrstva obsahuje texturu, „režim prolnutí“, který určuje, jak ji překrýt s předchozí vrstvou a režimy orientace textury, jako je mapování prostředí, posouvání a otáčení. Tyto funkce lze snadno vidět ve hře s mnoha jasnými a aktivními povrchy na každé mapě a dokonce i na modelech postav. Shaderový systém jde nad rámec vizuálního vzhledu, definuje obsah objemů (např. Objem vody je definován nanesením vodního shaderu na jeho povrchy), vyzařování světla a zvuk, který se přehraje, když je objem přešlapován. Aby bylo možné vypočítat tyto shadery, implementuje id Tech 3 specifickou rychlou inverzní funkci odmocniny , která v komunitě vývojářů her přilákala značnou pozornost díky chytrému používání celočíselných operací.

Video

Všechna videa ve hře používají proprietární formát nazvaný „RoQ“, který původně vytvořil Graeme Devine , spoluautor hry Quake 3 , pro hru The 11th Hour . Interně RoQ používá vektorovou kvantizaci pro kódování videa a DPCM pro kódování zvuku. Zatímco samotný formát je proprietární, byl úspěšně reverzně upraven v roce 2001 a skutečný dekodér RoQ je přítomen ve vydání zdrojového kódu Quake 3 . RoQ zaznamenal malé využití mimo hry založené na motorech id Tech 3 nebo id Tech 4 , ale je podporován několika video přehrávači (například MPlayer ) a existuje několik kodérů třetích stran. Jednou výraznou výjimkou je hra Postal 2: Apocalypse Weekend založená na Unreal Engine , která používá soubory RoQ pro své úvodní a výstupní scény, stejně jako pro vtipnou scénu, která se hraje po misi na konci první části.

Modely

id Tech 3 načte 3D modely ve formátu MD3. Formát používá k uložení animace pohyby vrcholů (někdy se jim říká animace na vrchol ) na rozdíl od animace skeletu . Animace je k dispozici ve formátu MD3 jsou lepší než ty v id Tech 2 ‚s MD2 formát, protože animátor je schopen mít řadu variabilní o klíčových snímků za sekundu, namísto standardních 10 klíčových snímků MD2 je za sekundu. To umožňuje složitější animace, které jsou méně „roztřesené“ než modely nalezené v Quake II .

Další důležitou vlastností formátu MD3 je, že modely jsou rozděleny do tří různých částí, které jsou navzájem ukotveny. Obvykle se to používá k oddělení hlavy, trupu a nohou, aby každá část mohla animovat nezávisle kvůli míchání animací (tj. Běžící animace na nohách a střílení animace na trup). Každá část modelu má svou vlastní sadu textur.

Modely postav jsou osvětleny a zastíněny pomocí Gouraudova stínování, zatímco úrovně (uložené ve formátu BSP ) jsou osvětleny buď světelnými mapami nebo Gouraudovým stínováním v závislosti na preferencích uživatele. Motor je schopen odebírat barevná světla ze světelné mřížky a aplikovat je na modely, což má za následek na svou dobu velmi vyspělou kvalitu osvětlení.

Ve verzi zdrojového kódu s GPL chyběla většina kódu zabývajícího se soubory kosterní animace MD4 . Předpokládá se, že id prostě nikdy nedokončil formát, ačkoli téměř všichni držitelé licence odvozovali své vlastní kosterní animační systémy z toho, co bylo přítomno. Ritual Entertainment to udělalo pro použití ve hře, Heavy Metal: FAKK² , SDK, ke kterému tvořil základ podpory MD4 dokončený někým, kdo používal pseudonym Gongo.

Dynamické stíny

Motor je schopen tří různých druhů stínů. Člověk jen umístí kruh s vybledlými okraji k nohám postav, běžně známý jako technika „blob shadow“. Zbylé dva režimy promítají přes podlahu přesný polygonální stín. Rozdíl mezi posledními dvěma režimy spočívá v tom, že se někdo spoléhá na neprůhledné, plné černé stíny, zatímco druhý režim se pokouší (se smíšeným úspěchem) promítat stíny objemu stínů stínové hloubky do středně průhledné černé. Žádná z těchto technik nepřekrývá objemy stínů, což způsobuje, že se stíny prodlužují po stěnách a skrz geometrii.

Další funkce vykreslování

Mezi další vizuální funkce patří volumetrická mlha , zrcadla, portály, obtisky a zkreslení vrcholů tvaru vlny.

Zvuk

Zvukový systém id Tech 3 vystupuje do dvou kanálů pomocí vyrovnávací výstupní vyrovnávací paměti, smíchané z 96 stop se stereo prostorovou a dopplerovským efektem . Veškeré míchání zvuku probíhá v enginu, což může dělat problémy držitelům licence, kteří doufají v implementaci podpory EAX nebo prostorového zvuku . Nechybí ani několik populárních efektů, jako jsou ozvěny.

Hlavní chybou zvukového systému je, že mixážnímu pultu není přiřazeno vlastní vlákno, takže pokud se hra zastaví příliš dlouho (zejména při procházení nabídek nebo připojení k serveru), začne se malá výstupní vyrovnávací paměť smyčkovat, což je velmi znatelný artefakt. Tento problém byl také přítomen v motorech Doom 3 , Quake a Quake II .

Sítě

id Tech 3 používá systém „snapshot“ k přenosu informací o herních „rámcích“ klientovi přes UDP . Server aktualizuje interakci objektu s pevnou rychlostí nezávisle na rychlosti, kterou klienti aktualizují server svými akcemi, a poté se pokusí odeslat stav všech objektů v daném okamžiku (aktuální rámec serveru) každému klientovi. Server se pokusí vynechat co nejvíce informací o každém rámci a předá pouze rozdíly od posledního rámce, který klient potvrdil jako přijatý ( kódování Delta ). Všechny datové pakety jsou komprimovány Huffmanovým kódováním se statickými předem vypočítanými frekvenčními daty, aby se ještě více snížilo využití šířky pásma.

Quake 3 také integroval relativně propracovaný systém ochrany proti podvádění s názvem „čistý server“. Jakýkoli klient připojující se k čistému serveru má automaticky povolený čistý režim, a když je povolen čistý režim, lze přistupovat pouze k souborům v datových balíčcích. Klienti jsou odpojeni, pokud jejich datové balíčky selžou při jedné z několika kontrol integrity. Soubor cgame.qvm s vysokým potenciálem pro úpravy související s cheatem podléhá dalším kontrolám integrity. Vývojáři musí ručně deaktivovat čistý server, aby mohli testovat mapy nebo mody, které nejsou v datových balíčcích, pomocí formátu souboru PK3. Pozdější verze doplnily čistý server o podporu PunkBusteru , i když ve vydání zdrojového kódu chybí všechny háčky, protože PunkBuster je uzavřený zdrojový software a jeho podpora ve vydání zdrojového kódu by způsobila porušení redistributorů/opětovných uživatelů kódu GPL .

Virtuální stroj

id Tech 3 používá virtuální počítač k řízení chování objektů na serveru, efektů a predikcí na klienta a uživatelského rozhraní. To přináší mnoho výhod, protože autoři modů si nemusí dělat starosti se zhroucením celé hry se špatným kódem, klienti mohli ukázat pokročilejší efekty a herní nabídky, než bylo možné v Quake II, a uživatelské rozhraní pro mody bylo zcela přizpůsobitelné.

Soubory virtuálních počítačů jsou vyvíjeny v ANSI C pomocí LCC k jejich kompilaci do 32bitového formátu pseudosestavování RISC . Nástroj s názvem q3asm je poté převede na soubory QVM , což jsou vícesegmentové soubory skládající se ze statických dat a pokynů založených na redukované sadě vstupních operačních kódů. Pokud nejsou použity operace, které vyžadují konkrétní endianness , soubor QVM poběží stejně na jakékoli platformě podporované Quake 3.

Virtuální počítač také obsahoval kompilátory bajtových kódů pro architektury x86 a PowerPC , které prováděly pokyny QVM prostřednictvím tlumočníka .

zemětřesení 3

Automatické zrcadlové a normální mapování v klientovi předběžného vydání ioQuake3, Tremulous 1.3

Ioquake3 je projekt herního enginu, jehož cílem je stavět na vydání zdrojového kódu id Tech 3 za účelem odstranění chyb, vyčištění zdrojového kódu a přidání pokročilejších grafických a zvukových funkcí prostřednictvím SDL a OpenAL . ioquake3 má také fungovat jako balíček čisté základny, na kterém lze stavět další projekty. Herní engine podporuje formát Ogg Vorbis a pořizování videí s ukázkami ve formátu .avi .

Projekt byl zahájen krátce po vydání zdrojového kódu s cílem vytvořit bug -Zdarma posílená open source Quake III zdrojový kód motoru distribuce, na které nové hry a projekty mohou být založeny. Kromě toho si projekt klade za cíl poskytnout vylepšené prostředí, ve kterém lze hrát Quake III: Arena , rozšiřující balíček Team Arena a všechny oblíbené módy . Mezi významné funkce přidané projektem patří vestavěná podpora VoIP , stereo vykreslování Anaglyph (pro prohlížení pomocí 3D brýlí) a četné opravy zabezpečení. Seznam některých funkcí je k dispozici na webových stránkách projektu .

Ioquake3 byl základem několika herních projektů založených na id Tech 3 enginu, jako je OpenArena (napodobující Quake III Arena ), Tremulous , Smokin 'Guns , Urban Terror , Turtle Arena a World of Padman a také projekty herních motorů, jako je efport ( projekt rekreace motoru Star Trek: Voyager - Elite Force Holomatch ), ioJedi Outcast, ioJedi Academy, ioDoom3 a OpenMoHAA . Motor a s ním spojené hry byly zahrnuty v několika distribucích Linuxu a BSD .

Zdrojový kód pro motory Return to Castle Wolfenstein a Wolfenstein: Enemy Territory byl vydán pod GNU GPL-3.0 nebo novějším 12. srpna 2010. Vývojáři ioquake3 oznámili zahájení příslušných projektů motorů (iortcw, iowolfet, Enemy Territory: Legacy) brzy poté.

Projekt ioquake3 byl také použit v akademické sféře jako základ pro řadu výzkumů v institucích, jako je Centrum počítačového výzkumu hudby a akustiky Stanfordské univerzity (CCRMA), Notre Dame jako základ pro výzkum VR a Swinburne University of Centrum technologií pro pokročilé internetové architektury. Výzkumníci z Carnegie Mellon University a University of Toronto dokonce vyvíjejí společné úsilí, které používají ioquake3 jako platformu pro své publikované výzkumy. Studenti použili ioquake3 jako základ pro pokročilou grafickou práci pro své práce, jako je například práce Stephana Reitera, která byla dokonce zaznamenána v projektu LLVM díky jeho syntéze motoru ioquake3, technice vykreslování paprsků a LLVM.

I když název „ioquake3“ je založen na Ryan „Icculus“ Gordon ‚s webu icculus.org , Ryan nevede projektu. Místo toho udržuje roli mentora a poskytuje hostování pro seznamy adres a úložiště SVN používané projektem.

Hry využívající engine

Hry založené na vydání zdroje

  • OpenArena - An open source samostatná hra založená těžce na Quake III Arena - style deathmatch. Hra se pokouší napodobit Quake III Arena tak , že hráč skóruje a vyhraje hru pomocí vyvážené sady zbraní, z nichž každá je určena pro různé situace. OpenArena je také schopna provozovat některémody založené na Quake III Arena , jako je Tremulous 1.0. OpenArena běží na ioquake3 a verze 0.8 byla úspěšně přenesena na Android.
  • Space Trader - Akční/strategická hra od HermitWorks Entertainment .
  • Smokin 'Guns -otevřená hra z pohledu první osoby, která měla být semi-realistickou simulací atmosféry „starého západu“. Původněmodifikace Quake III Arena , ale stala se samostatnou hrou. V roce 2009 byl přenesen zpět do motoru ioquake3.
  • Urban Terror - A Quake III Arena celková přeměna mod zatímco navrženy a propuštěn do práce s maloobchodním softwarem Quake III Arena , to je také kompatibilní s open source alternativy motorů. Hratelnost lzes parkourovými funkcemipřirovnat k Counter-Strike s větším zaměřením na pohyb. Urban Terror běží na motoru ioquake3.
  • Tremulous -Tremulous je otevřená asymetrická mimozemská vs lidská týmová střílečka s prvky strategie v reálném čase. Každý tým může postavit a bránit základnu, která se skládá ze základních a podpůrných struktur, které hráčům nějakým způsobem pomáhají. Vítězství pro tým se obvykle provádí odstraněním nepřátelských spawnovacích struktur a zbývajících hráčů. Tremulous začínal jako Quake III Arena mod , ale od verze 1.1 se hra stala samostatnou na enginu ioquake3.

Hry využívající proprietární licenci

Na základě id Tech 3
Používání id Tech 3 s ÜberTools

Viz také

Reference

externí odkazy