Клиенттік болжам - Client-side prediction

Клиенттік болжам Бұл желілік бағдарламалау қолданылатын техника Видео Ойындары жоғары жағымсыз әсерлерін жасыруға арналған кешігу байланыстар. Техника қашықтан басқару пультіндегі ойыншының әрекетін басқару кезінде ойыншының кірісін жедел сезінуге тырысады сервер.

Клиенттің алдын-ала болжау үдерісі мынаны білдіреді клиент сервер кірісті мойындап, ойын күйін жаңартқанға дейін пайдаланушының енгізуіне жергілікті реакция жасайды.[1] Сонымен, клиент тек басқарушы кірісті серверге жіберіп, оның орнына жаңартылған ойын күйін күтудің орнына, клиент сонымен қатар, ойынның жай-күйін жергілікті түрде болжайды және пайдаланушыға жаңартылған ойын күйін күтпей-ақ кері байланыс береді. сервер.

Клиенттің алдын-ала болжауы кідіріс проблемаларын азайтады, өйткені енді кіру мен клиенттің визуалды кері байланысы арасындағы желінің пинг уақытына байланысты кідіріс болмайды. Сонымен қатар, ол клиенттің және серверлік ойын күйлерінің синхронизациясын енгізеді, оны ойынды ойнатылатын етіп ұстау қажет.[1] Әдетте, синхрондау клиент жаңартылған ойын күйін алған кезде түзетіледі, бірақ лездік түзету «үзіліске» әкелетін болғандықтан, әдетте кейбір «тегістеу» алгоритмдері қатысады. Мысалы, бір тегістеу алгоритмі әр көрінетін объектінің клиенттің орналасқан жерін оның сервер жағында орналасқан кейбір қателіктер эпсилонында екенін тексеру үшін болады. Егер олай болмаса, клиенттің ақпараты тікелей сервер жағына жаңартылады (тым көп синхронизация салдарынан алынған). Алайда, егер клиенттің орналасқан жері онша алыс болмаса, клиент пен сервер жағынан жаңа позиция интерполяцияланады; бұл позиция клиенттің орналасу нүктесінен шығатын кішкене адымның шегінде орналасады, ол әдетте пайдаланушыға жағымсыз болуы үшін «жеткілікті кішкентай» деп есептеледі.

Әдетте клиенттің болжамымен бірге қолданылатын дезинхрондау мәселесінің тағы бір шешімі деп аталады серверді салыстыру.[2] Клиент серверге жіберілген әрбір енгізілімге реттік нөмірді енгізеді және жергілікті көшірмені сақтайды. Сервер клиентке беделді жаңартуды жіберген кезде, оған осы клиент үшін соңғы өңделген енгізудің реттік нөмірі кіреді. Клиент жаңа күйді қабылдайды және серверде әлі өңделмеген кірістерді қайта қолданады, көп жағдайда көрінетін синхрондау мәселелерін жояды.

Клиенттің алдын-ала болжауды қолданған алғашқы адам атысшысы Duke Nukem 3D 1996 жылдың 29 қаңтарынан бастап тегін бағдарламалық қамтамасыздандыруды енгізді.[3][4] Техника сонымен қатар көрнекті ерекшелігі болды QuakeWorld, танымал қондырма Жер сілкінісі. Желілік ойнату түпнұсқаға енгізілген Жер сілкінісі ойын, ол негізінен оңтайландырылды Жергілікті желі ойнау. Үйге жоғары жылдамдықты байланысы бар болған кезде (сирек кездесетін), Жер сілкінісідизайнерлер олардың өткізу қабілеттілігі мен пингтің төмен уақыты туралы болжамдарын елемеді, бұл Интернетте ойнауды көңілсіз қалдырды теру пайдаланушылар.[5] Ұзын жеке бета нұсқасындағы бірқатар эксперименттерден кейін, id Бағдарламалық жасақтама босатылған QuakeWorld жоғары және төмен кідірісті ойыншыларға танымал болған жаңа болжамды модельмен.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ а б Бернье, Ях В. (2001). «Клиенттің / сервердің ойын ішіндегі протоколды жобалау және оңтайландыру кезіндегі кешіктіруді өтеу әдістері» (PDF). Алынған 2008-12-19.
  2. ^ Габриэль Гамбетта, Клиенттік болжам және серверді келісу
  3. ^ Дрансфилд, Ян (2018-07-14). «Машина бөлмесі: салу». Ретро ойыншы. Біріккен Корольдігі: Болашақ пл (182): 62–67. ISSN  1742-3155. Алынған 2018-11-24.
  4. ^ Duke Nukem 3D (v1.5 CD нұсқасы) Бастапқы кодтың шығарылымы - 1 сәуір 2003 ж, Видеоны сақтау, 2019-05-15, өзгертулерді (), жалғандықтарды () және дұрыс өзгертуді) қараңыз., алынды 2019-05-15CS1 maint: басқалары (сілтеме)
  5. ^ Джон Кармак, Жоспар. QuakeWorld