Кіріспе

Ойын клиенті – жеке пайдаланушыны негізгі ойын серверімен байланыстыратын желілік клиент, көбінесе көп ойыншылы бейне ойындарда қолданылады. Ол ойыншының ұпалы, статусы, орны және қозғалысы сияқты деректерді жинап, ойын серверіне жібереді, бұл серверге әрбір ойыншының деректерін жинап, ойынға қатысушылардың барлығын көрсетуге мүмкіндік береді – бұл кішкентай арена ойыны болсын немесе мыңдаған ойыншы бар үлкен карта болсын. Ойын сервері ойынның әрбір ойыншысы үшін ақпаратты көрсеткенімен, ойыншылар ойын клиенті жинаған деректер негізінде жеке көзқарасқа ие болады, сондықтан әр ойыншының ойынға деген көзқарасы әртүрлі, тіпті барлық ойыншылар үшін әлем бірдей болса да. Ойын клиенті сондай-ақ пайдаланушылар арасында ақпарат алмасуға да мүмкіндік береді. Мысалы, көптеген MMORPG ойындарында заттарды алмастыруды қарастырайық, онда ойыншы қажет емес затын қажеттісіне алмастырады, ойын клиенттері бір-бірімен байланысып, осы алмастыру кезінде ақпарат алмасуға мүмкіндік береді. Көптеген ойындар ойыншылар жиналатын орталық кеңістік пен пайдаланушылардың ақпарат алмасуына арналған құралды қажет ететіндіктен, көптеген ойын клиенттері клиент-сервер және теңдестірілген (peer-to-peer) архитектураларының гибриді болып табылады.

Тарих

World Wide Web 256 МГц процессорлы, 2 ГБ дискісі бар және NeXTSTEP операциялық жүйесінде жұмыс істейтін сұр түсті монитормен NeXTCube-те дүниеге келді. Сер Тим Бернерс-Ли 1991 жылғы 6 тамызда алғашқы веб-бетті онлайнға шығарды, ол Швейцарияның Женева қаласындағы CERN ұйымында жұмыс істеген кезде. Онлайн ойындардың тарихы ең алғаш 1970 жылдардың басында басталды. Сол кезде Dial-up хабарландыру тақталары ойыншыларға интернет арқылы ойын ойнау мүмкіндігін берді. 1990 жылдары жаңа технологиялар интернетке көптеген ойын сайттарының ашылуына жағдай жасады. Клиент-сервер жүйесі онлайн ойындардың үлкен масштабта жұмыс істеуіне мүмкіндік берді.

Кірісті қабылдау

Ойын клиенті жеке пайдаланушыдан деректерді қабылдайды. Мысалы, FPS ойынында ойыншы жылжу, ату және байланыс сияқты әртүрлі әрекеттер жасайды. Олардың әрқайсысы ойыншыдан басқару құралдарын қолдануды қажет етеді. Ойын клиенті осы деректерді алғаннан кейін оны серверге жібереді.

Деректерді талдау

Ойын клиенті ойын әлемін құрайтын ақпаратты – компьютерде сақталған объектілерді және ойыншылардың іс-әрекеттерінің нәтижелерін – декодтап, көрсетеді, содан кейін осы ақпаратты пайдаланушы интерфейсі мен шығыс құрылғылары арқылы жеткізеді.

Қайталама береді

Сервер ақпаратты өңдеп, клиентке жібереді. Клиент өңделген ақпаратты ойыншының көзқарасына сәйкес ойыншыға көрсетеді, сондықтан әр ойыншының жеке клиенттеріне байланысты экрандағы көрінісі әртүрлі болады.

Жүйені реттеу

Клиент ойын сеансы барысында ойыншылардың іс-әрекеттеріне байланысты жасалған барлық өзгерістерді, соның ішінде интерфейс элементтерінің орналасуын және параметрлерді анықтайды. Ойын нақты уақыт режимінде өтетіндіктен және ойыншылар үнемі командалар жіберіп тұратындықтан, клиент ақпаратты үздіксіз өңдеп, жүйені тиісінше реттеп отырады.

Қолдану үлгісі

