Jump to content
php.lv forumi
codez

Biome3d - mans pirmais 3d hobija projekts

Recommended Posts

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?

Share this post


Link to post
Share on other sites

Š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.

Share this post


Link to post
Share on other sites

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.htmlhttp://www.minijuegos.com/juego/agario-3d

Edited by codez

Share this post


Link to post
Share on other sites

Drošvien. Tur ir klasiskā google adsense - pagaidām neko labāku (kas maksā vairāk) neesmu atradis.

Share this post


Link to post
Share on other sites

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? ;)

Share this post


Link to post
Share on other sites

Velns, tas slither.io ir bremzīgs... Tāda sajūta, ka feedback peles kustībai notiek tikai pēc vismaz 200 ms.

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×