Обложка Гримуар Программиста

Гримуар Программиста

spiro

0% прочитано
Стандартный
spiro

Гримуар Программиста

Глава 1 Метро или финальный квест?!

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

Тупые проблемы.

Ах да, факт дня, Влад Константинов умер из-за одной строки кода, не той, что была на работе. Другой.

Которую он произнёс вслух, если бы он просто промолчал, всё закончилось бы иначе, но Влад был программистом.

А программисты иногда совершают одну и ту же ошибку: особенно те, которые появляются из-за людей.

Влад вышел из офисного здания и посмотрел на телефон.

22:21.

Он задержался на работе на два часа, из-за бага и он оказался в одной строке!

Он стоял посреди тротуара и смотрел на экран.

— Нет, серьёзно… — сказал Влад.

Он открыл файл ещё раз. Проверил строку. Потом закрыл глаза.

— Вы издеваетесь.

Ошибка была настолько простой, что становилось больно. Кто-то передал не тот параметр. Один символ! Один! Чёртов Символ.

Влад медленно вдохнул холодный вечерний воздух.

— Это даже не баг, — пробормотал он. — Это преступление против логики.

Прохожий рядом посмотрел на него с осторожностью. Влад уже начал разгоняться.

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

Прохожий ускорил шаг, Влад этого даже не заметил. Он уже шёл к метро. Мысли всё ещё кипели.

— Когда-нибудь я напишу книгу. "Сто способов испортить код и жизнь коллегам".

Он подошёл к входу в метро, остановился.

Перед лестницей стояла компания. Четыре парня. Одна девушка. Пиво. Электронные сигареты. Громкий смех.

Идеально перекрытый проход. Влад посмотрел на них. Отлично. Финальный босс уровня.

Он подошёл ближе.

— Извините, можно пройти?

Высокий парень повернулся.

— Чё?

— Можно пройти.

Парень ухмыльнулся.

— Пацаны… он пройти хочет.

Компания заржала, один из них сделал шаг в сторону. И тут же снова перекрыл проход. Влад медленно выдохнул. Сегодня он: два часа дебажил чужой код, нашёл баг в одной строке, хотел просто доехать домой. И теперь перед ним стояли четыре зависших процесса.

Он попробовал спокойно.

— Ребят, вы сейчас блокируете проход.

— Очкарик, ты умный что ли?

— Айтишник!

— Профессор!

Смех. Влад закрыл глаза на секунду. Ладно. Раз уж система багнута… будем дебажить. Он снял очки, протер их, убрал в карман, вместо них появилась пачка сигарет и зажигалка. Так, медленно закуривает и пронзительный взгляд, Влад давай это бомжи стартовой локации, просто спалим мозги.

— Смотрите, объясняю на простом примере, — сказал Влад спокойно.

Компания притихла.

— Есть система. Называется "общество".

Он кивнул на лестницу.

— Есть поток людей.

Он указал на них.

— И есть вы.

Пауза.

— Блокирующий процесс.

Один из парней нахмурился.

— Чё?

Влад продолжил невозмутимо:

— Причём зависший.

Он слегка наклонил голову.

— Вы сейчас ведёте себя как NPC с зацикленным диалогом.

Компания начала злиться.

— Ты борзый?

Влад пожал плечами.

— Нет.

— Я просто провожу диагностику вашей логики.

Он указал на высокого парня.

— А ты ещё и пытаешься включить альфа-режим перед девушкой.

Он задумчиво посмотрел на него.

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

Девушка фыркнула. Парень покраснел. Влад вздохнул.

— Ладно. Квест "пройти в метро" слишком сложный для этой группы. Ах, да, если коротко, то тебя широта ебет?! А, хуй моржовый!

Он шагнул вперед, просто прошел между ними.Компания зависла. На секунду. Этого хватило.

Влад уже спускался по лестнице, как услышал за спиной:

— ЭЙ!

Он не обернулся.

Фатальная ошибка.

Удар обрушился на его голову.

Мир сломался. Лестница исчезла. сигарета вылетела. Голоса стали глухими.

— Бля…

— Ты чё сделал?!

— Валим!

Темнота накрывала сознание. Последняя мысль была ироничной. Умереть из-за багнутых NPC…

Система, ты серьёзно?

…

…

Влад Константинов открыл глаза, сразу понял одну вещь. Это не больница.

Потолок над ним был деревянным, старым и абсолютно чужим.

А через секунду Влад заметил ещё одну проблему, когда по привычке хотел почесать переносицу, медленно рука поднялась к лицу, стоп! Его руки… не были его руками.

Глава 2 Чужая комната

Влад открыл глаза. Первое, что он понял — это не больница. Потолок был деревянным, настоящим. Тёмные балки, старые доски, следы времени.

