– Почему?
– Потому что.
Кир посмотрел на собеседника, вздохнул и начал пояснять.
– Все персонажи в игре бывают трех типов. Первый, самый редкий, – люди-игроки. Второй тип – активные программы, типа твоей. Они действуют в соответствии со своими поведенческими моделями, даже если рядом никого нет. И третий тип, самый распространенный, – триггерные программы. Они как бы стоят и не шевелятся на стартовых позициях, пока поблизости не появится игрок.
– Ну так, значит, просто поблизости игроков нет, разве не так?
– Не так. Иначе бы они уже исчезли и спрятались под песком. Помнишь, как они возникли, когда мы подъехали? Активными они тоже быть не могут, а то давно бы с тобой подрались. Следовательно, у данной игры нулевой приоритет, поэтому в ней ничего и не происходит. И бывает такое только тогда, когда в игре нет ни одного игрока. Нам нужно дойти до ближайшей стены.
– До какой стены? – не понял Сергей.
– До ближайшей. Где этот мир кончается. Фишка вот в чем – все землеподобные игровые поля, ну такие, где действие происходит на поверхности планеты, на одной модели крутятся… ну как тебе объяснить… – Кир покрутил пальцами, – вот представь себе Землю, я имею в виду планету. И представь, что мы, ну «Реалити-два», этой планетой владеем и сдаем игровые поля-«страны» в аренду всяким компаниям. И каждая компания в пределах своей «страны» может устроить все, что угодно: магический мир с эльфами и колдунами, технический с танками и роботами или там древний мир какой-нибудь, неважно. Главное, всюду есть гравитация, всюду действуют примерно одинаковые базовые физические законы: как свет преломляется, как предметы друг с другом взаимодействуют и прочее. Но координатная сетка у всех миров общая.
– Зачем? – удивился Сергей. – Не проще ли было бы каждой компании отдельную планетку выдать?
– Проще, но дороже. Клиентов у нас сейчас почти сто тысяч, причем большинство содержит мир с парой деревень да десятком деревьев, а иногда и того меньше. И ради каждого такого мирка заводить отдельный обслуживающий процесс? Неэффективно. Так что планета у нас одна, крутится она на масштабируемом суперкластере. Если нагрузка возрастает, мы еще десяток процессоров подключаем; если земля кончается, просто расширяем, благо она у нас плоская.
– Не совсем понятно, ну и черт с ним. Делать-то что?
– Я к чему и веду. Там, где одна «страна», область одного мира, кончается, там же начинается область другого. Компании сами решают, каким образом ограничить свой мир: можно сделать там настоящую стену, можно сделать ложную бесконечность – игрок будет идти, идти, а на самом деле не двигаться с места. Можно замкнуть мир в шар или «бублик», вариантов много, но суть одна – для обычных игроков стены непреодолимы. Даже если сама компания ничего не сделает, игрока наш движок не пропустит – получится «невидимая» стена. А для призрака – совсем другое дело. Призрак – это, напомню, отладочный элемент, так что ходит он по реальной сетке координат. И, пройдя через стену, я выйду в другой мир.
– А я?
– А ты – со мной. Спутник потому и спутник, что не должен далеко от игрока убегать. Активные программы – они достаточно самостоятельные, могут забрести куда угодно. Так вот, если спутник вдруг оказался от игрока слишком далеко, движок игры его принудительно переносит поближе. Так что, думаю, все у нас получится. Карты у меня, к сожалению, нет, ну и не надо. Пойдем напрямик, рано или поздно наткнемся на популярную игру, найдем игрока поумнее-поавторитетнее, отправим его в милицию-полицию и – парам-пам-пам! Туш, мы победили, враг сломлен и разбит.
– А где ближайшая стена, ты хоть знаешь?
– Знаю, – повеселел Кир, – мне консоль оставили. Все команды заблокированы, правда, но координаты свои посмотреть, как локальные, так и глобальные – это можно. Так что не заблудимся. Идти, правда, далеконько придется – в ту сторону, – Кир махнул рукой, – километров тридцать. Но другие стены еще дальше.
– Тридцать? Тю! Это мы весь день идти будем… Погоди-ка, ерунда какая-то выходит. Ты говорил, что вы площадь продаете? Это кто такой богатый, что купил столько земли и никак ее не использует?
Кир поморщился:
– Так это ж пустыня. Она дешевая. Понимаешь, площадь сама по себе очень мало стоит – чтобы ее увеличить, программисту всего две цифры в настройках поменять надо. Пустыня создает небольшую нагрузку на процессор, вот и стоит ненамного дороже голой сетки. Вот если бы это город был или лес, да еще со зверюшками и с птичками, – это уже намного дороже. Так что ничего странного. Главное – чтобы за стеной не оказался какой-нибудь океан с малюсеньким островком посредине. Тогда возвращаться придется и к другой стене идти.
– Ясно, – сказал Сергей, подбирая с песка фляжки, – тогда пошли. Чем быстрее, тем лучше, так ведь?
Кир кивнул и зашагал вверх по бархану. Чесноков поправил автомат и, со словами «ну-с, любезная моя Екатерина Матвеевна», пошел следом.
На очередную странность спутника Сергей обратил внимание уже метров через сто – Кир шел по песку, утопая в нем то по щиколотку, то по колено, а местами вообще погружаясь по пояс. Песок при этом оставался неподвижен, Сергей поначалу обходил «глубокие» места стороной, но скоро заметил, что для него песок всюду одинаков. И там, где Кир проваливался по пояс, Сергей проходил, увязая едва по щиколотку.
– Эй, Петруха, – сказал Чесноков, догоняя спутника, – что это с тобой за чертовщина происходит?
Кир взглянул на него снизу вверх, махнул рукой:
– Условный нуль. Для меня песка как бы нет, поэтому я по вертикальному нулю сетки иду. Плоскость мало кто ровной оставляет: если так сделать, то каждый бархан будет объектом считаться, а это дороже встанет. Но можно сетке рельеф задать и сверху песком присыпать, внешний эффект тот же, а по цене – дешевле. И это хорошо, а то я вообще из-под земли головы не мог бы высунуть. Ходил бы, как подводная лодка… точнее, подземная… А почему ты меня Петрухой назвал?
– Да так, напомнил ты мне кой-кого. – Сергей усмехнулся. – Но что-то у вас не продумано с этим призраком. Неудобно же. А если дом? Многоэтажный? Как его отлаживать?
– Можно его исключить из «прозрачных» объектов. Можно свой ноль поднять и хоть по воздуху ходить. Много чего можно, только не мне – я ж говорил, у меня команды в консоли заблокированы. Поэтому идти я могу только по нулевой высоте. И в многоэтажные дома, если такие попадутся, зайти тоже не смогу, разве только если ты меня на себе занесешь.
– Вот как? – замечание Кира навело Сергея на интересную мысль. Он остановился, нацелил автомат в небо, сдвинул рычажок предохранителя и нажал на спусковой крючок. «Калашников» задергался, над барханами звучно прогремела длинная, патронов на пятнадцать, очередь. Кир недоуменно обернулся: