Ігровий сервер

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Ігровий сервер (англ. game server від англ. game — гра і англ. to serve — служити) — програмний компонент обчислювальної системи, що забезпечує зв'язок між різними клієнтами, надаючи їм можливість комунікації один з одним в рамках програмної оболонки конкретної гри.

Програмний компонент обчислювальної системи[ред.ред. код]

Як правило, ігрові сервери запускаються на сервері, працюючому на базі Unix-систем або Microsoft Windows. При цьому остання найбільше поширена в силу свого зручності для адміністраторів ігрових серверів, але так само і найменш надійна в плані безпеки. У свою чергу різні реалізації ігрового хостингу на базі Unix-подібних систем більш безпечні. Відмінностей у стабільності роботи ігрових серверів на різних ОС практично не спостерігається.

Самими розповсюдженими онлайн іграми є World of Warcraft, World of Tanks, Counter-Strike (в тому числі Counter-Strike Source), Lineage, Call of Duty, Team Fortress, Quake, Unreal Tournament, San Andreas Multiplayer (скор. SA-MP) та інші. У роботі ігрового сервера можна виділити три основних механізми:

Зв'язок з клієнтом[ред.ред. код]

Отримання даних про клієнта, в тому числі розташування на віртуальній карті світу (в рамках ігрового сервера карта може бути будь-який), про боєзапас, здоров'я, напрямок руху та дії клієнта. Всі перераховані дані відносяться тільки до віртуального ігровому світу і не мають ніякого відношення до реального гравцеві, що знаходиться за ПК.

Синхронізація отриманих даних[ред.ред. код]

Ігровий сервер постійно генерує нові карти, оновлення ігрового світу. Дані про зміни відправляються всім клієнтам, природно між сервером і клієнтом виникає затримка вимірювана в мілісекундах.

Відправка даних клієнтові[ред.ред. код]

Відправка всіх даних після систематизації загальної картини ігрового світу кожному гравцеві ігрового сервера. Кількість даних, яке отримає кожен гравець, залежить від значення параметра rate у сервера і у кожного клієнта окремо. При цьому rate клієнта не може перевищувати rate сервера, але не навпаки.