Nejlepší odpověď
No, mohu odpovědět na otázku pro Unity .
Dříve býval prosperující ekosystém pro hry Unity v prohlížeči, zejména na Facebooku. Přehrávač Unity byl dost slušný na to, abyste získali pěknou grafiku a plynulý snímkový kmitočet (za předpokladu, že jste provedli spoustu pečení a optimalizace). Jednou jsem pracoval na seriózní hře / simulaci, která byla nasazena na webovém přehrávači, a trochu jsem posunul její limity, takže jsem věděl, čeho je schopen.
To se všechno změnilo, když se Chrome rozhodl zabít podpora NPAPI, na které je webový přehrávač založen. Co je NPAPI? Veškeré podrobnosti najdete zde – NPAPI – Wikipedia – ale abychom to zkrátili, jedná se o metodu vývoje zásuvných modulů pro různé běžné prohlížeče. NPAPI však bylo staré, náchylné k problémům se zabezpečením a došlo k volání k použití HTML5 / WebGL atd., Proto se Chrome rozhodl jej postupně ukončit.
Největší rozdíl mezi NPAPI a používáním WebGL je ten, že poskytl téměř neomezený přístup ke zdrojům místního počítače (podrobnosti viz NPAPI Plugins – Google Chrome ). Pro Unity3D WebGL existují dva velké problémy:
První je, že pro HTML5 / WebGL neexistuje nativní kompilace kódu. Jednota to vyřešila kompilací projektu do formy optimalizovaného JavaScriptu. To je velké , pokud jde o velikost souboru, protože většina kódu motoru Unity musí být k dispozici pro spuštění projektu, a Unity v žádném případě není lehký. V případě webového přehrávače je většina kódu enginu již v knihovně DLL nebo v pluginu, takže stačí načíst samotná data scény a spustit je. U webového hráče WebGL však musí být kód motoru konzistentně znovu stažen a nejsem si jistý, zda pro to ještě existuje řešení.
Chcete-li snížit velikost, kód WebGL má být komprimován. To však znamená, že kód musí být dekomprimován v počítači klienta, po jeho stažení , díky čemuž je zážitek pomalý a neohrabaný.
Problém vraha je v paměti. Na rozdíl od NPAPI můžete při spuštění webového přehrávače WebGL použít pouze paměť, kterou má prohlížeč, a to je upřímně mimo vaši kontrolu. Přehrávač může mít otevřeno více než 100 karet, takže nezbývá dostatek paměti pro spuštění hry. Nebo by vaše hra mohla být příliš velká na paměťové limity prohlížeče, což by způsobilo, že se při načítání zhroutila neohrabaně bez chybové zprávy (to byl případ před 2 lety, když jsem to zkusil).
V podstatě máte spokojit se s méně podrobnými modely, horšími herními prostředky (zvuk, textury atd.) a dát něco na sebe pomocí WebGL / HTML5. Franky, pochybuji, že by WebGL / HTML5 někdy poskytoval úroveň kvality a snímkové frekvence, jakou by mohly staré pluginy NPAPI, takže si myslím, že byl odstraněn celý ekosystém webových her Unity.
Vezměte na vědomí, že je to hlavně pro hráče Unity3D WebGL – existují i jiné herní enginy schopné provozovat hry na WebGL, i když ty mají tendenci být založeny na JavaScriptu a optimalizovány pro web. Unity3D je obrovský engine a web už není jako prvotřídní platforma občanem.
Každopádně jsem nebyl na scéně Unity za poslední dva roky, tak doufejme, že by mi někdo odporoval.
Odpověď
Skrývá se zde problém s obsahem i problém sociálního inženýrství, ale já budu mluvit o technických problémech. O prvních dvou byste mohli napsat několik knih.
TL; DR je to, že z toho opravdu nemůžete dostat stejný výkon AAA webová platforma, kterou byste očekávali od nativních programů. Existuje několik řešení, ale vývojářům je implementace nákladnější.
1.) Kompilace za běhu a zpracování majetku
Na rozdíl od standardní metody výroby hry musí webová hra aktuálně kompilovat svůj kód a přistupovat k souvisejícím aktivům v reálném čase. Historicky by hra měla předkompilovaná aktiva a kód, které by byly načteny a spuštěny na vyžádání. Předkompilování hry vám umožní optimalizovat hru tak, aby běžela lépe v různých situacích. Část tohoto přizpůsobení se stane při instalaci (rozdíly IE, PC / MAC / konzoly) a část se stane, když nastavíte možnosti hry.
Protože k této optimalizaci dochází před spuštěním, můžete ji načíst do hry rychleji (už víte, co musíte udělat). Kompilace za běhu však znamená, že musíte místo toho předem zjistit vše za běhu. To mimo jiné obvykle zvyšuje dobu načítání. Teoreticky je možné stažená data uložit do mezipaměti, ale prohlížeč (nebo nešťastný uživatel) může velmi snadno přepsat to, co děláte. Viz # 3.
2.) Údržba serveru
Přes webový prohlížeč můžete vzdáleně ukládat soubory a aktiva, což však pro herní společnosti představuje problém údržby – trvá čas a peníze na zajištění servisu serverových služeb. Tento problém lze drasticky snížit instalací hry jednou na místním počítači a pravidelným doručováním oprav namísto neustálých aktualizací streamování. Šířka pásma = $$$, nemluvě o profesionálech v oblasti informačních technologií požadovaných pro provoz serverů v maximální době provozuschopnosti.
3.) Režie / omezení prohlížeče
Spuštění čehokoli ve webovém prohlížeči znamená, že musíte pracovat nejen s operačním systémem jako systémovým požadavkem, ale s další pamětí a časem zpracování, který prohlížeč vyčerpá. Například Chrome právě teď používá ~ 148 MB, aby mi mohl odpovědět na tuto otázku! To pravděpodobně není špatné pro PC nebo Mac, ale pro tablety je to zabiják.
Většina prohlížečů navíc obsahuje funkce zabezpečení, které omezují interakci prohlížeče s vaším operačním systémem a hardwarem. To znamená, že určité typy výkonnostních operací, které byste normálně mohli provádět s předkompilovanou hrou, v prohlížeči prostě nejsou možné (často přímý přístup do paměti).