Zemětřesný motor

Zemětřesný motor
Typ Herní engine ( seznam )
Vývojář ID Software
Klíčoví programátoři John Carmack , Michael Abrash
Část řady motorů ID Tech
Předchozí motor série Doom engine
Další motor v řadě ID Tech 2
Hardwarová platforma Osobní počítač
PlayStation
Podporovaný OS DOS , Windows
Psáno v jazycích C , jazyk symbolických instrukcí
Licence zdarma , GNU GPL
www.idsoftware.com

Quake engine („ Quake engine “) je herní engine vyvinutý v roce 1996 americkou společností id Software pro použití ve střílečce Quake z pohledu první osoby . Quake engine byl jedním z prvních motorů schopných zpracovávat plně 3D grafiku v reálném čase . Vývoj enginu společnost aplikovala při vývoji herních enginů nové generace - id Tech 2 a id Tech 3 , které byly vytvořeny pro hry Quake II a Quake III Arena .

V souladu s tradicí id Software , nějaký čas po úspěšném komerčním licencování, byl engine zpřístupněn k bezplatnému použití za podmínek GNU General Public License , což znamená právo kopírovat, upravovat a distribuovat jeho obsah. To mělo velký dopad na vývoj světa open source a také dalo vzniknout velkému množství forků  – herních enginů třetích stran založených na Quake enginu .

Podobně jako Doom engine , Quake engine používá systém BSP stromů . Engine také používá gouraudské stínování pro pohybující se objekty a světelné mapy pro statické objekty.

Počáteční verze enginu podporuje operační systémy DOS a Windows , nicméně otevřený zdrojový kód a použití standardu OpenGL poskytují široké možnosti pro portování programu na jiné operační systémy nebo platformy (například na herní konzoli ).

Historie vývoje

Motor byl napsán americkým programátorem Johnem Carmackem v roce 1996 v C speciálně pro Quake .  Na vývoji se podílel i Michael Abrash , který Carmackovi pomáhal s algoritmy a optimalizací kódu assembleru [1] .  

Vývoj enginu měl obrovský dopad na rozvoj průmyslu počítačových her a také na způsob jejich vývoje. . Ve skutečnosti to byl jeden z prvních motorů s otevřenou architekturou. To znamená, že vývojáři mají flexibilitu používat a upravovat hry, protože všechny použité zdroje jsou obsaženy v samostatných archivech s příponou .PAK. Engine navíc obsahuje konzoli , která používá vlastní příkazový systém. Pozoruhodnou funkcí je také použití speciálních konfiguračních souborů pro přizpůsobení, které si uživatel může otevřít v libovolném textovém editoru . Tyto textové soubory obsahují parametry hry související jak s grafickým zpracováním, tak s ovládáním. Změnou parametrů v textovém souboru si uživatel může hru upravit podle svého.

Díky otevřené architektuře enginu pro hru Quake bylo vyvinuto velké množství modifikací , z nichž některé dokázaly změnit hru k nepoznání, přidat nové lokace, zbraně, postavy a zavést do hry vlastní pravidla . Mnoho Quake modderů následně založilo své vlastní společnosti na trhu. Příkladem je studio Ritual Entertainment , které vyvinulo oficiální doplněk pro první díl Quake , a následně další nezávislé projekty, jako je střílečka SiN . Vytvoření Quake zároveň vedlo k nové etapě ve vývoji průmyslu počítačových her a prakticky ukončilo éru, kdy jediný nadšenec mohl v krátké době vyvinout komerční počítačovou hru .

Hlavním konkurentem Quake v té době byl Duke Nukem 3D , který používal herní engine Build [2] . Tato technologie používala modely skřítků a zastaralé metody modelování úrovní, díky čemuž byla z hlediska grafiky velmi horší než Quake engine , a proto se netěšila takovému úspěchu, když byla licencována vývojáři třetích stran. Quake engine byl základem pro vývoj GoldSource  , technologie, na které byla vytvořena hra Half-Life [1] [3] . Hry a modifikace na tomto enginu jsou stále aktivně vydávány.

