Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 24. leden 2011, 13:25:06 Předmět: |
|
|
Tak mi ukaž nějakou hru s realtime multiplayerem, který jede výhradně přes TCP. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
micky

Založen: 28. 02. 2008 Příspěvky: 348 Bydliště: Plzeň, Praha
|
Zaslal: 24. leden 2011, 14:03:50 Předmět: |
|
|
frca napsal: |
Tak mi ukaž nějakou hru s realtime multiplayerem, který jede výhradně přes TCP. |
Tak víš co, v rámci LANu bychom se asi na TCP/IP shodli, že může fungovat. Tuším, že Bulánci to tak měli. Ale jinak globálně asi na nic nepřijdu. _________________ https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/ |
|
Návrat nahoru |
|
 |
Fremen

Založen: 30. 12. 2008 Příspěvky: 9
|
Zaslal: 24. leden 2011, 14:36:42 Předmět: |
|
|
frca napsal: |
Tak mi ukaž nějakou hru s realtime multiplayerem, který jede výhradně přes TCP. |
Třeba WOW? (kromě voice chatu, který je přes UDP). |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 24. leden 2011, 15:51:23 Předmět: |
|
|
frca napsal: |
Tak mi ukaž nějakou hru s realtime multiplayerem, který jede výhradně přes TCP. |
Diablo 2 a neopatchovanej Starcraft. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 24. leden 2011, 16:29:44 Předmět: |
|
|
no pri FPS strielackach je myslim UDP nutnost. kedze tam ide o tie ms. ale RTS a RPG to nie je nutnost. tam sa prave zide to ze je zarucene dorucenie na rozdiel od FPS kde vynechany paket neboli a proste to lagne.
tusim aj Warcraft 3 mal TCP. UDP pouzival len na objavenie spoluhracov na LAN pre broadcast. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 24. leden 2011, 18:46:57 Předmět: |
|
|
Nezlobte se na mě, ale někteří tu objevujete Ameriku.
A navíc mi to připomíná, že je tomu už 10 let, co jsem programoval síťovou část Hidden and Dangerous 2. Tehdy to bylo náročné, každej bit jsme počítali a zvažovali, jestli ho můžeme dovolit poslat. Dnes je to ve srovnání s tehdejší dobou ráj na Zemi.
A k věci: Ten problém je opravdu obecný síťový a netýká se konkrétního frameworku. Chcete-li komunikovat v internetu, počítač, ke kterému se připojujete musí mít IP adresu. IP je prostě adresa. Počítač bez veřejné IP není prostě vidět a nedá se s ním spojit. TCP má tu výhodu, že ke spojení stačí, aby jeden z těch počítačů v herní síti měl IP adresu a všechny ostatní se k němu připojí. Většina her podle mě používá TCP. UDP má výhodu, že je fakt hbitější, ale má nevýhodu, že se s ním hůř algoritmicky pracuje, neboť tam není zaručeno doručení paketu (data se mohou ztrácet). A hlavně UDP vyžaduje, aby všechny počítače v herní síti měly veřejné IP adresy!! Pomocí UDP se tedy v praxi dá opravdu bez problémů hrát jedině v LAN. Tj. to je tak na školní či firemní pařby, ne na nějaké internetové hry.
Každopádně prvotní otázka hraní bez veřejné IP a bez master serveru nemá řešení. To prostě udělat nejde.
A s IPv6 je podle mě problém s providery. Já teda nevím, jak který provider válčí s moderními protokoly, ale neprojde to přes řadu aktivních síťových prvků (switche, routery apod.), takže to je problém. Možná až dojdou IPv4 adresy (a to bude už brzo), začnou se ledy hýbat rychleji a do pár let máme IPv6 všude. Kdo ví... |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 24. leden 2011, 19:42:36 Předmět: |
|
|
mozes mi povedat preco je potrebne aby vsetky mali pri UDP verejnu IP? _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 24. leden 2011, 21:07:00 Předmět: |
|
|
Al napsal: |
A navíc mi to připomíná, že je tomu už 10 let, co jsem ... Tehdy to bylo náročné, každej bit jsme počítali a zvažovali, jestli ho můžeme dovolit poslat. Dnes je to ve srovnání s tehdejší dobou ráj na Zemi. |
A ještě řekni, že na tebe tehdy byli škaredí a ubližovali ti a že dneska už je to ve srovnání s tou dobou hamburgerovej ráj.  _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 24. leden 2011, 21:48:46 Předmět: |
|
|
Al> "Měli jsme jen jedničky a nuly. A někdy jsme neměli ani jedničky. Psal jsem program databáze a používal jen samé nuly." "Vy jste měli nuly? My jsme museli používat písmeno O!" (Dilbertův princip)
Nicméně jsem měl dojem, že UDP je stejně jako TCP nadstavba IP, tudíž by veřejné adresy měly mít stejný vliv. Tj. server musí mít veřejnou, ale po otevření spojení je možno komunikovat oběma směry. A taky jsem měl dojem, že UDP používají prakticky všechny FPS (CoD, CS...) i na hru po internetu, tak proč by to bylo nepoužitelné?  _________________ For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++. |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 24. leden 2011, 21:55:52 Předmět: |
|
|
nevyhoda TCP je taktiez v tom ze OS to nemusi odoslat okamzite to co aplikacia zapisala. ma to dokonca aj nejaky nazov na ktory si teraz nespomeniem. ale proste caka kym sa nastrada aspon na jeden vetsi paket.
cheche uz vidim ten flame TCP vs UDP. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 24. leden 2011, 21:59:48 Předmět: |
|
|
Typické C-H: Jsou to dva protokoly, sloužící k jedné věci, ale odlišným způsobem.
FLAME ALERT!  _________________ For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++. |
|
Návrat nahoru |
|
 |