Влад несколько секунд смотрел вверх, пытаясь понять, что происходит.

Потом медленно повернул голову. Комната была маленькой. Кровать, стол, стул, шкаф, окно.

Он сел.

— Ладно…

Голос прозвучал странно. Чуть выше. Чуть моложе. Влад нахмурился и посмотрел на руки, замер. Это были не его руки. Тонкие. Молодые. Без старых шрамов и без следов клавиатурной жизни.

Он медленно вдохнул.

— Так.

Влад выпрямился и начал говорить вслух — привычка программиста разбирать проблему шаг за шагом.

— Диагностика ситуации.

Он поднял палец.

— Пункт первый.

Осмотрел комнату.

— Это не моя квартира.

Второй палец.

— Пункт второй.

Посмотрел на руки.

— Это не моё тело.

Третий палец.

— Пункт третий.

Он задумался.

— Я либо сошёл с ума…

Его взгляд остановился на столе, на нем лежала книга, толстая, в кожаном переплёте, с металлическими уголками.

Влад подошёл и открыл её. Первые страницы были заполнены аккуратными записями. Символы. Схемы. Странные формулы. Он нахмурился. Перевернул страницу. Ещё символы. Ещё схемы.

Влад наклонился ближе.

— Подождите…

Он перевернул ещё страницу и ещё. Глаза постепенно расширялись.

— Нет…

Он начал листать быстрее.

— Нет‑нет‑нет.

Влад остановился на одной странице. Круг. Линии. Стрелки. Подписи. Он моргнул. Потом снова посмотрел.

И вдруг тихо сказал:

— Это же структура.

Следующая страница.

— Огненная искра.

Следующая.

— Огненный шар.

Следующая.

— Огненный поток.

Влад медленно закрыл книгу.

— Да вы издеваетесь…

Он снова открыл её.

— Это же одна функция.

Влад ткнул пальцем в запись.

— Вы просто меняете силу.

Перелистнул.

— Или форму.

Ещё страницу.

— Или направление.

Он откинулся на спинку стула.

— Вопрос.

Пауза.

— Почему вы каждый раз пишете новое заклинание?

Влад снова посмотрел на книгу.

— Вы что… никогда не слышали о параметрах?

Он взял перо, открыл пустую страницу, начал писать:

spell fire

mana = 1

shape = point

effect = ignite

direction = forward

Влад поднял руку. Закрыл глаза. Тёплая энергия появилась внутри тела. Он направил её к ладони. Щёлк. В воздухе вспыхнула искра.

Влад медленно улыбнулся.

— Работает.

Он посмотрел на страницу, на ладонь.

— Интересно…

И вдруг его голову пронзила резкая боль. Перед глазами вспыхнули чужие воспоминания. Тёмный кабинет. Человек в чёрном плаще. Холодный голос.

— Ты понимаешь, мальчик… долги нужно отдавать.

Влад резко открыл глаза. Сердце билось быстрее. Чужие воспоминания медленно складывались в картину. Академия. Студенты. И… долг. Большой долг. И в этот момент… в дверь постучали.

***

Я тут понял одну вещь, что текст до этого был ужасным, динамика вообще из окна вышла, поэтому начну потихоньку работать над этим, переделал главы со 2 по 4, но если, вам не сильно понравится, пока что еще могу вернуть прошлый вариант текста.

Всем спасибо за интерес к моему произведению, надеюсь еще спишемся)

Глава 3 Неожиданные гости

Нежданные гости

Стук в дверь повторился.

Тук.

Тук.

Тук.

Не вежливый стук. Не стук соседа.

Это был стук из категории: «мы знаем, что ты дома, открывай по‑хорошему».

Влад сидел за столом, глядя на страницу с заклинанием, и медленно выдохнул.

— Отлично… — пробормотал он. — Только я разобрался с туториалом, как уже пришёл первый рейд‑босс.

Стук стал сильнее.

— Открывай, щенок! Мы знаем, что ты внутри!

Влад поднялся со стула.

В голове всё ещё крутились чужие воспоминания. Они были обрывками, словно повреждённые файлы: академия… экзамены… какой‑то маг… и долг. Большой долг.

— Ну конечно… — вздохнул Влад. — Новый персонаж, а стартовый квест уже в минусе по золоту.

Стук снова ударил в дверь.

— Последний раз говорю!

— Да иду я, иду… — буркнул Влад.

Он открыл дверь.

На пороге стояли двое.

Первый — огромный мужик с шрамом через всё лицо.

Второй — худой, как багнутый NPC, с холодными глазами.

Оба были в тёмных плащах.

Влад мысленно присвистнул.

— О, класс. Местные коллекторы. DLC «Выбивание долгов».

Шрамированный шагнул вперёд.

— Константинов.

Не вопрос. Утверждение.

