Herní engine

Herní engine je základní  software počítačové hry [1] . Oddělení mezi hrou a herním enginem je často vágní a studia mezi nimi ne vždy dělají jasnou hranici. Obecně se však termín „herní engine“ používá pro software, který je opakovaně použitelný a rozšiřitelný, a lze jej tedy považovat za základ pro vývoj mnoha různých her bez významných změn [2] .

Definice

Termín „herní engine“ se objevil v polovině 90. let v kontextu stříleček z pohledu první osoby, podobných tehdy populárnímu Doomovi . Architektura softwaru Doom byla postavena tak, aby představovala rozumné a dobře provedené oddělení centrálních komponent hry (například 3D grafický subsystém , výpočet kolize objektů , zvuk atd.) a grafických zdrojů. , herní světy, které tvoří zážitek hráče, pravidla hry atd. . V důsledku toho získal určitou hodnotu díky tomu, že hry začaly vznikat s minimálními změnami, kdy za přítomnosti herního enginu společnosti vytvářely novou grafiku, zbraně, postavy, pravidla hry a podobně [2] .

Oddělení mezi hrou a herním enginem je často vágní. Některé enginy mají rozumné a jasné oddělení, zatímco jiné je téměř nemožné oddělit od hry. Například ve hře může engine „umět“, jak nakreslit oblouk , zatímco jiný engine může pracovat s jinou úrovní abstrakce a oblouk v něm bude speciálním případem parametrů volaných funkcí. Jedním z charakteristických znaků herního enginu je použití architektury správy dat . To je dáno tím, že pokud hra obsahuje pevně zakódovaná dataovlivňující logiku, herní pravidla, kreslení objektů a podobně, je obtížné použít tento software v různých hrách [2] .

Většina herních enginů je navržena a nakonfigurována tak, aby spouštěla ​​konkrétní hru na konkrétní platformě. A dokonce i ty nejobecnější multiplatformní enginy jsou vhodné pro vytváření her určitého žánru, například střílečky z pohledu první osoby nebo závodní hry . V této souvislosti je přesnější říci, že herní engine se stává neoptimálním, když je použit pro jinou hru nebo platformu, než pro kterou byl navržen. Tento efekt pochází ze skutečnosti, že software je soubor kompromisů založených na předpokladech o tom, jaká by hra měla být. Například návrh vykreslování uvnitř budov bude mít za následek, že engine pravděpodobně nebude tak dobrý pro otevřené prostory. V prvním případě může engine použít BSP strom ke kreslení objektů, které jsou blízko kamery. Současně lze pro otevřené prostory použít méně přesné metody a aktivněji se používají vykreslovací technologie s různou mírou detailů , kdy jsou vzdálenější objekty vykresleny méně zřetelně, protože zabírají menší počet pixelů [3] .

Specializace

Herní enginy se zpravidla specializují na žánr počítačových her. Takže engine navržený pro 2D hru v boxerském ringu se bude velmi lišit od enginu pro masivně multiplayerovou hru , střílečku z pohledu první osoby nebo strategickou hru v reálném čase . Ale zároveň mají enginy významné společné části – všechny 3D hry, bez ohledu na žánr, vyžadují interakci hráče prostřednictvím klávesnice , gamepadu a/nebo myši , nějakou formu 3D vykreslování, prostředky indikace, jako na čelním skle (např. tisk textu na grafické obrázky), zvukový systém a další. Unreal Engine , přestože byl navržen pro střílečku z pohledu první osoby, byl tedy úspěšně použit k vytváření her v mnoha jiných žánrech, jako je střílečka z pohledu třetí osoby Gears of War , dobrodružná hra na hrdiny Grimm ., nebo futuristický závod Speed ​​​​Star [4] .

Historicky patří střílečky z pohledu první osoby mezi hry, které jsou technologicky nejsložitější, protože potřebují předložit hráči iluzi trojrozměrného světa, a to kvůli akci v reálném čase. Motory stříleček z pohledu první osoby věnují větší pozornost technologiím, jako je efektivní vykreslování 3D světů, citlivá herní mechanika pro ovládání a zaměřování, vysoce věrná animace zbraní a rukou hráče ovládané postavy, široká škála ručních zbraní, „odpuštění“ ” model pohybu hráče a jeho kolize s překážkami, kvalitní animace a umělá inteligence NPC . Zároveň je typická nízká škálovatelnost ve hrách pro více hráčů (typická je podpora až 64 hráčů) a rozšířené zaměření na hru deathmatch [5] . Grafické enginy her tohoto žánru využívají řadu optimalizací v závislosti na aktuálním prostředí hráče, ale zároveň jsou zde požadavky na animaci postav, zvuk a hudbu, dynamiku tuhého těla, kinematika a další technologie [6] .

Platformové motory věnují větší pozornost animaci postavy a jejího avatara a zároveň nevyžadují realismus, který je vlastní trojrozměrným střílečkám. Plošinovky se vyznačují používáním řady technologií: mnoha způsoby pohybu (posouvání plošin, schodů, lana, rekvizity a další), prvky z hádanek , použití kamery z pohledu třetí osoby, která sleduje postavu, vykresluje několik vrstev geometrie v kombinaci s objektovým kolizním systémem a další [7] .

