Не секрет, что многие из нас любят побаловаться в свободное время компьютерными играми. Большинство онлайн игр реализованы по клиент-серверной технологии: у игрока на персональном компьютере размещается некий front-end, по сути, графический интерфейс, а со стороны сервера — обыкновенная база данных, работающая под управлением собственного движка. Такая схема дает возможность существенно снизить нагрузку на сеть, поскольку передаются только данные об изменениях положения игрового персонажа в пространстве и его действиях, а также команды с мыши и клавиатуры. В обратную сторону аналогичным образом передаются данные клиенту, в том числе геодата, объекты и информация о других персонажах, управляемых компьютером и игроками.
Остальное делается на стороне клиента: игровой механизм преобразует полученные данные в графический ряд, формируя изображение традиционным для трехмерных (иногда — двумерных) миров способом: модели,текстуры и прочее обрабатывает собственно компьютер игрока. Но если нагрузка на сеть минимальна, то нагрузка на игровую станцию нешуточная, ведь ей приходится постоянно подгружать текстуры, отрисовывать анимацию, моделировать условия освещения, теней, физику игры и прочие события, и все это происходит в реальном времени.
В процессе экспериментов с разными игровыми мирами и серверами мне удалось выяснить, что проблема не в сетевом соединении и не в производительности видеокарты или процессора, хотя они тоже важны.
Ключевая проблема с фризами в играх заключается именно в недостаточной скорости работы с жесткими дисками — когда игровому механизму придет в голову срочно подгрузить недостающие текстуры, неизвестно даже разработчикам. Зато известно, что в сложных игровых ситуациях он может делать это непрерывно: например, в осаде замка может участвовать несколько сотен человек, а также персонажей, управляемых компьютером. Нетрудно догадаться, что в такой ситуации скорость дисковой подсистемы сыграет решающую роль — при ее недостаточности вместо динамичной яркой игры мы имеем пошаговую стратегию с рывками, притормаживаниями и жутким дискомфортом.
Прочитать полностью