Autor Zpráva
vasava
Profil *
Adresa webu: http://gympeljj.php5.sk/snake++/snake++.php

Toto je vylepsena verzia mojej webovej multiplayer hry Snake. Na rozdiel od
predchodcu su elementy kreslene cez canvas. Ich suradnice sa neprenasaju kazdou
poziadavkou naraz, ale len hlava hada. Ostatne sa priebezne uchovavaju v
poliach.

Aplikacia je ozvucena, pouzil som zvuky z quake 2 a 3. Hudobny background je z
mnoziny portal, half life, windows 7, quake 2, unreal tournament 2003...

Kolizie su pocitane zistovanim farby uz vykreslenych clankov hadov a mapy (=
obrazok/text na platne), nie pomocou niekolkonasobne vnorenych cyklov na
porovnavanie suradnic.

Pocet hracov je relativne neobmedzeny, len si nedavajte rovnake mena, pretoze
tie su primarnym indexom v db.

Ak nahodou vytvorite koliznu mapu, poslite mi ju prosim na uvedeny mail. Jej
rozmery maju byt 1000x600px, transparentny png alebo gif format, farby vsetky
okrem rydzo ciernej. Dakujem a dufam ze sa zabavite.
Ugo
Profil *
jednoducho skvělá práce, gratuluju
jenikkozak
Profil
vasava:
1) Jak se u toho vypíná zvuk?
2) S posuvníky se ta hra dost obtížně ovladatelná šipkami, to by chtělo asi domyslet.
Chamurappi
Profil
Reaguji na vasavu:
1) Na takovéhle multiplayerové akční hry není HTTP moc vhodný, musíš počítat se nahodilými zpožděními. Interval 250 ms je na bombardování serveru požadavky docela krátký a na rozumnou odezvu od protihráčů zase moc dlouhý.
2) <canvas> je použitý skoro zbytečně. Takováto hra by bez něj mohla fungovat ve všech používaných prohlížečích a lépe.
3) Neuvažoval jsi o plynulé animaci při přechodu z políčka na políčko?
4) Skript umí chytit víc stisků klávesy naráz. Před chvílí jsem to nějakému anonymovi5 pěkně nandal tím, že jsem třeba při jízdě doleva rychle mačkal šipku doleva a A.
5) Nápad s portály po stranách mě zaujal, ale ještě tomu něco chybí. Nevyžaduje to moc taktického uvažování, prostě si jen pokaždé najedeš před čumák.

Hudobny background je z mnoziny portal, half life, windows 7, quake 2, unreal tournament 2003
Proč si nenajdeš něco, co bys mohl použít legálně?
I zvuky bys mohl najít nějaké vhodněji pasující… a neukradené :-)
johnl
Profil
vasava:
Hra se mi hodně seká, sekne se třeba i na deset sekund, ale během té doby script reaguje na stisky kláves, já však nevidím kam mám namířeno..
peta
Profil
Mi to nefunguje. Ani nevim, co to ma delat. Beha mi tam bily ctverecek zhora dolu. Ten se mi podarilo nahodne spustit zmacknutim jakesi klavesy.

johnl Zkousel jsi hry na fb? Na pc u rodicu mi tezce nestiha zadna. fb (jen html kod fb po prihlaseni i s framy ma 0,5MB) a ta hra prenasi, synchronizuje a zpracovava tolik dat, ze to proste nestiha :) Pet society, Fish bowl, Buble saga. Kdyz ve fishbowl pustim kraby lektvarem, tak se to tak seka, ze ani nestihnu kliknout a jsou pryc. Vypada to, ze vasava zkousi podobnou vychytavku :) Tady zrovna mam vykonny stroj, tak to stiha.
Chamurappi
Profil
Reaguji na johnla:
Za to může převážně <canvas>. Pohybovat pozicovanými vybarvenými <div>y či obrázky by prohlížeč dokázal lépe.
vasava
Profil *
Chamurappi:
Tak ako pisete bol urobeny povodny Snake. S canvasom mam co sa rychlosti tyka len pozitivne skusenosti. S div elementami tu nie je ziadne miesto na porovnavanie. Neviem, ci v JS existuje nejaka funkcia na zistovanie farby pixelov, ktorou prave v tomto pocitam kolizie. Oneskorenie, ktore tu spominanate, sposobuju ajax requesty. O rychlosti PC nema podla mna zmysel hovorit. Naroky na vykreslovanie su minimalne, zalezi na rychlosti pripojenia a vytazeni DB.
Chamurappi
Profil
Reaguji na vasavu:
Neviem, ci v JS existuje nejaka funkcia na zistovanie farby pixelov, ktorou prave v tomto pocitam kolizie.
Neexistuje. K ničemu jí nepotřebuješ. Ve tvém případě by jako kolizní mapa stačilo skoro obyčejné předgenerované pole.

Oneskorenie, ktore tu spominanate, sposobuju ajax requesty.
I vlastní had je bržděn síťovou komunikací? Proč?

Naroky na vykreslovanie su minimalne
Mažeš velkou plochu.
vasava
Profil *
Chamurappi:
Treba vsak pocitat zrazky aj so supermi, nielen s okolim. A na to nemenne pole nestaci. Had je vykreslovany spolu s ostatnymi hracmi z dovodu synchronizacie udalosti ako su prave kolizie a tiez "zjedenie potravy". Predstavte si, ze ste tesne pred nou - pricom hraci su zasektnuti, a stvorec sa zrazu objavi na inom mieste, lebo vas iny klient predbehol...
Chamurappi
Profil
Reaguji na vasavu:
Treba vsak pocitat zrazky aj so supermi, nielen s okolim. A na to nemenne pole nestaci.
Nestačí, ale pořád je to triviální. Mřížku máš 40×24, to je docela prťavé pole.
Shodou okolností pracuji také na projektu, kde jsem potřeboval kolizní mapu, akorát o dva řády větší v obou směrech a vícevrstvou. Jde to i bez <canvas>u a není to zase taková věda.

zalezi na rychlosti pripojenia a vytazeni DB
Proč to je vlastně hnané přes databázi?
o_O
Profil
To zaznamenávání kláves není zrovna kvalitně udělané. Nekolikrát jsem se snažil rychle za sebou zmáčknout šipku dolů a doleva a šel jsem jen doleva (čímž jsem se "přejel"), nebo jsem 2× za sebou zmáčknul šipku dolů a doleva a ani jednou mi to nenaznamenalo - přejel jsem planetu. Snažil jsem se 10 minut (sám) dosáhnout 20 "kostiček", ovšem bez úspěchu. V FF se to nehorázně seká.
vasava
Profil *
Chamurappi:
Proč to je vlastně hnané přes databázi?
Mate lepsi napad? Pracovat so subormi by bolo zrejme pomalsie. Ako inak viete umoznit multiplayer?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0