Bojové hry jsou zaměřeny na bohatou animaci, přesnost úderů, možnost nastavení složitých kombinací pomocí tlačítek a/nebo joysticku a podobně. Animované postavy kladou nároky na enginy na vysokou detailnost, navíc enginy poskytují možnost měnit a přidávat speciální efekty (jizvy po úderech, pot atd.) a také umožňují simulovat účesy, oblečení a další prvky [8] .

Simulátory řízení mohou být různé a existuje celá řada podžánrů. Grafika těchto her je zaměřena na „koridor“ a okruhové tratě, a proto motory věnují větší pozornost detailům vozů, trati a bezprostředního okolí. V důsledku toho se používají technologie k vykreslování vzdálených objektů na pozadí (zobrazených dvourozměrně), stopa je často rozdělena do několika sektorů, ve kterých se provádí optimalizace vykreslování. V případě projíždění tunely nebo jinými „stísněnými“ místy se používají techniky, které zajistí, aby se kamera třetí osoby neprotínala s geometrií pozadí. Použité datové struktury a umělá inteligence jsou orientovány na řešení problémů NPC strojů, jako je pathfinding a další technické problémy [9] .

Strategické hry v reálném čase nemají vysoké grafické nároky a proto se engine zaměřuje na zobrazování jednotek v nízkém rozlišení, ale zároveň musí umět pracovat s velkým množstvím jednotek současně. Pro interakční rozhraní přehrávače a ovládání jsou k dispozici samostatné funkce, které zahrnují nástroje pro práci se skupinami jednotek (výběr podle oblasti, ovládání) a řadu nabídek a panelů nástrojů obsahujících ovládací příkazy, položky vybavení, výběr typů jednotek a budovy atd. [10 ] .

Masivně multiplayerové hry vyžadují velký herní svět a možnost současné přítomnosti a interakce velkého počtu hráčů. Lokální úlohy řešené enginem jsou podobné jako ve hrách jiných žánrů, ale rysem žánru je orientace a vývoj serverového softwaru, který musí zachraňovat stav světa, řídit připojení a odpojení hráčů, zajistit chaty ve hře, způsoby interakce s hlasem atd. [11] .

Historie

Na domácích počítačích 80. let bylo portování kvůli chybějící standardizaci a paměťovým omezením ruční a zdlouhavé: přenesla se pouze logika práce a ostatní části - zobrazování grafiky na obrazovce, volání přerušení atd. - byly napsány znovu. V té době se však objevily herní motory Z-Machine a SCI od Infocom a Sierra . V 80. letech začala Incentive Software vyvíjet Freescape  , přenosné 3D jádro.

Samotný termín "herní engine" se objevil v polovině 90. let - v té době byla konečně nastolena nadvláda počítačů kompatibilních s IBM a rychlé procesory a "mazané" programování dávaly v trojrozměrných hrách 30 nebo více snímků za sekundu. Hry Doom a Quake od id Software se ukázaly být tak populární, že jiní vývojáři místo toho, aby začínali od nuly, licencovali hlavní části softwaru a vytvářeli vlastní grafiku, postavy, zbraně a úrovně – „obsah hry“ nebo „zdroje hry“. Quake engine byl použit ve více než deseti projektech a dal vážný impuls rozvoji middlewarového průmyslu.

Novější hry jako Unreal ( Unreal Engine ) z roku 1998 a Quake III Arena z roku 1999 (poháněná id Tech 3 ) byly navrženy pomocí tohoto přístupu, přičemž motory a obsah byly vyvinuty samostatně. Praxe licencování takové technologie se ukázala být užitečným doplňkovým příjmem pro některé vývojáře her. Náklady na jednu licenci pro špičkový komerční herní engine se tedy mohou pohybovat od 10 000 do 3,75 milionů dolarů (v případě Warcraftu III ) a počet držitelů licence může dosáhnout několika desítek společností (jako u Unreal Engine). Přinejmenším opakovaně použitelné enginy urychlují a usnadňují vývoj her, což je cenná aktiva v konkurenčním herním průmyslu na PC.

Další vývoj herních enginů vedl k silnému oddělení mezi vykreslováním, skriptováním, uměleckým designem a designem úrovní. Nyní je zcela běžné, že typický herní vývojářský tým má tolik umělců jako programátorů.

Střílečky z pohledu první osoby zůstávají převládajícími uživateli herních enginů třetích stran, ale takové enginy se nyní používají i v jiných žánrech. Například RPG Morrowind a MMORPG Dark Age of Camelot jsou založeny na enginu NetImmerse , zatímco Oblivion a Fallout 3 používají novou verzi této technologie – Gamebryo . Slavný MMORPG Lineage II je postaven na Unreal Engine 2 (nehledě na to, že tento engine byl původně určen pro použití ve střílečkách).

