Выбрать главу

Она подняла глаза и выжидающе напрягла слух, будто стук в дверь мог раздаться от одной лишь мысли о Матисе, но все, что ей удалось расслышать – это доносящееся из соседней комнаты тиканье часов. Учитывая потребность «Полуночи» в постоянном притоке свежих неигровых персонажей, которые уравновешивали внутриигровую смертность, к этому моменту он уже наверняка воплотился в одной из локаций. Она оставила свой адрес в полудюжине тайников, следуя заранее оговоренным критериям: любая общедоступная скамейка недалеко от рынка; любой насос; задняя правая скамья в любой церкви. Но время было позднее, и даже если Матису еще не довелось стать свидетелем одного-двух убийств, ему бы точно хватило ума не высовываться из дома, пока улицы были затянуты этим зловещим туманом.

Сагреда вернулась к своим выкладкам. Каждый прыжок требовал выполнения последовательности инструкций, которые отвязывали потенциальных путешественников от текущего окружения и помещали их в очередь, которая по задумке должна была содержать лишь свежескомпонованные композитные личности – лишенные каких-либо сюжетных воспоминаний и уже помеченные ярлыками новых обитателей целевого мира. Учитывая количество кода, участвующего в работе всей системы, любую машинную инструкцию можно было не только обнаружить где-нибудь в оперативной памяти, но и встретить в качестве последней команды той или иной подпрограммы. При нормальном обращении к подпрограмме вызывающий код помещал в стек соответствующий адрес возврата – гарантируя тем самым, что этот обходной путь в итоге приведет аккурат к следующей за вызовом инструкции. Но забив стек достаточным количеством поддельных адресов, можно было вынудить программу метаться по всей машине, выполняя нужные инструкции по одной за раз. Все равно что заставить пианиста, играющего сочинение Рахманинова, пробренчать “Где мой рассудок?”[1]без каких-либо изменений в партитуре – просто нацарапав последовательность стрелок, петляющих туда-сюда между нужными нотами.

Джингл уже проделал самую сложную часть работы, отыскав адреса, которые должны были предоставить доступ к каждой из инструкций – внутри кода, выполнявшегося в контексте страничных отображений, которые относились к обитателям «Полуночи на Бейкер-стрит». Вскоре Сагреде удалось добыть из этого списка всю необходимую информацию. Главная проблема заключалась в том, что ее навыки каллиграфии оставляли желать лучшего – какими бы экстравагантными хобби ни увлекались составляющие ее личности, c необходимостью окунать перо в чернильницу никто из них, очевидно, не сталкивался.

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

К полуночи она, наконец-то, получила удовлетворительный результат. Теперь главной проблемой было забросить этот пласт чисел в стек. Графические процессоры, отвечавшие за рендеринг игрового мира как для компов, так и для клиентов, были идентичны друг другу и имели один и тот же недостаток: при определенных условиях их можно было сбить с толку, заставив перенести часть буфера изображения в стек центрального процессора. Другими словами, хитрость заключалась в том, чтобы закодировать адреса в цветах некоего предмета, а затем сделать так, чтобы этот предмет отрендерился в определенном масштабе. Пейям научил своих подопечных на глаз распознавать объекты, из оттенков которых можно было составить произвольный 24-битный RGB-вектор. В мире “Востока”, с его скудным, постапокалиптическим ландшафтом из обрывов и пещер не было ни масляных красок, ни цветовых каталогов, однако со временем они нашли способ собрать необходимую палитру из разрозненных кусочков. Скрипты СлизьНета, породившие мир «Полуночи», может быть, и придали пародийно-историческому сеттингу исходного романа налет сепии, но аляповатые шляпы, шарфы, перчатки и ленты, выкрашенные в самые разные цвета, Сагреде доводилось видеть и здесь. Когда же дело доходило до масштабов, позволявших разместить цепочку из различных материалов в пределах одного пикселя, получение точной последовательности казалось куда менее обескураживающей задачей, чем могло показаться на первый взгляд.

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

вернуться

1

   1. Песня «Where is my mind?» группы Pixies, известная также своей кавер-версией в исполнении Placebo. Эта песня звучит в финале фильма «Бойцовский клуб».