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