Herní enginy se také používají ve hrách původně vyvinutých pro herní konzole; například motor RenderWare se používá ve franšízách, jako je Grand Theft Auto a Burnout .

Moderní herní enginy jsou jedny z nejsložitějších aplikací na psaní, často sestávající z desítek různých komponent, z nichž každou lze individuálně nakonfigurovat tak, aby vyhovovala potřebám hry. Složitost vývoje tohoto druhu systému ilustruje jeden z komentářů k tématu na webu Slashdot.org , který popisuje sadu typických dovedností, které potřebuje vývojář.

Přehled

Kromě opakovaně použitelných softwarových komponent poskytují herní motory sadu nástrojů pro vizuální vývoj. Tyto nástroje obvykle tvoří integrované vývojové prostředí pro zjednodušený a rychlý vývoj her způsobem streamování . Tyto herní enginy jsou někdy označovány jako „Game Sub-Software “ (zkr. PPO; anglicky middleware) , protože z obchodního hlediska poskytují flexibilní a opakovaně použitelnou softwarovou platformu se všemi nezbytnými funkcemi pro vývoj herní aplikace, snižování nákladů, složitost a doba vývoje jsou všechny kritické faktory ve vysoce konkurenčním videoherním průmyslu .

Stejně jako ostatní open source řešení jsou herní enginy obvykle nezávislé na platformě a umožňují hře běžet na různých platformách, včetně herních konzolí a osobních počítačů, s některými (nebo žádnými) změnami ve zdrojovém kódu. Herní aplikační software má často komponentní architekturu , která umožňuje některé systémy motoru nahradit nebo rozšířit specializovanějšími (a často dražšími) aplikačními softwarovými komponentami, jako je Havok  pro fyziku, FMOD  pro zvuk nebo SpeedTree  pro renderování. Některé herní enginy, jako je RenderWare , jsou navrženy jako sada volně propojených komponent aplikačního softwaru, které lze selektivně kombinovat za účelem vytvoření vlastního enginu, spíše než tradičnější přístup k rozšíření nebo přizpůsobení flexibilního integračního řešení. Nicméně rozšiřitelnosti bylo dosaženo a zůstává vysokou prioritou v herních enginech kvůli jejich širokým aplikačním možnostem. Navzdory specifičnosti názvu se herní enginy často používají v jiných typech interaktivních aplikací, které vyžadují grafiku v reálném čase, jako jsou propagační ukázky, architektonické vizualizace, tréninkové simulátory a simulační prostředí.

Některé herní enginy poskytují pouze možnosti vykreslování 3D v reálném čase namísto všech funkcí vyžadovaných hrami. Tyto motory důvěřují vývojářům hry, že implementují zbývající funkce nebo je shromažďují na základě jiných komponent herního softwaru. Tyto typy motorů se obvykle označují jako „grafické stroje“, „vykreslovací stroje“ nebo „3D motory“ namísto popisnějšího termínu „herní engine“. Tato terminologie se však používá nejednotně: například mnoho plnohodnotných 3D herních enginů je označováno jednoduše jako „3D enginy“. Některé příklady grafických enginů jsou RealmForge , Ogre 3D , Power Render , Crystal Space a Genesis3D . Moderní herní nebo grafické enginy obvykle poskytují graf scény  , objektově orientovanou reprezentaci 3D světa hry, který často zjednodušuje herní design a lze jej použít k efektivnějšímu vykreslení obrovských virtuálních světů.

Hardware abstrakce

Nejčastěji jsou 3D motory nebo vykreslovací systémy v herních enginech postaveny na grafickém API , jako je Direct3D nebo OpenGL , které poskytuje softwarovou abstrakci GPU nebo grafické karty. Nízkoúrovňové knihovny jako DirectX , SDL a OpenAL se také používají ve hrách, protože poskytují hardwarově nezávislý přístup k dalšímu počítačovému hardwaru, jako jsou vstupní zařízení (myš, klávesnice a joystick), síťové karty a zvukové karty. Před příchodem hardwarově akcelerované 3D grafiky se používaly softwarové renderery. Softwarové vykreslování se stále používá v některých modelovacích nástrojích pro vykreslování obrázků, kde je vizuální věrnost důležitější než výkon ( snímky za sekundu ) nebo když počítačový hardware nesplňuje požadavky, například nepodporuje shadery .

Viz také

Poznámky

  1. herní engine | Definice herního enginu v angličtině podle Oxford Dictionaries . Oxfordské slovníky | Angličtina. - "Základní software počítačové hry nebo videohry." Datum přístupu: 11. prosince 2017.
  2. 1 2 3 Jason, 2009 , str. jedenáct.
  3. Jason, 2009 , str. 12.
  4. Jason, 2009 , str. 13.
  5. Jason, 2009 , str. 13, 14.
  6. Jason, 2009 , str. čtrnáct.
  7. Jason, 2009 , str. 16, 17.
  8. Jason, 2009 , str. 17, 18.
  9. Jason, 2009 , str. 19-21.
  10. Jason, 2009 , str. 22, 23.
  11. Jason, 2009 , str. 23, 24.

Literatura

Odkazy