Specifikace

Snížení 3D složitosti pro zvýšení rychlosti

Počítačová hra Quake byla jednou z prvních „plnohodnotných“ trojrozměrných her na světě.

Hra využívá speciální systém návrhu map , který provádí předběžné zpracování a předrenderování 3D prostředí, aby se snížila spotřeba energie potřebná pro zpracování obrazu během herního procesu. Tato funkce byla žádaná, protože v době vydání hry měly standardní procesory frekvenci 50-75 MHz. 3D prostředí, ve kterém se hra odehrává, odkazuje na mapu, i když prostředí je ve své podstatě 3D a ne plochý 2D prostor. Program pro úpravu map využívá mnoho jednoduchých konvexních trojrozměrných geometrických objektů, známých jako "štětce" (z anglického  brush  - rusky brush ), které mají možnost nastavit si svou velikost a míru rotace - různé objekty prostředí mohou být např. objektů.

Kartáče jsou umístěny a otáčeny tak, aby vytvořily uzavřené, prázdné, objemné prostory. Po dokončení návrhu mapy je tato mapa předána přes vykreslovací preprocesor . Tento preprocesor se používá k nalezení dvou typů prázdného prostoru na mapě: prázdného prostoru vytvořeného kartáči, ve kterém se hráč bude nacházet během hry; a další prázdné místo, které je mimo štětce a které hráč nikdy neuvidí. Poté preprocesor odstraní neviditelné povrchy z jednotlivých štětců, které jsou mimo herní prostor, a ponechá pouze ty polygony, které vymezují pouze vnější obvod vnitřního herního prostoru – tím je dosaženo výrazné optimalizace enginu a ve výsledku jeho práce se zrychluje.

Zpracovaný mapový soubor může mít výrazně méně polygonů než původní nezpracovaný soubor. Na tehdejších počítačích, jejichž centrální procesory měly frekvenci v oblasti 50-70 MHz, bylo normální, že operace ořezu trvala mnoho hodin.

Proces předběžného zpracování nelze provést, pokud existuje byť jen jedna malá díra nebo „únik“ ( anglicky  leak ), který spojuje vnitřní herní prostor s vnějším prázdným prostorem. Tento problém byl běžný na složitých mapách s mnoha stavebními objekty, protože návrhář úrovní nemohl sledovat všechny úniky na mapě. Aby se zabránilo netěsnostem, musely se kartáče navzájem překrývat a trochu pronikat. Pokus o dokonalé zarovnání zvláštně tvarovaných štětců podél jejich okrajů a ploch by mohl vést k velmi malým mezerám, které bylo velmi těžké najít.

Obloha s mraky v mapách hry Quake není ve skutečnosti otevřená, ale je pokryta a uzavřena z vnějšího prázdného prostoru velkými štětci a je také texturována speciální texturou skybox , která vypadá vždy stejně z jakéhokoli úhlu pohledu. To vytváří iluzi nekonečného horizontu.

Jakmile byla mapa předzpracována, již ji nelze upravovat. Místo toho se původní data z editoru map spolu se štětci uloží a použijí k vytvoření nových verzí mapy. Navzdory tomu je možné upravovat zpracovanou mapu otevřením ve speciálním vertex editoru  a upravovat nezpracovaná vertexová data, případně přidávat či odebírat konkrétní polygony. Podvodníci používali tuto techniku ​​k vytváření „oken“ ve zdech, aby viděli pohyby protivníků během online hry . V moderních hrách je to obtížné, protože hry obvykle kontrolují kontrolní součet každého souboru pomocí anti-cheat programu, a pokud soubor neodpovídá originálu, vstup do síťové hry není povolen.

Předvýpočet osvětlení a stínění

