Jump to content
php.lv forumi

Biome3d - mans pirmais 3d hobija projekts


Recommended Posts

  • Replies 50
  • Created
  • Last Reply

Top Posters In This Topic

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

Link to comment
Share on other sites

  • 4 months later...

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
Link to comment
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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...