Бұл League of Legends ойынын мысалға ала отырып, ойын клиенті қалай жұмыс істейтінін көрсетеді. Бұл мысалда 7Turtle7 атты ойыншы Kha'Zix кейіпкерін "Қызыл Брамблбек" деп аталатын бейтарап нысанға шабуылдау үшін пайдаланады. Клиент тарапынан бірнеше нәрсе орын алады. 1. Клиент компьютерде сақталған деректерді алады. Оған ойыншының статистикасы, карта нысандары, монстрлар, графикалық элементтер, кейіпкерлердің мінез-құлқы және ойыншының айналасын құру үшін қажетті басқа да статикалық деректер кіреді. 2. 7Turtle7 Қызыл Брамблбекке шабуыл жасауға тырысады. Клиент 7Turtle7 және Қызыл Брамблбек деректерін – позиция, денсаулық, мана, зиян, қорғаныс және тағы да көптеген параметрлерді серверге жібереді, содан кейін сервер 7Turtle7 шабуыл жасағаннан кейін жаңа ойын әлемінің күйін есептейді. 3. Сервер деректерді өңдеп, оны барлық ойыншылардың клиенттеріне қайтарады, 7Turtle7 не істегенін және клиент оған қалай жауап беру керектігін хабарлайды. 7Turtle7 клиенті осы ақпаратты алғаннан кейін, нәтижені жасайды және оны 7Turtle7-ге қайтарады. Мысалда, Қызыл Брамблбекке тиген зиянды көрсететін қызыл сан пайда болады және 7Turtle7 қолданған қабілеттің салқындау уақытын көрсететін 3 саны қабілеттер панелінде пайда болады. Кейіпкердің мінез-құлқы, осы жағдайда Қызыл Брамблбек, шабуылдың нәтижесінде өзгереді. 7Turtle7 Қызыл Брамблбекке бірінші болып шабуыл жасағандықтан, ол енді 7Turtle7-ге шабуыл жасайтын жауынгер нысанға айналады. Шабуыл анимациясы, денсаулық және мана жолақтары сияқты графикалық элементтер де өзгереді. 4. Басқа ойын клиенттері де 7Turtle7 жасаған шабуыл туралы хабардар, бірақ олардың көзқарасына байланысты, олардың клиенттері бұл ақпаратты көрсетуге немесе жасыруға шешім қабылдайды. Мысалы, қарсы командадағы ойыншының клиенті шабуыл туралы біледі, бірақ ол бұл өзгерістерді көрсетпейді, себебі ойын осылай реттелген – 7Turtle7 осындай әрекет жасағанын ойыншы өздігінен байқауы керек, содан кейін ғана ол нәтижелерді көреді. 5. Клиент жеке ойыншының көзқарасынан деректерді жіберсе де, қабылдаса да, барлығымен ортақ пайдаланатын немесе ешкіммен бөліспейтін деректер бар. Мысалы, 7Turtle7-нің экранының жоғарғы оң жақ бұрышында уақыт көрсеткіші бар, ол ойындағы барлық ойыншылар үшін бірдей. Сондай-ақ, 7Turtle7-ге ғана арналған және клиент арқылы бөліспейтін FPS және Ping көрсеткіштері де бар.

Технологияны қабылдау

Көптеген ойын әзірлеушілер үшін технологияны қабылдау – олардың инженерлік жұмысының кілті. HTML 5 және JavaScript сияқты стандартталған платформалар медиа интеграциясы мен тереңдетілген дамуға жағдай жасайды. Ойын клиенті мұны іске асыруға мүмкіндік береді.

Пайдаланушы тәжірибесі

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

Қызметкерлердің ынтымақтастығы

Ойын дамыған сайын жаңа мүмкіндіктер қосыла береді. Ойын басында көп ынтымақтастық қажет етпейтін шағын, біріңғай команданың орнына, дамыған ойынның жасалуы көбінесе бірнеше бөлімнің бірлесіп мәселелерді шешуімен жүзеге асады, бұл үшін барлық бөлімдердің үйлесімді жұмыс істеуі қажет.

Жаңартулар

Кейде ойын әзірлеуші команда жаңа мазмұн жасайды немесе бұрынғы қателерді түзетеді, яғни олар әр ойыншының клиентін сервермен синхрондау қажеттігін білдіреді. Ойын жасаушылар қателерді түзету немесе ойынға жаңа мазмұн қосу үшін патчтарды пайдаланады. Цифрлық тарату платформасы пайдаланушыға жаңарту бар екенін хабарлайды, ал клиент осы жаңарту патчтарын пайдаланушылар үшін автоматты түрде қолданып, өзгерістер енгізілген кезде әр пайдаланушының ойын мазмұнына бірдей көзқарасқа ие болуын қамтамасыз етеді. Steam, Origin және Battle.net сияқты цифрлық тарату платформалары ойын клиенттеріне қатысты бірдей қызметтерді ұсынады.