cwbe coordinatez:
101
63540
1353230
5213131
5282574
5282656

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::2
total children::1
show[ 2 | 3] flat


UDP a TCP

Su to nejake protokoly ci co, proste dva sposoby ako sa prenasaju data po sieti. Tj, ma to pre nas zmysel, ak chceme spravit sietovu hru. Ak zaciname, a nevieme celkom co chceme, tak by sme mali zacat s TCP, pretoze sa na to mozme spolahnut, ze sa to nebude spravat nepredvidatelne.

acWDN.jpgAk chceme robit chat v hre, tak TCP nam zaruci, ze vsetky data, ktore z jedneho pocitaca odosleme, pridu v takej istej forme aj do druheho pocitaca. Takze, data ktore nam pridu mozme hned hodit na obrazovku, vsetko je fajn. Jediny problem je, ze ak maju data prist v spravnom poradi, tak ak sa nejake data zdrzia, a uz nam aj pridu nasledujuce pakety, ale tie prve stale nedosli, tak pri TCP sa musi cakat. Alebo ak ich ukradnu trollovia (data nepridu), tak pri TCP sa musia data opakovane poslat, a teda to zase moze sposobit zdrziavanie.

Ak vsak chceme robit nejaky Unreal Tournament (Quake, Counter Strike) a podobne realtime hry, kde 200 milisekundovy lag znamena smrt [ach, ako som neznasal ked to seklo, neposlalo ze som pustil sipku a zdrbal som sa do priekopy ;)], tak treba pouzit UDP. UDP je totiz maximalne rychle, data sa poslu vzdy len raz, a odosielatel sa uz nestara ze ci prisli, ziadne spracovavanie alebo posielanie potvrdzujucich sprav navyse. A prijimatel zase necaka kym mu pridu vsetky data, aby boli v spravnom poradi (co pri chatovani by bolo treba), pri UDP prichadzaju akokolvek (alebo obcas nepridu). Co znamena, ze sa to da v hre pouzit len na veci, pri ktorych nam nevadi obcasna strata dat. Kde mozme predpokladat ze sa nic nestalo, a pripadne potom napravit situaciu akonahle data pridu.

V pripade toho UT, ak chceme posielat informacie o hracoch, tak by sme mohli posielat poziciu a info o strielani, atd.. Lenze potom by taktiez nebolo najkrajsie, keby panak kazdych 100ms skoci na novu poziciu :). Asi by sa to nedalo hrat, potrebujeme plynule spravanie, a co najexaktnejsie, aby bolo co najviac priblizene skutocnemu stavu, lebo ked budem strielat po niekom, kto bol na danom mieste pred sekundou, tak ho asi netrafim. Cize by bolo fajn poslat aj rychlost akou sa hrac pohybuje. A nejak podla rychlosti interpolovat poziciu, az kym nepridu nove data s poziciou - vtedy moze bud skocit na to miesto (UT), alebo docasne strasne zrychlit (Lineage).


RakNet je fajn kniznica s kopou ukazok ako sa to pouziva (iked mi nepridu moc prehladne, ale to je ta programatorska pliaga, ze musis vediet napr. ako sa v c++ zarovnavaju datove struktury a podobne nepodstatnosti, ak chces nieco poslat - pritom by malo zvladnut aj male decko, keby to bolo rozumne navrhnute, ale akademici radi vsetko komplikuju, aby ich tituly vyzerali aspon trochu vazne, a konformna spolocnost je tym nakazena tiez, a nepochopenie bloated informacii povazuje konformna spolocnost za vlastnu chybu)

..takze uz ti nic nebrani v robeni hier ;)) resp. ak by nieco chybalo, neni problem doplnit..


  submission:: Re[2]: so you want to be a game programmer.. :: NEW (1 children )   NEW DESCENDANT   (daan)


There are currently 10051 K available in
2nd Guild's K-treasury.




get 1 🦆 for 5 🐘
get 1 🐘 for 1 🦆




axone GameDev - Podme si vytvorit vlastnu hru