/ / Najlepší spôsob, ako portovať hru c ++ na web - javascript, c ++, html5, activex, google-nativeclient

Najlepšia cesta k portu hry C ++ na web - javascript, c ++, html5, activex, google-nativeclient

Uvedomujem si, že vyššie uvedená otázka je dosť široká, takže ju zúžim. Mám jednoduchý herný engine opengl c ++, ktorý žije v statickej knižnici (možno ju previesť na dynamickú knižnicu lib).

Premýšľal som o spôsoboch, ako to spustiťna webe. Z toho, čo vidím, som na spustenie kódu c ++ v prehliadači mohol používať ActiveX alebo Google NaCl. Nezdá sa však, že by tieto technológie boli ľahko použiteľné naprieč platformami? Alebo som možno nepochopil.

Ďalšou možnosťou, ktorú som videl, je prevod motora na javascript a WebGL a spustenie na plátne HTML5. Bolo by to pomalšie ako c ++? Bolo by to však veľmi multiplatformové.

Čo si myslíte, že je najlepšia možnosť, alebo ešte lepšie, je tu ešte jedna možnosť, ktorú som vynechal?

ÚPRAVA: a čo vlastný doplnok podobný webederi jednoty?

odpovede:

4 pre odpoveď č. 1

V skutočnosti tam existuje niekoľko technológií, ktoré vám s tým pomôžu. Tu sú tri, ktoré som narazil, ale majú minimálne / žiadne skúsenosti s:


5 pre odpoveď № 2

Knižnica vytvorená spoločnosťou @kripken je stále vo vývoji. Trvá bitový kód LLVM a prevádza sa na Javascript.

Môžete tu vidieť stránku projektu s príkladmi z práce. https://github.com/kripken/emscripten/


3 pre odpoveď № 3

Dôrazne odporúčam portovanie na NaCl.

výhody:

  1. výkon: Na vykreslenie môžete využiť plný výkon procesorasvoju hru. Ak vaša hra používa dobrú 3D grafiku alebo fyziku, môžete ju vylepšiť tak, aby vyzerala hladko aj pri starých systémových konfiguráciách. Výkon NaCl je porovnateľný s aplikáciami Native OS, stráca takmer 5 až 10% FPS, keď porovnávam tú istú hru s verziou Win32.
  2. Existuje veľa už prenesených príkladov, hier pre NaCl, ktoré vám môžu pomôcť urobiť to ľahko.
  3. Je to už medzi platformami. Prehliadač Chrome funguje na Windows, Linux, Mac OSX.

nevýhody:

  1. Mohli by ste vás dopraviť do prístavu asi týždeň. Musíte port do OpenGL ES 2.0 (malo by to však byť rovnaké s akýmikoľvek metódami založenými na prehliadači, najmä HTML5).
  2. Spúšťa sa iba v prehliadači Chrome.

1 pre odpoveď č. 4

Ak chcete v prehliadači niečo prenosné, musíte sa spoľahnúť na Javascript (a pravdepodobne na WebGL, hoci to IE nepodporuje).

ActiveX a NaCL jednoducho nie sú prenosné žiadnym spôsobom, tvarom ani formou.

Nemôžem povedať, čo je jednoduchšie, ale máte možnosť prepísať svoju hru do jazyka Javascript alebo pomocou nástroja ako Emscripten skompilovať svoj C ++ do JavaScriptu.

Všimnite si, že ak použijete posledný, stále to nie je astrieborná guľka. Pravdepodobne budete musieť urobiť veľa zmien vo vašom kóde (napríklad preto, že knižnice a API použité vo vašej hre C ++ nebudú v prehliadači k dispozícii).