— Ну допустим, — сказал Влад.

— Ты знаешь, кому должен?

Влад сделал вид, что задумался.

— Сейчас… дай секунду… база данных подгружается.

Худой прищурился.

— Ты дерзишь.

— Нет, — спокойно ответил Влад. — Я дебажу ситуацию.

Шрамированный схватил его за воротник и впечатал в стену.

— Слушай внимательно, студент.

Влад посмотрел на него спокойно.

— Окей. Слушаю патч‑ноты.

— Ты должен Кастору Чёрному.

Имя прозвучало тяжело, голове вспыхнуло новое воспоминание. Тёмный кабинет. Мужчина в чёрном плаще. Холодные глаза.

— Долги нужно отдавать.

Влад поморщился.

— А, вот откуда этот баг в памяти.

Шрамированный нахмурился.

— Что?

— Ничего. Просто кеш обновился.

Худой шагнул ближе.

— У тебя осталось две недели.

Влад моргнул.

— Сколько?

— Четырнадцать дней.

Шрамированный усмехнулся.

— Потом долг станет… проблемой.

Влад вздохнул.

— Ребят, а можно вопрос?

Они переглянулись.

— Ну?

— А проценты у вас какие? Или это полный хардкор без сейвов?

Шрамированный ударил кулаком в стену рядом с головой Влада.

Доски треснули.

— Ты вообще понимаешь ситуацию?

Влад посмотрел на дыру в стене.

— Да. Вы НПС из фракции «криминал». У меня стартовый дебафф «долг». И если я не нафармлю золото — меня удалят из сервера.

Худой тихо сказал:

— Мне кажется, он тронулся.

— Не, — сказал Влад. — Просто интерфейс мира странный.

Шрамированный отпустил его.

— Две недели.

Он ткнул пальцем в грудь Влада.

— Потом придём снова.

Они развернулись и ушли, дверь закрылась. Влад несколько секунд стоял молча. Медленно сел на стул.

— Итак… — сказал он. — Новый мир. Магия. Академия.

Он посмотрел на гримуар.

— И таймер на четырнадцать дней.

Пауза.

— Отлично.

Он взял перо.

— Значит будем фармить экспу.

Глава 4 Академия и нубы

Академия Архимага Астериона выглядела как финальная локация в RPG. Башни, арки, огромные каменные стены.

Студенты в мантиях ходили по двору, обсуждая заклинания.

Влад стоял у ворот и смотрел на всё это.

— Окей… — сказал он. — Значит это главный хаб.

Он сделал шаг внутрь. И сразу понял одну вещь.

Здесь все играли в магию так, будто это синглплеер. Без оптимизации. Без логики. Без нормальной системы.

— Боже… — пробормотал Влад. — Это как смотреть на паб в Доте.

Он прошёл по коридору. Студенты тренировались. Один парень пытался создать огненный шар. Он повторял одно и то же движение снова и снова. Заклинание разваливалось.

— Мда… — сказал Влад. — Билд собран через рандом.

Парень услышал это.

— Что?

— Ничего. Просто у тебя мана течёт как память в утекшем процессе.

Парень моргнул.

— Что?

— Забей.

Влад прошёл дальше.

В аудитории профессор писал формулы на доске.

— Сегодня мы разберём структуру заклинания огня.

Влад сел на заднюю парту.

Профессор продолжал:

— Заклинание «Огненный шар» строится через традиционную схему…

Он начал рисовать круги и линии.

Влад смотрел на доску и медленно улыбался.

— О нет…

Профессор повернулся.

— У вас вопрос?

— Скорее комментарий.

— Говорите.

Влад встал.

— А вы пробовали…

Он взял мел.

И написал:

spell fire mana = X shape = sphere direction = forward

Аудитория замолчала.

— Если параметризовать структуру, — продолжил Влад, — можно не писать отдельное заклинание для каждой вариации.

Профессор смотрел на доску.

— Это…

Он замолчал.

— Это упрощённая запись.

— Это нормальная архитектура, — сказал Влад. — Сейчас у вас спагетти‑магия.

Кто‑то в аудитории засмеялся.

Аристократ на первом ряду холодно сказал:

— Простолюдин учит магов магии?

Влад посмотрел на него.

— Бро, ты сейчас выглядишь как игрок, который купил дорогой скин и думает, что апнул ранг.

Класс захохотал. Аристократ покраснел.

Профессор медленно сказал:

— Интересно…

Он посмотрел на доску.

— Очень интересно.

Влад сел обратно.

— Ну всё… — пробормотал он. — Кажется я только что сломал баланс игры.

Глава 5 Лаборатория багов

Утро в академии началось с шума.

