Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Ойын клиенті – жеке пайдаланушыны негізгі ойын серверімен байланыстыратын желілік клиент, көбінесе көп ойыншылы бейне ойындарда қолданылады. Ол ойыншының ұпалы, статусы, орны және қозғалысы сияқты деректерді жинап, ойын серверіне жібереді, бұл серверге әрбір ойыншының деректерін жинап, ойынға қатысушылардың барлығын көрсетуге мүмкіндік береді – бұл кішкентай арена ойыны болсын немесе мыңдаған ойыншы бар үлкен карта болсын. Ойын сервері ойынның әрбір ойыншысы үшін ақпаратты көрсеткенімен, ойыншылар ойын клиенті жинаған деректер негізінде жеке көзқарасқа ие болады, сондықтан әр ойыншының ойынға деген көзқарасы әртүрлі, тіпті барлық ойыншылар үшін әлем бірдей болса да. Ойын клиенті сондай-ақ пайдаланушылар арасында ақпарат алмасуға да мүмкіндік береді. Мысалы, көптеген MMORPG ойындарында заттарды алмастыруды қарастырайық, онда ойыншы қажет емес затын қажеттісіне алмастырады, ойын клиенттері бір-бірімен байланысып, осы алмастыру кезінде ақпарат алмасуға мүмкіндік береді. Көптеген ойындар ойыншылар жиналатын орталық кеңістік пен пайдаланушылардың ақпарат алмасуына арналған құралды қажет ететіндіктен, көптеген ойын клиенттері клиент-сервер және теңдестірілген (peer-to-peer) архитектураларының гибриді болып табылады.
A game client is a network client that connects an individual user to the main game server, used mainly in multiplayer video games. It collects data such as score, player status, position and movement from a single player and send it to the game server, which allows the server to collect each individual's data and show every player in game, whether it is an arena game on a smaller scale or a massive game with thousands of players on the same map. Even though the game server displays each player's information for every player in a game, players still have their own unique perspective from the information collected by the game client, so that every player's perspective of the game is different, even though the world for every player is the same. The game client also allows the information sharing among users. An example would be item exchange in many MMORPG games where a player exchange an item he/she doesn't want for an item he/she wants, the game clients interconnect with each other and allows the sharing of information, in this exchanging items. Since many games requires a centralized space for players to gather and a way for users to exchange their information, many game clients are a hybrid of client server and peer to peer application structures.
Тарих
World Wide Web 256 МГц процессорлы, 2 ГБ дискісі бар және NeXTSTEP операциялық жүйесінде жұмыс істейтін сұр түсті монитормен NeXTCube-те дүниеге келді. Сер Тим Бернерс-Ли 1991 жылғы 6 тамызда алғашқы веб-бетті онлайнға шығарды, ол Швейцарияның Женева қаласындағы CERN ұйымында жұмыс істеген кезде. Онлайн ойындардың тарихы ең алғаш 1970 жылдардың басында басталды. Сол кезде Dial-up хабарландыру тақталары ойыншыларға интернет арқылы ойын ойнау мүмкіндігін берді. 1990 жылдары жаңа технологиялар интернетке көптеген ойын сайттарының ашылуына жағдай жасады. Клиент-сервер жүйесі онлайн ойындардың үлкен масштабта жұмыс істеуіне мүмкіндік берді.
The World Wide Web was born on a NeXTCube with a 256Mhz cpu, 2GB of disk, and a gray scale monitor running NeXTSTEP OS. Sir Tim Berners Lee put the first web page online on August 6, 1991, while working for CERN in Geneva Switzerland. Online gaming started in the early seventies. At that time Dial up bulletin boards provided players with a way of playing games over the internet. In the 1990s, new technologies enabled gaming sites to pop up all over the internet. The client server system provided online gaming a way to function on a large scale.
Кірісті қабылдау
Ойын клиенті жеке пайдаланушыдан деректерді қабылдайды. Мысалы, FPS ойынында ойыншы жылжу, ату және байланыс сияқты әртүрлі әрекеттер жасайды. Олардың әрқайсысы ойыншыдан басқару құралдарын қолдануды қажет етеді. Ойын клиенті осы деректерді алғаннан кейін оны серверге жібереді.
A game client receives input from an individual user. In an FPS game, for example, a player does many different actions such as move, shoot and communicate. Each of them will require the player to control the input devices. After receiving those inputs, the game client will send it back to the server.
Деректерді талдау
Ойын клиенті ойын әлемін құрайтын ақпаратты – компьютерде сақталған объектілерді және ойыншылардың іс-әрекеттерінің нәтижелерін – декодтап, көрсетеді, содан кейін осы ақпаратты пайдаланушы интерфейсі мен шығыс құрылғылары арқылы жеткізеді.
The game client decodes and displays information that makes up the game world, including objects stored in the computer and action results made by players, and then translate these information onto the user interface and the output devices.
Қайталама береді
Сервер ақпаратты өңдеп, клиентке жібереді. Клиент өңделген ақпаратты ойыншының көзқарасына сәйкес ойыншыға көрсетеді, сондықтан әр ойыншының жеке клиенттеріне байланысты экрандағы көрінісі әртүрлі болады.
The server process the information and send it back to the client. The client will display the processed information to the player according to the player's point of view, so that each player will have a different perspective of the screen due to their private clients.
Жүйені реттеу
Клиент ойын сеансы барысында ойыншылардың іс-әрекеттеріне байланысты жасалған барлық өзгерістерді, соның ішінде интерфейс элементтерінің орналасуын және параметрлерді анықтайды. Ойын нақты уақыт режимінде өтетіндіктен және ойыншылар үнемі командалар жіберіп тұратындықтан, клиент ақпаратты үздіксіз өңдеп, жүйені тиісінше реттеп отырады.
The client will also detect any changes made according to the players during the gaming session, including layouts and settings. Since a game is real time and players are constantly sending actions, the client is constantly processing information and adjusting the system accordingly.
Қолдану үлгісі
Бұл 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 көрсеткіштері де бар.
Here is an example of how the game client works, using the game League of Legends. In this example, a player named 7Turtle7 is using the character Kha'Zix to attack a neutral character known as the "Red Brambleback". Multiple things are happening from the client's perspective. 1. The client pulls data stored in the computer archives. That includes the player's statistics, map objects, mobs, artworks, character behaviors and other static data to create the player's surroundings. 2. 7Turtle7 attempts to attack Red Brambleback. The client send data of 7Turtle7's and Red Brambleback's data on statistics like position, health, mana, damage, defense and many other data to the server and allows the server to calculate the new world state after 7Turtle7 strikes Red Brambleback. 3. The server process the data and send it back to all other player's clients, informing what 7Turtle7 just did and how the client should give feedback on it. After 7Turtle7's client receives this information, it creates the output and sends it back to 7Turtle7. In this example, we can see that a red number indicating damage done on Red Brambleback appeared and a 3 appeared on the abilities panel indicating the cool down time of the ability 7Turtle7 just used. Character behaviors, in this case the Red Brambleback, also changes due to the attack. It now becomes a hostile create that will attack 7Turtle7 according to in game programming since 7Turtle7 attacked the Red Brambleback first. Artwork outputs such as the attack animation, health bar and mana bar also changes. 4. The other game clients are also aware of the attack made by 7Turtle7, but depending on their perspective, their clients determine whether this information is displayed to them or not. A player's client on the opposing team, for example, is aware of the attack, but it would not display the changes to that player since the game sets it so that one has to discover 7Turtle7 doing such a move, only then it will be displayed on their outputs. 5. Even though the client sends and receives data from an individual's perspective, there is data that is shared with everyone in a game or doesn't share at all. Take the top right corner of 7Turtle7's perspective, for example, there is a time indicator, and that time is the same for everyone inside the game. There is also the FPS and Ping indicator, which is exclusive to 7Turtle7 and not shared through the client.
Технологияны қабылдау
Көптеген ойын әзірлеушілер үшін технологияны қабылдау – олардың инженерлік жұмысының кілті. HTML 5 және JavaScript сияқты стандартталған платформалар медиа интеграциясы мен тереңдетілген дамуға жағдай жасайды. Ойын клиенті мұны іске асыруға мүмкіндік береді.
To many game developers, adopting technology is the key to their engineering. Standardized platforms such as HTML 5 and JavaScript can allow media integrations and deeper developments. A game client provides the ability to do so.
Пайдаланушы тәжірибесі
Ойын тепе-теңдігін сақтау дамытушылар үшін маңызды мәселе. Серверге қосылған көптеген пайдаланушылар клиентте жоғары ресурстарды қолдануға себеп болуы мүмкін, бірақ сонымен бірге пайдаланушылардың ойынға қосылып қалуы қажет. Ойын клиенттері осы сияқты мәліметтерді орталық серверге жібереді.
Balancing the game is a big issue for the developers. A large number of users on their client connected to the server could cause high resource usage, but at the same time the users need to stay connected to the game. Game clients will provide this type information to a centralized server.
Қызметкерлердің ынтымақтастығы
Ойын дамыған сайын жаңа мүмкіндіктер қосыла береді. Ойын басында көп ынтымақтастық қажет етпейтін шағын, біріңғай команданың орнына, дамыған ойынның жасалуы көбінесе бірнеше бөлімнің бірлесіп мәселелерді шешуімен жүзеге асады, бұл үшін барлық бөлімдердің үйлесімді жұмыс істеуі қажет.
As the game develops, new feature will be added. Instead of a small, cohesive team that doesn't require much cooperation at the start of a game, a developed game usually has several departments working together to figure out a solution, and that requires all departments to work in harmony.
Жаңартулар
Кейде ойын әзірлеуші команда жаңа мазмұн жасайды немесе бұрынғы қателерді түзетеді, яғни олар әр ойыншының клиентін сервермен синхрондау қажеттігін білдіреді. Ойын жасаушылар қателерді түзету немесе ойынға жаңа мазмұн қосу үшін патчтарды пайдаланады. Цифрлық тарату платформасы пайдаланушыға жаңарту бар екенін хабарлайды, ал клиент осы жаңарту патчтарын пайдаланушылар үшін автоматты түрде қолданып, өзгерістер енгізілген кезде әр пайдаланушының ойын мазмұнына бірдей көзқарасқа ие болуын қамтамасыз етеді. Steam, Origin және Battle.net сияқты цифрлық тарату платформалары ойын клиенттеріне қатысты бірдей қызметтерді ұсынады.
Sometimes the game development team creates new contents or fix previous bugs, which means they need to let every player's clients to synchronize with the server. One way a game developer can fix bugs or add new contents to a game is through patches. The digital distribution platform will alert the user that there is an update is available, and client apply those update patches for the users automatically to ensure every user has the same perspective of the game content when changes have been made. Some examples of a digital distribution platforms include steam, origin and battle. net, which provide the same services when it comes to game clients.