Stabilno kao žica, čak i na nesigurnom Wi-Fi-ju.
Wi-Fi je neprijateljsko mjesto. Mikrotalasne pećnice, komšije, izgubljeni beaconi, roaming događaji. Dish je napravljen da preživi svakog od njih bez da vas izvuče iz igre.
Otkucaji
I Dish i Satellite šalju mali heartbeat paket svake 2 sekunde čak i kada se ne pritiska nijedno dugme. Dva razloga:
- Živost. Svaka strana zna unutar nekoliko sekundi ako je druga utihnula. Mnogo brže od bilo kojeg TCP keepalive timeout-a.
- Zaobilaženje Wi-Fi power-save-a. Neki telefoni gušaju odlazne pakete kada ekran miruje. Redovan heartbeat drži radio budnim, tako da kada konačno pritisnete dugme nema kašnjenja od buđenja.
Automatsko ponovno povezivanje
Satellite prekida vezu nakon pet propuštenih otkucaja zaredom, tj. otprilike 10 sekundi tišine. Mnogo prije toga, Dish započinje laganu petlju za ponovno priključivanje pomoću keširanog session ključa. Bez ponovnog unosa PIN-a: ključ uparivanja perzistira kroz reboote i kroz ponovno priključivanje.
Kritično, virtuelni Xbox 360 ili DualShock 4 kontroler ostaje priključen na gaming PC-u tokom prekida. Većina igara neće izbaciti igrača. Iz perspektive igre, kontroler je samo malo stajao mirno.
Roaming i multi-AP mreže
Na mesh mreži, vaš telefon može preći sa jednog AP-a na drugi usred meča. Izvorni IP se mijenja, stari NAT mapping se tiho resetuje. Dish primjećuje novi izvorni IP na sljedećem paketu i Satellite ponovo validira sesiju prema šifriranom tokenu. Obično bez vidljivog kvara u igri.
Paketi van redoslijeda i duplikati
Wi-Fi može isporučiti pakete van redoslijeda na zauzetim mrežama. Prijemnik Satellite-a prati najviši brojač koji je prihvatio na svakoj vezi i odbacuje sve što je zastarjelo. Noviji paketi uvijek pobjeđuju, stariji se tiho odbacuju. Nikada ne osjećate da stick poskoči nazad.
Šta se dešava tokom stvarnog prekida
Ako vaš Wi-Fi zaista nestane duže od deset sekundi, recimo reboot rutera, Satellite prekida vezu i čisto otključava virtuelni kontroler. U trenutku kada se povezivost vrati, Dish ponovo automatski otkriva Satellite preko mDNS-a i ponovo uspostavlja vezu pomoću sačuvanog ključa. Stickovi se centriraju, kontroler se ponovo pojavljuje, a ostalo je na igri.
Bez panike u poništavanju uparivanja. Bez „molimo ponovo dodajte vaš kontroler“ dijaloga. Bez ponovnog kucanja PIN-a.
Spavanje ekrana ostaje isključeno dok igrate
Dish za Android drži wake lock plus connectedDevice foreground service koji Android zahtjeva, tako da OS vidi povezanu gaming sesiju i nikada ne odluči da vam zatamni ekran usred borbe. Ostale Dish platforme u razvoju koriste ekvivalentni power-assertion API (IOKit na macOS-u, freedesktop ScreenSaver D-Bus inhibitor na Linuxu, SetThreadExecutionState na Windowsu).
Više kontrolera po sesiji
Co-op veče sa kauča? Do 16 kontrolera po Satellite sesiji, sa nezavisnim virtuelnim kontrolerima, stanjem enkripcije, motion stream-ovima i rumble rutama. Jedan igrač koji ispadne ne vuče ostale dolje. Jedan telefon može voditi nekoliko kontrolera protiv istog Satellite-a ako zaista želite.
Trajanje baterije
Vruća putanja je nekoliko linija koda. Dish za Android odmara blizu nule CPU-a između input događaja. Otkucaji su jedini stalni rad, a sitan UDP paket svake 2 sekunde je u suštini besplatan na modernom radiju.
U našem vlastitom testiranju, Dish za Android troši primjetno manje baterije od Bluetooth audio poziva.