Mem

Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 25. leden 2011, 08:33:39 Předmět: |
|
|
if.then napsal: |
Nicméně jsem měl dojem, že UDP je stejně jako TCP nadstavba IP, tudíž by veřejné adresy měly mít stejný vliv. Tj. server musí mít veřejnou, ale po otevření spojení je možno komunikovat oběma směry. |
Ustavení spojení (handshaking), které pak umožní streamovat pakety oběma směry, se děje jen u TCP (a nižší vrstva v OSI pak zajišťuje i správné doručování pořadí, doposlání při chybě atd.).
U UDP se ale jednorázově odesílá zpráva, nižší vrstva nedrží žádný connection a protistrana nemá kam odpovědět (typicky se ani nenastavuje zdrojový port) _________________
 |
|
Návrat nahoru |
|
 |
Yossarian

Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 25. leden 2011, 11:03:36 Předmět: |
|
|
Mem napsal: |
U UDP se ale jednorázově odesílá zpráva, nižší vrstva nedrží žádný connection a protistrana nemá kam odpovědět (typicky se ani nenastavuje zdrojový port) |
eeeeee, co prosim? a jak potom funguje DNS? routery si pri maskarade vetsinou pamatuji, odkud z vnitrni site priletel UDP packet, a pokud mu na nej nekdo odpovi, tak jej preposlou zpatky spravne, tohoto vyuziva treba udp-punching. |
|
Návrat nahoru |
|
 |
franz
Založen: 30. 07. 2007 Příspěvky: 1325
|
Zaslal: 25. leden 2011, 11:15:02 Předmět: |
|
|
Koukal jsem, že v GameMakeru mají hotové řešení a není potřeba znát lautr nic, v Unity to bude počítám stejné, tak proč tolik křiku kolem? |
|
Návrat nahoru |
|
 |
Fremen

Založen: 30. 12. 2008 Příspěvky: 9
|
Zaslal: 25. leden 2011, 11:47:30 Předmět: |
|
|
Yossarian má pravdu. Routery si pamatují odkud a kam byl datagram poslán a když z cílové adresy přijme odpověď, přepošle ho správným směrem zpět. Jak by jinak fungoval i třeba RTP pro VoIP?
UDP má stále velké využití. Třeba dnes se pro hry používají různé "reliable UDP" knihovny např. RakNet, ENet (btw: Unity3D používá RakNet), které označují datagramy identifikátory a zpětně mohou zasílat i potvrzení o přijetí tohoto datagramu, případně odhazují datagramy, které příjdou pozdě apod. Takže ve výsledku je to vesměs velmi podobné jako TCP (laicky řečeno) s některými výhodami (třeba menší velikost paketu; žádné lagy) a nevýhodami (chybí connection management, případně je velmi jednoduchý; routery, kterým dochází pamět, odhazují UDP pakety skoro jako první věc).
Myslím si ale, že když v dnešní době sítí použije game developer kterýkoliv z těchto dvou protokolů správným způsobem, tak chybu neudělá. |
|
Návrat nahoru |
|
 |
|