Diskuze: HTML 5 hry

HTML a CSS HTML a CSS HTML 5 hry American English version English version

Avatar
Hadi.k
Člen
Avatar
Hadi.k:

Měl bych otázku ohledně her v HTML5, případně v JS. Narazil sem například na toto http://browserquest.mozilla.org/ a dle zdrojaku sem narazil na pár knihoven co to používá.

Otázkou je co je ten základ ? Co dovoluje takhle vykreslovat 2D grafiku, pohyb etc. Je to nějáké engine, v jQuery ? Nebo je to pouze canvas v HTML ? Tomu se mi ani nechceš věřit. Plus teda, jaktože to dokáže mutliplayer? To je tam něják přes AJAX napojené, či HTML umí už něco na styl TCP ?

Děkuji všem za odpověd :)

Odpovědět 27.12.2014 23:31
"Ajťák" nikdy nebere telefon po prvním zazvonění!! Vždy je totiž velice vytížen - buď musí nejprve dopít ká...
Avatar
Odpovídá na Hadi.k
Michal Žůrek (misaz):

tam té fyziky (pohybu) moc není. Lze to udělat celkem jednoduše a není třeba k tomu moc knihoven. (ale chápu, čím víc knihoven, tím víc cool, respektive FUP žroucí).

Vykreslování není žádná věda, prostě cyklem vykreslíš každé políčka v mapě a celé plátno překresluješ několikrát za sekundu, čímž docílíš efektu animace.

jQuery tam asi bude (ostatně dneska už je všude), ale moc pro ni nevidím smysl, možná tak je na nějaký věci okolo. jQuery je pro práci s DOM a s canvasem si moc neporadí.

Komunikace se u takovéto aplikace neřeší AJAXem, protože by to strašně vytížilo server. každý ajaxový požadavek = HTTP požadavek. proto byl zaveden standart WebSocket, který udržuje spojení se serverem a díky toho se vlastně pošlou jen 2 HTTP požadavky (+ načítání souboru HTML, CSS, JS, knihovny, fonty, ...) Potom už mezi sebou normálně komunikují jako to dělají třeba P2P hry nebo nějaké online streamy. Zjistilo se, že jenom na požadavcích se ušetří víc jak 75% přenesených dat (u takových to aplikací, kde se posílají informace ve stylu "franta novák se posunul o X + 15 a Y - 10").

Akceptované řešení
+5 Zkušeností
Řešení problému
Nahoru Odpovědět  +2 27.12.2014 23:43
Nesnáším {}, proto se jim vyhýbám.
Avatar
Hadi.k
Člen
Avatar
Hadi.k:

Super,děkuju za vyčerpávající informace. Tahle technologie mě natolik zaujala, že se tomu budu více věnovat. Ačkoliv jsem původně chtěl použít pouze PHP a AJAX na tvorbu her v prohlížeči, tohle se mi zdá jako mnohem lepší alternativa. Rozhodně lepší než "fleš".

Ještě bych se chtěl zeptat ohledně technologie. Je to moderní, či již ne. Zda to má cenu se tomu něják věnovat, nebo je to spíše okrajové ? Protože si myslím že tohle plně nahrazuje flash, jenom ty firmy prostě nechtěj vynaložit další cash na předělání.

Nahoru Odpovědět 27.12.2014 23:50
"Ajťák" nikdy nebere telefon po prvním zazvonění!! Vždy je totiž velice vytížen - buď musí nejprve dopít ká...
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Hadi.k
Honza Bittner:

Jak řekl Michal Žůrek (misaz), využívá se pro to WebSocket, který se používá také tady pro chat vpravo dole.

Ajax je vhodné řešené pro případy, kde chceš jednou za čas něco změnit - jednorázově. Tedy například při kliku na palec odeslat změnu do Db.

Pokud však chceš dělat něco opakovaně(čímž nemyslím opakovaně klikat na palce), využij WebSocket, který popsal Michal Žůrek (misaz) výše. :)


Btw. ta hra není nic více než kombinace několika canvasů a HTML elementů, které jsou řízeny přes JS a komunikují se serverem pomocí již zmíněného WebSocket.

(např. každá bublinka vytvoří html element a po čase jej zase odstraní)

Editováno 28.12.2014 0:01
Nahoru Odpovědět  +1 27.12.2014 23:56
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Hadi.k
Člen
Avatar
Hadi.k:

Zní to velmi zajímavě, otázkou je zda užití v takovém měřítku (ta hra), není až kontraproduktivní, či je toto nejlepší volba z pohledu dostupnost(žádný flash,ani plugin)/možnosti a náročnost jazyka ?

Nahoru Odpovědět 28.12.2014 0:09
"Ajťák" nikdy nebere telefon po prvním zazvonění!! Vždy je totiž velice vytížen - buď musí nejprve dopít ká...
Avatar
Hadi.k
Člen
Avatar
Hadi.k:

EDIT: Ještě by mě zajímalo jak je to s Node.js na straně serveru ? Pro běh je nutný server s linuxem ? Nelze to tedy řešit obyčejným web hostingem ? Je nutno si pořídit například VPS ? Nebo je tu jiná možnost jak se vyhnout nutnosti použít serveru s linuxem, ale použít web hosting ?

Pokud ne, tak je lepší volbou z hlediska absence VPS použítí ajaxu.

Nahoru Odpovědět 28.12.2014 0:22
"Ajťák" nikdy nebere telefon po prvním zazvonění!! Vždy je totiž velice vytížen - buď musí nejprve dopít ká...
Avatar
Odpovídá na Hadi.k
Josef Kuchař (Pepa489):

Pro tvé účely by ti měl stačit nějaký free vps :)

Nahoru Odpovědět  +1 28.12.2014 9:22
2x piš, jednou debuguj
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Hadi.k
Honza Bittner:

IMHO

Tak web hosting je web hosting - slouží pro účely jednorázové vygenerování či předání stránky.

To co chceš ty jest již server, což si myslím, že chce něco lepšího...

Nahoru Odpovědět  +1 28.12.2014 9:33
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Hadi.k
Člen
Avatar
Hadi.k:

Takže něco kde moho rozject socketovou aplikaci ? Java, C, C# ? I když to PHP by šlo taky,ale muselo by se spouštět na serveru.

Nahoru Odpovědět 28.12.2014 9:51
"Ajťák" nikdy nebere telefon po prvním zazvonění!! Vždy je totiž velice vytížen - buď musí nejprve dopít ká...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.