rpr Posted December 8, 2015 Report Share Posted December 8, 2015 codez + briedi, vai tad pats tcp/udp protokols nenodrošina sava veida checksummošanu vai arī domā, ka vinam ātrāks / otram lēnāks inets un ieguvējs ir tas, kam ātrāks? Quote Link to comment Share on other sites More sharing options...
Kavacky Posted December 8, 2015 Report Share Posted December 8, 2015 Jā, par to, ka ieguvējs ir tas, kuram pings un packetloss mazāks. Quote Link to comment Share on other sites More sharing options...
briedis Posted December 8, 2015 Report Share Posted December 8, 2015 Te interesants gabals: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking Tāpēc arī rodas jautājumi, kā codez šī lietas risināja. Quote Link to comment Share on other sites More sharing options...
codez Posted December 9, 2015 Author Report Share Posted December 9, 2015 Šajā projektā nekāda lielā gudrība nav izmantota. Klients saņem datus un interpolē vērtības no iepriekšējiem stāvokļiem. Šūnas kustās salīdzinoši lēni, tāpēc pietiek ar vienkārši darbību sūtīšanu serverim un stāvokļu saņemšanu atpakaļ. Vienīgā ātrā darbība ir kameras kustināšana, bet tā kā kameras stāvoklis neietekmē spēles stāvokli, tad tas vis notiek klienta pusē un serverim netiek pat sūtīts. Ja ir lagains tīkls, tad principā gameplay-jā to uzreiz var just, ka kustības aiztures. Nesen taisīju arī "first person" eksperimentu un tur jau 100-200ms lags rada sliktu gameplay, tāpēc eksperimentēju ar tā saukto "lag compensation" metodi. Ideja ir tāda, ka paralēli darbību sūtīšanai serverim, visas darbības simulē arī klienta pusē un, kad serveris it atsūtījis jauno validēto stāvokli, klients ir ticis parasti 2 - 5 simulācijas soļus uz priekšu, tāpēc visas šo soļu darbības glabājas buferī un pie jauna stāvokļa no servera, tiek pārsimulēta visa ķēde līdz šim brīdim. Ja klienta puses un servera puses algoritmi ir vienādi, tad pārsimulācija parasti dod to pašu rezultātu. Rezultāts sāk atšķirties, ja servera puses simulācijā iejaucās cita lietotāja darbības, kuras pirmais klients vēl nav saņēmis. Šajā gadījumā pēc pārrēķināšanas gala vērtība var nedaudz atšķirties, tāpēc ar interpolāciju vairākos kadros pietuvina šo vērtību. Mana steka gadījumā man nācās daļu simulācijas algoritma, kurš notiek arī klienta pusē, pārrakstīt no Scalas uz Javascriptu. Šajā aspektā nodejs ir neliela priekšrocība pār Scalu, lai gan tīri teorētiski Scalai ir bibliotēkas, kas māk Scala kodu pārvērst Javascriptā. Ar "lag compensation" metodi, principā pārvietošanās pa pasauli, neietekmējot gameplay, var notikt arī ar vairākas sekundes pazudušu konekciju. Quote Link to comment Share on other sites More sharing options...
briedis Posted December 9, 2015 Report Share Posted December 9, 2015 Interesanti, paldies! Quote Link to comment Share on other sites More sharing options...
codez Posted May 7, 2016 Author Report Share Posted May 7, 2016 (edited) Pēc pus gada rezultāti ir šādi. Pagaidām katru mēnesi ir gandrīz miljons unikālo apmeklētāju ar tendenci nedaudz pieaugt. Youtube 15k subscraiberu, FB 26k šāres un 14k komentāri. Spēle ievietota vairāk kā 500 spēļu direktorijās no kurām nāk aptuveni puse trafika, piemēram, http://slitherio.org/games/agario3d.html, http://www.minijuegos.com/juego/agario-3d Edited May 7, 2016 by codez Quote Link to comment Share on other sites More sharing options...
Wuu Posted May 8, 2016 Report Share Posted May 8, 2016 Nevienu reklāmu neredzu, vai tas dēļ atbloka? Quote Link to comment Share on other sites More sharing options...
codez Posted May 8, 2016 Author Report Share Posted May 8, 2016 Drošvien. Tur ir klasiskā google adsense - pagaidām neko labāku (kas maksā vairāk) neesmu atradis. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted May 9, 2016 Report Share Posted May 9, 2016 Cik izcel? Quote Link to comment Share on other sites More sharing options...
e-remit Posted May 9, 2016 Report Share Posted May 9, 2016 codez, tev slither.io 3D versija nav padomā? Nevienu reklāmu neredzu, vai tas dēļ atbloka? Tu saproti, ka tu šādi apzodz codezu! Tiešām ceri, ka šādai rīcībai nebūs sekas? ;) Quote Link to comment Share on other sites More sharing options...
jurchiks Posted May 9, 2016 Report Share Posted May 9, 2016 Velns, tas slither.io ir bremzīgs... Tāda sajūta, ka feedback peles kustībai notiek tikai pēc vismaz 200 ms. Quote Link to comment Share on other sites More sharing options...
e-remit Posted May 9, 2016 Report Share Posted May 9, 2016 Jā, tā ir tās spēles bēda, bet brīžos, kad nebremzē, interesantāka par agar.io. Tāpēc jau cerība, ka codez uztaisīs labāk :) Quote Link to comment Share on other sites More sharing options...
codez Posted May 9, 2016 Author Report Share Posted May 9, 2016 codez, tev slither.io 3D versija nav padomā? Ir, ir, tieši tagad arī taisu 3D versiju. Citā topikā, kur runāju par ģeometrijas ģenerācijas algoritmu, runa bija tieši par 3D čūskas ģeometrijas ģenerēšanu un efektīvu kustināšanu izmantojot skeletu un šeiderus. Quote Link to comment Share on other sites More sharing options...
codez Posted May 9, 2016 Author Report Share Posted May 9, 2016 P.S. Te neliels ieskats tajā, kas jau gatavs: Quote Link to comment Share on other sites More sharing options...
Zefirs Posted May 9, 2016 Report Share Posted May 9, 2016 Prieks redzēt šādu projektus topam. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.