Quake engine také využívá světelné mapy a 3D světla, na rozdíl od sektorového statického osvětlení používaného v minulých hrách. Tato inovativní technika id Software se začala používat v mnoha hrách, které byly vydány po Quake , zejména ve střílečkách z pohledu první osoby. Ve stejné době id Software sám přešel na používání nového jednotného  modelu osvětlení a stínů a použil jej v enginu id Tech 4 (první hra na něm založená byla Doom 3 ) [4] .

Poté, co se mapa zbavila přebytečných polygonů, byl použit druhý systém předběžného zpracování, který vypočítal a implementoval světelné mapy do herní mapy, čímž ještě více snížil zatížení CPU během hry.

Rozdělení mapy na rychlost

Pro optimalizaci vykreslování byla vyvinuta technika, která umožňuje nezpracovávat ty části prostoru, které nejsou aktuálně pro hráče viditelné (např. jsou za zdí). Pokud hráč během hry nevidí nějakou oblast mapy, která je poblíž, pak engine nemůže předem zahrnout neviditelné objekty do procesu vykreslování, což výrazně snižuje zatížení CPU.

3D engine bez tohoto druhu optimalizace by byl nucen zakreslit každou část herního prostoru a pak se pokusit určit, které polygony jsou nejblíže. Neoptimalizovaný engine by pak skryl všechny polygony umístěné za těmi nejbližšími (technika známá jako Z-buffering ).