Студенты стекались в лабораторный корпус, как игроки на новый сервер после вайпа. Кто‑то зевал, кто‑то листал гримуары, кто‑то уже пытался колдовать прямо в коридоре. Запах маны смешивался с запахом сгоревшей ткани и копоти.

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

— Так… — пробормотал он. — Если это академия магии, то я ожидал хотя бы минимальный уровень скилла. Пока выглядит как паб в доте на 1к ММР.

Он остановился у двери.

На табличке было написано:

Лаборатория стихийной магии.

— Окей… значит это местный тренировочный сервер.

Он толкнул дверь.

Внутри стояли длинные столы, тренировочные манекены и кристаллы маны. Студенты пытались создать огненные шары. Кто‑то произносил длинные формулы, кто‑то рисовал символы в воздухе.

У одного шар взорвался прямо в руке.

— ААА!

Другой случайно подпалил рукав мантии.

Третий создал огонь… который просто исчез.

Влад медленно покачал головой.

— Это даже не паб… это обучение ботов.

Он сел за стол и открыл гримуар.

На странице была его схема:

spell fire mana = X shape = sphere direction = forward

— Ладно… добавим оптимизацию.

Он дописал:

stability = 0.8 mana_efficiency = 0.9

— Если магия — это код, значит её можно оптимизировать.

Он поднял руку.

Мана потекла к ладони.

Щелчок.

Огненный шар появился идеально ровным.

Он вылетел вперёд и ударил в манекен.

Манекен загорелся.

В лаборатории стало тихо.

— Чё… — сказал кто‑то.

— Как ты это сделал?

Влад пожал плечами.

— Нормальный билд.

Он объяснил нескольким студентам принцип параметров заклинания. Те слушали так, будто он показывал секретный чит‑код.

Профессор Лорен подошёл ближе.

— Константинов. Повторите.

Влад снова поднял руку.

spell fire mana = 4 shape = sphere direction = forward stability = 0.9

Шар появился мгновенно.

Манекен разлетелся на куски.

Профессор долго смотрел на доску.

— После занятия останьтесь.

Глава 6 Дуэль

Новость о конфликте распространилась по академии быстрее, чем патч‑ноты на новом сезоне.

Когда Влад пришёл во двор, там уже стояла толпа студентов.

Тот самый аристократ стоял посреди площадки.

Высокий. Уверенный. И очень злой.

— Константинов!

Влад подошёл, зевая.

— О, привет. Ты всё ещё злишься из‑за вчерашнего фейла?

Толпа тихо засмеялась.

— Дуэль, — холодно сказал аристократ.

— PvP так PvP.

Они заняли позиции.

Сигнал.

Аристократ атаковал первым.

— Огненный шар!

Заклинание вылетело быстро.

Но структура была нестабильной.

Влад посмотрел на него.

— Бро… у тебя билд кривой.

Он поднял руку.

spell fire mana = 4 shape = sphere direction = forward stability = 0.9 mana_efficiency = 0.95

Его шар был меньше, но быстрее.

Он столкнулся с заклинанием противника и разорвал его.

Взрыв отбросил аристократа назад.

Толпа ахнула.

Но бой продолжился.

Аристократ попытался создать огненную струю.

Влад легко уклонился.

— Серьёзно? Это всё твои спеллы?

Он снова запустил шар.

На этот раз прямо в землю рядом с противником.

Взрыв поднял пыль.

Когда она рассеялась, аристократ стоял на колене.

Влад опустил руку.

— И это всё?

Аристократ побледнел.

— Невозможно…

— Нет, — сказал Влад. — Это называется оптимизация билда.

Толпа студентов загудела.

— Он выиграл…

— Первокурсник победил…

Влад почесал затылок.

— Так… кажется я только что апнул уровень.

Глава 7 Первый серьезный баг

Ночью Влад снова сидел в комнате.

Перед ним лежал гримуар.

— Так… если магия это код… значит можно написать нормальную систему.

Он начал писать новую структуру.

spell fire mana = X shape = dynamic direction = target stability = auto

— Универсальное заклинание.

Он поднял руку.

Мана потекла сильнее.

Заклинание активировалось.

Огонь появился.

Но не исчез.

Пламя закрутилось в воздухе.

Комната начала нагреваться.

— Эм… — сказал Влад.

Огонь начал расти.

— Кажется… я написал бесконечный цикл.

Пламя ударило в потолок.

Стекло в окне треснуло.

Комната начала заполняться жаром.

— Отлично… первый серьёзный баг.

Он быстро переписал структуру.

limit = true stability = 1

Пламя резко погасло.

Комната наполнилась дымом.

Влад сел на стул.

— Окей…

Он посмотрел на гримуар.

— Если я продолжу это дебажить…

Он усмехнулся.

— …я реально могу сломать всю магию этого мира.

Спасибо за чтение

Вернуться к книге