Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Hadik
Člen
Avatar
Hadik:27.12.2014 23:31

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 Hadik
Michal Žůrek - misaz:27.12.2014 23:43

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
27.12.2014 23:43
Avatar
Hadik
Člen
Avatar
Hadik:27.12.2014 23:50

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
Tvůrce
Avatar
Odpovídá na Hadik
Honza Bittner:27.12.2014 23:56

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
27.12.2014 23:56
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Hadik
Člen
Avatar
Hadik:28.12.2014 0:09

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
Hadik
Člen
Avatar
Hadik:28.12.2014 0:22

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 Hadik
Josef Kuchař - Pepa489:28.12.2014 9:22

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

Nahoru Odpovědět
28.12.2014 9:22
2x piš, jednou debuguj
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Hadik
Honza Bittner:28.12.2014 9:33

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
28.12.2014 9:33
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Hadik
Člen
Avatar
Hadik:28.12.2014 9:51

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.