Tento efekt lze ve hře vidět jako malé tunely s pravoúhlými zatáčkami vedoucí z jednoho velkého prostoru do druhého velkého prostoru (tento designový trik je zvláště patrný ve hře Half-Life , kde malé chodby v pravém úhlu skrývají další herní úroveň) . Malý tunel se používá k zablokování pohledu do sousedního nevykreslovaného prostoru a speciální typ průhledného štětce (nazývaný visportal ) se používá k definování okrajů, kde by měl engine přestat vykreslovat sousední prostor. Ve hře Quake je schopnost vidět přes celou délku mapy poměrně vzácná, otevřená prostranství jsou často velmi úzká a vysoká, primárně využívají vzdálenosti „nad“ otevřenou oblohou a „pod“ lávou (spíše než „širší“ a „ dál"); tak vzniká low-poly iluze otevřeného prostoru.

Výkon

Binary Space Partitioning tree ( BSP ) vytvořený  z mapy zjednodušuje hledání polygonu na O (počet polygonů )  . Každý list stromu BSP vytváří určitou část 3D prostoru (jako když krájíte koláč na plátky). Listy tohoto binárního stromu mají spojené polygony původní mapy, které se pak používají k výpočtu viditelnosti každé oblasti. Algoritmus VSD pro každou oblast vyhledává ty části mapy, pro které existuje přímá viditelnost. Toto se nazývá Potenciálně viditelná sada  ( PVS ) .   

Proces využívá hodně paměti, protože musí vzít O (počet polygonů * počet polygonů) bitů (potřebné jsou pouze viditelné/skryté informace). John Carmack si uvědomil, že jeden region vidí pouze malou část ostatních regionů, a zkomprimoval tyto informace pomocí run- length kódování (RLE kódování). To umožnilo na tehdejší dobu tak složité grafice pracovat na tehdejším hardwaru celkem rychle.

3D hardwarová akcelerace

Quake engine, kromě toho, že byl jedním z prvních 3D motorů na světě, byl také prvním enginem, který podporoval 3D hardwarovou akceleraci (akceleraci). Zpočátku hra Quake (a tím i engine) měla podporu pouze pro softwarové vykreslování . John Carmack však později vytvořil verzi enginu, která využila grafický čip Vérité 1000 společnosti Rendition (tato verze enginu byla interně pojmenována VQuake).

Podpora OpenGL byla brzy přidána do enginu pro Windows 95 a vyšší (interní název této verze je GLQuake). Mnozí se domnívají, že právě to vytvořilo jakousi revoluci ve výrobě a prodeji specializovaných grafických karet , které pak byly potřeba k přesunu grafického zpracování z centrálního procesoru, a GLQuake byla první aplikace, která skutečně demonstrovala schopnosti grafického čipsetu Voodoo. z 3dfx . Pouze dvě další karty byly schopny vykreslování na GLQuake: karta Intergraph 3D OpenGL a karta PowerVR . Obě tyto karty byly profesionální a velmi drahé.

Pohyb hráče

Na rozdíl od moderních stříleček z pohledu první osoby , ve kterých hráč zcela ovládá pohled hlavního hrdiny pohybem počítačové myši , Quake ve výchozím nastavení používá klávesnici k otáčení doleva a doprava a také k pohybu tam a zpět. Stejné pohyby můžete provádět pomocí myši, podobně jako ve hře Doom . Pohyby postavy byly dost nešikovné a vyžadovaly si možnosti, jako je automatická úroveň, která by automaticky upravovala úhel pohledu na základě pohybů hráče, a automatické zaměřování pro střelbu na věci pod nebo nad postavou. Design umístění v Quake byl zjednodušený a podobný pseudo- 3D (2,5D) prostředí v Doom. Jen několik úrovní hry mělo monstrum schopné zaútočit na úroveň nad nebo pod hráčem.

Quake měl možnost vybrat myš pro ovládání pohledu a klávesnici pro pohyb, ale tato možnost byla ve výchozím nastavení zakázána. V pozdější hře série Quake III Arena  byla tato možnost vzata v úvahu okamžitě.

Zkušení hráči používali ovládání vidění myší a pohyb klávesnice v single i multiplayeru , protože jim to umožnilo lépe ovládat postavu a provádět rotační pohyby, které by se mohly vyhýbat výstřelům.

Multiplayer

Zpočátku Quake engine podporoval pouze LAN multiplayer a dva online režimy, co- op a deathmatch . Taková síťová hra fungovala na principu klient-server .

To znamená, že všichni hráči, aby mohli zahájit společnou hru, se připojí k dedikovanému serveru , který jim pošle odpověď na události ve hře. Použití takového principu navíc chrání hráče před desynchronizací serveru. V závislosti na konkrétní cestě k serveru mají různí klienti různé pingy (rychlost, jakou je paket informací přenášen v místní síti). Vysoký ping hráče způsobuje zpoždění , které brání jeho pohybu a činí jej zranitelnějším vůči ostatním hráčům.

Síťový kód herního enginu byl přepracován a byl vydán samostatný doplněk pro Quake – QuakeWorld  – který hráčům umožňoval hrát proti sobě přes internetové připojení pomocí herních režimů, které se staly klasikou. Multiplayer původního Quake následně získal  v komunitě hráčů název LAN-Quake (z anglického  Local Area Network, LAN - lokální síť).

Jednou z novinek v QuakeWorld je predikce na straně klienta . Tento režim umožňuje hráčovu počítači předvídat pohyb objektů dříve, než server zareaguje, což výrazně snižuje požadavky na rychlost připojení k internetu, čímž otevírá přístup k simultánní hře na serveru velkému počtu lidí.  

Vliv na moderní herní design

Kromě toho, že má Quake engine zásadní vliv na metody vývoje her a herní průmysl jako celek, měl obrovský dopad na metody herního designu. Mnoho technologií, které se používají v Quake enginu, jsou stále žádané v moderních herních enginech .

Prakticky všechny hry po Quake a všechny moderní hry používají 3D optimalizaci nazývanou předzpracování ke zvýšení rychlosti hry na počítačích uživatelů a herních konzolích . To je důvod, proč jsou 3D hry schopny zobrazit tak kvalitní vizuální prvky a efekty – většina nadbytečných dat byla odstraněna ještě dříve, než je hráč mohl vidět. Podstata předzpracování spočívá v tom, že nepotřebné předměty se po použití vyloží z RAM, například hráč vystřelí ze zbraně, a použité náboje, které z ní vyletí, okamžitě zmizí (při vyložení z paměti).

Všechny hry se výrazně liší od profesionálních balíčků 3D modelování ( CAD ). Profesionální programy nemají žádné časové limity pro vykreslení obrázku. Nic nelze vypustit, aby se urychlilo vykreslování 3D technického modelu , protože jakákoli část návrhu tohoto modelu se může kdykoli změnit. Z tohoto důvodu byly profesionální grafické karty výrazně dražší a výkonnější než ty grafické karty používané v domácích počítačích ke spouštění počítačových her. Profesionální grafické karty musí mít podstatně vyšší výpočetní výkon, protože se vypořádají s plnou složitostí surového 3D prostoru.

Vzhledem k tomu, že Quake byl první plně 3D hrou svého druhu, musel být schopen běžet na počítači, který neměl video akcelerátor, takže obsahoval dostatek příležitostí pro softwarové zpracování obrazu, to znamená, že proces grafického výstupu nespadl. na grafické kartě, ale na CPU.

V té době představovaly video akcelerátory nový a nepředvídatelný trh a panovala nejistota, zda po nich bude poptávka nebo ne. Grafické karty jsou dnes již dobře známým a vysoce rozvinutým trhem a jsou nezbytnou součástí každého nového počítače. Naprostá většina moderních počítačových her nemůže vůbec běžet, pokud není k dispozici hardwarová 3D akcelerace, tedy grafická karta , zatímco hry tehdejší doby využívaly k výstupu grafiky převážně procesor.

Hry využívající Quake engine

Níže je uveden seznam komerčních her, které využívají Quake engine [5] .

Hry, které jsou vytvořeny na enginech založených na Quake (jako DarkPlaces ), nejsou uvedeny.

Mody/hry založené na Quake vydané na disku
  • 1996  – Aftershock for Quake od Head Games Publishing, Inc.
  • 1996 Q!Zone  od Ratloop, Inc.
  • 1996  – Dark Hour od Microforum
  • 1996  - Micro Star Q2
  • 1997  - Ratloop , Inc. Shrak
  • 1998  - Ratloop, Inc. Malice
  • 1998  – Abyss of Pandemonium od Impel Development Team

Nástroje pro práci s enginem

Pro engine Quake bylo vydáno mnoho editorů map , které používají modderi .

Mnoho z níže uvedených editorů je také kompatibilních s novějšími verzemi enginu - id Tech 2 a id Tech 3 , stejně jako jejich modifikacemi.

Další vývoj

Quake engine byl základem pro vývoj další technologie id Software , motoru id Tech 2 (dříve známého jako Quake 2 engine). Následné enginy od společnosti, jako Id Tech 3 (pro hru Quake III Arena ) a id Tech 4 (poprvé použitý v Doom 3 ), pravděpodobně také obsahují malé kousky zdrojového kódu z prvního enginu v sérii , protože byly na základě předchozích verzí. Byl také otevřen zdrojový kód pro id Tech 2, id Tech 3 a id Tech 4.

Valve použilo engine hry Quake s vestavěným síťovým kódem QuakeWorld během vývoje Half-Life . Protože byl silně přepsán, dostal název GoldSrc (GoldSource) [1] [3] . Dříve byl Half-Life engine popisován herními publikacemi jako založený na sjednocené technologii Quake . Podle některých zpráv byl do motoru také integrován určitý vývoj z motoru Id Tech 2 . Na starých screenshotech hry, pořízených ještě v období vývoje, je vidět, že engine aktivně využívá dynamické stíny z objektů [6] . Jejich podpora byla pravděpodobně z finální verze hry odstraněna, jelikož vývojáři usoudili, že tehdejší domácí počítače ještě nebyly připraveny na tak složité zpracování.

Herní engine Half-Life 2  - Source - je založen na enginu z Half-Life , a proto obsahuje malé části kódu motoru Quake [7] .

Otevřený zdroj Quake enginu 21. prosince 1999 vyústil ve velké množství forků a také umožnil nadšencům portovat engine na jiné platformy, jako je mobilní operační systém Symbian nebo Java .

Nejznámější volné herní enginy založené na Quake enginu jsou DarkPlaces [8] a Tenebrae . Obě technologie podporují komplexní shader efekty, mapování nerovností , komplexní osvětlení a další pokročilé vizuální efekty, jako je vykreslování HDR , a také dynamické stíny.

Otevřené herní enginy založené na Quake

  • DarkPlaces  - implementované stíny a osvětlení v reálném čase, shader efekty, podpora karet Quake III BSP a formátu ogg . Používá se v Nexuiz a jeho pozdějším vývoji, Xonotic [8] .
  • Tenebrae  je jedním z prvních herních enginů založených na Quake enginu, který zavedl podporu pro stínování a osvětlení v reálném čase.
  • Telejano  je modifikace motoru, která přidává mnoho moderních efektů částicového systému .
  • Tomaz Quake  je jednou z prvních modifikací motoru, které se objevily. Byl použit v bezplatné automobilové arkádě MiniRacer , stejně jako ve stejnojmenném portu, který vylepšuje grafiku v původním Quake .
  • Twilight Engine  je engine založený na Quake se spoustou inovací. Struktura souborů byla zcela změněna. Můžete připojit renderer (grafický engine) třetí strany , například OGRE .
  • JoeQuake  je engine a grafický port stejného jména pro první Quake . K dispozici je podpora textur s vysokým rozlišením a také hotová sestava pro operační systém Linux .
  • Motor Tremor Quake  je vlastní engine založený na jedné z raných verzí enginu DarkPlaces s přidáním enginu JoeQuake . Podporovány jsou různé formáty textur, částicový systém, dynamické stíny a modely formátu MD3 .
  • Xash3D je custom engine založený na Quake enginu, Id Tech 2 , Id Tech 3 a DarkPlaces, kompatibilní s Half-Life a některými jeho modifikacemi na enginu GoldSrc , ale s řadou vylepšení oproti němu (podpora 3D skyboxů , texturování hrbolků atd. ) d.) [9] . Vývojáři třetích stran zase vytvořili větve z hlavního enginu, které vám umožňují spouštět hru na různých platformách (zejména Xash3D FWGS na mobilních zařízeních Android [10] ).

