Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #64, МАРТ 2006 г.

сетевые игры

КРИС КАСПЕРСКИ АКА МЫЩЪХ

Спецвыпуск: Хакер, номер #064, стр. 064-062-5


Что самое неприятное, подобная «принудительная самосинхронизация» означает, что клиенты лишаются какой бы то ни было самостоятельности и вынуждены передавать все свои передвижения на сервер, ожидая подтверждения. Даже если игрок решил заняться онанизмом в тихом дальнем углу, он все равно будет двигаться рывками и слегка притормаживать!

Плюс игроки (живые люди, а не фигурки) находятся в полной зависимости от сервера, компании-разработчика и своего провайдера. Уже нельзя собраться в куче и поиграть по локалке. Нужно обязательно выходить в интернет или… устанавливать свой собственный сервер. Только как его установишь, если в открытом доступе его нет?

Очень остро встает и проблема читерства. Чем больше игроков, тем выше вероятность обмана. И хотя код, управляющий игровым пространством, находится на сервере, непосредственно залезть в который никак нельзя, хакеры могут повесить бот, то есть написать скрипт, управляющий движением игрока и с нечеловеческой меткостью и быстротой мочащий все, что попадается на глаза. Увы, защититься от этого никак нельзя! Единственное, что остается, — распознавать обманщиков по слишком большому количеству трупов, оставленных в единицу времени, и ставить им бан. Однако всегда найдется игрок, который поднимет вселенский визг, возмущаясь, «за что» его «так»?! Он же играл по всем правилам, а меткость и реакция, как известно — не порок.

В принципе, обработку игровых миров можно поручить и клиентам, а сервер будет только коммутировать потоки данных и распределять нагрузку по узлам. Короче говоря, приходим к той же самой самоорганизующейся системе, но только с центральным сервером, что снимает требование к вычислительной мощности сервера и отменяет принудительную синхронизацию, однако вызывает много путаницы с «отрубавшимися» клиентами, а серверу приходится постоянно перепроверять, был ли обработан данный блок игрового пространства. При огромном множестве клиентов это нереально, поэтому на практике часто используются гибридные схемы. Весь игровой мир хранится на сервере, но максимум перемещений обрабатывается локально: схватка двух игроков неизбежно происходит через сервер, а разборки игрока с монстром может обработать и сам клиент, доложив серверу конечный результат (кто кого порешил). Естественно, в этом случае со стороны клиента возможно наглое читерство...

От централизованного сервера не так уж и много пользы. Не стоит думать, что наличие сервера решит все проблемы. Проблем будет ненамного меньше, чем в самоорганизующейся распределенной системе, и это при всех недостатках, присущих серверу!

Разработка сетевых игр — захватывающее занятие, а сам игровой процесс отрывает хвост с головой — это тебе не с тупым компьютером сражаться, который только и умеет, что посылать монстров по прямой. Тут сталкивается живой интеллект реальных игроков, от которых можно ожидать любых хитростей и тактических маневров! Естественно, в процессе написания необходимо тестировать игру, то есть, проще говоря, играть в нее. По сети.

Назад на стр. 064-062-4  Содержание  Вперед на стр. 064-062-6