Книги

Байт I. Ловушка для творца

22
18
20
22
24
26
28
30

Просто играть, не имея возможности что-либо менять под себя, быстро надоело. Часами сидеть, после удачного сэйва (сохранения), пытаясь пройти не поддающийся уровень, можно только при первом прохождении. Бегать же, сутками напролет по двухкомнатной хрущевке новомодной Counter-Strike, тысячу раз вынося мозги лучшим друзьям, играющим за противоположную команду? Что может быть скучнее? Я быстро понял - такое времяпровождение не для меня.

Уже в восьмом классе, играть в чужие игрушки я практически перестал, полностью утвердившись в желании создавать свои. Начал с программирования для чайников и первой моей любви - FMSLOGO, постепенно переступил порог вхождения в объектно-ориентированные, а далее высокоуровневые языки. Изредка, когда Серега приносил диск с новой игрой, мог засидеться, разбираясь в архитектуре, внутренних связях, тактике и прочих мелочах конкретного проекта, которые меня на тот момент интересовали. Да и просто, чтобы не выпадать из темы и не пропустить последних новинок.

Не все складывалось так быстро и радужно, как выглядит спустя годы, но я благодаря усидчивости и обнаружившейся склонности к математическому анализу справился. Единственной потерей, о которой даже и не знаю, грустить или нет, стало мое шило в известном месте, совершенно не совместимое с новым, полностью поглотившим меня увлечением, постепенно переросшим в образ жизни.

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

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

Приехавшие родители вызвали скорую и решили все вопросы, возникающие в таком случае. У меня от этих дней осталось ощущение печали и грусти. Светлой и тихой. Такой была бабушка. Я не перестаю любить ее до сих пор. Мама звала меня перебраться к ним, мол, вместе легче пережить утрату, но я отказался. Во-первых - не хотелось их стеснять, две комнаты на троих не так и много. А во-вторых, я уже чувствовал себя достаточно уверенно, чтобы начать самостоятельную жизнь, за последние годы, научившись решать все бытовые вопросы самостоятельно. Родители согласились с моим желанием.

Практически все свободное от школы время занимался дома, совершенствуясь в программировании, превратившись в настоящего затворника. Исключением стали занятия на тренажерах. Раз в два дня, не взирая на погоду и лень. Конечно же, не по собственному желанию, а благодаря жесткому неусыпному контролю Сергея. В этом вопросе он оставался непреклонен.

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

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

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

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

К объектно-ориентированным и структурным языкам, добавились полнофункциональные и некоторые мультипарадигмальные, описания СУБД (1) и ради интереса, несколько тьюринг - полных эзотерических языков программирования, коих всего я насчитал более пяти десятков, но большая часть из них мне не подходила. Кстати, именно благодаря ним и произошли все дальнейшие события.

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

Когда появлялся новый компилятор или движок, - пробовал адаптировать для своих целей. Подходил - хорошо, не получалось выжать ничего дельного - delete. Дальше, дальше! Снова не то! А вот это - то, что нужно! Времени постоянно не хватало, даже на сон.

Зато во «взрослый мир» вышел, имея свой собственный язык программирования, синтезирующий на разработанной мной основе все самое лучшее из других языков, получивший рабочее название «Сиселия», от CSL (Composed Solution Language), попросту «Сися». Основным его отличием от других языков стала возможность использования множественных распределенных вихревых потоков исполнения, что позволяло процессору производить операции без переключения и соответственно увеличить быстродействие только за счет программной части почти в четыре раза.

Также скопилось множество решений по мелочи, и два совершенно оригинальных игровых движка о которых, как, в общем-то, и о «Сисе», я никому не говорил, надо сказать не от излишней скрытости, а от предубеждения - заранее высказанное не сбудется. Да, и еще: апофеозом моего непрерывного затворничества стали наметки удобоваримого алгоритма искусственного интеллекта. Ни больше, не меньше. Но о нем расскажу немного позже.

Сергей, в последнюю пару месяцев до конца третьего курса, стал зависать в «Легендах Готики», самой продвинутой на нынешний момент ММОРПГ(2). По его просьбе, скучно ему самому, видите ли, мне пришлось заняться прокачкой мага - огневика. Плюшки у него классовые, оказались самыми вкусными. Спать пришлось меньше на те три часа в день, которые я посвящал развитию персонажа. А зачем, спрашивается? Если бы не нытье Сереги, я не стал бы тратить время и, скорее всего, кусал бы себя теперь за локти, но спасибо нам обоим - все эти «бы» не произошли и позволили случиться описываемым далее событиям.

Не зря я прокачивал своего Огнедуя, не зря терял неумолимо утекающие в прошлое минуты и часы, хотя частенько казалось, наоборот, до желания дать Сереге в его зеленый глаз. Особенно после бестолковой потери уровня от ваншота(З) какой-нибудь очередной неподъемной тупой твари или бесконечного тупого гринда(4) тупого дропа(5) с тупых мобов(б) тупые сотни тупых раз! Сколько можно было сделать полезного! Но...

Не зря.

За последний год учебы, нам не раз пришлось поучаствовать в составе университетской команды в групповых турнирах «Легенд». Соревнования проводились с неполным погружением и слабеньким эквипом (оборудование, снаряжение), если этим термином вообще можно назвать убогий виртшлем и простенькие перчатки. Состав команд стандартный для «Легенд»: танк, ДД - как правило, лучник, маг - специализация на выбор, хилер(7) и баффер(8). И наплевать, что под каждый данж(9) свой состав пати(Ю) необходим. Выкручивайтесь за счет тактики, нестандартных решений и правильной заблаговременной прокачки скиллов(11).