Poznámky

  1. 1 2 3 Články. Poslední hodiny poločasu rozpadu . Část dvě. Milionáři od Microsoftu (nedostupný odkaz) . Half Life Inside (5. prosince 2005). Získáno 11. července 2009. Archivováno z originálu 9. března 2012. 
  2. Sestavení motoru  . - oficiální stránky motoru. Získáno 14. května 2010. Archivováno z originálu dne 19. března 2012.
  3. 1 2 GoldSource  . _ Komunita vývojářů Valve. je herní engine GoldSource ve vývojářské komunitě Valve. Získáno 14. května 2010. Archivováno z originálu 15. února 2012.
  4. Danil Gridasov. Doom 3 . iXBT.com (2. září 2004). — přehled hry Doom 3 , podrobný popis enginu id Tech 4 a technologií v něm použitých. Získáno 14. května 2010. Archivováno z originálu 12. února 2012.
  5. Quake  engine . MobyGames . - seznam her na Quake enginu. Získáno 14. května 2010. Archivováno z originálu dne 19. března 2012.
  6. Half-Life (Screenshots) . Absolutní hry . Získáno 14. května 2010. Archivováno z originálu 1. ledna 2009.
  7. Zdroj  _ _ Komunita vývojářů Valve. - Zdrojový herní engine ve vývojářské komunitě Valve. Získáno 14. května 2010. Archivováno z originálu dne 19. března 2012.
  8. 1 2 DarkPlaces  . _ - oficiální stránka. Získáno 14. května 2010. Archivováno z originálu dne 19. března 2012.
  9. Dokumentace Xash3D . Získáno 10. dubna 2022. Archivováno z originálu 2. dubna 2022.
  10. Jurij Cukanov. Nadšenci přenesli Half-Life na Android . Half Life Inside (28. května 2015). Získáno 2. června 2015. Archivováno z originálu 10. června 2015.

Odkazy

Stránky o herním enginu Quake a vytváření modifikací na něm založených