Після тріумфального викриття на Осінньому балу життя Ірини змінилося до невпізнання. Ліцейні інтриги та косі погляди залишилися в минулому — Аліна та Денис після гучного скандалу намагалися зайвий раз не з’являтися в коридорах, а шкільні телеграм-пабліки тепер обговорювали феноменальну зіграність пари «Мавки» та «Леона». Проте часу на святкування не було. Всеукраїнський кібертурнір «Кубок Героїв» наближався до своєї фінальної стадії, а стартап Артура опинився на межі катастрофи через критичну технічну помилку в коді їхньої власної мобільної гри.
У середу ввечері, коли над Києвом опустився густий листопадовий туман, а холодний вітер здував останні золоті листи з дерев Володимирської гірки, Артур запросив Іру до офісу свого стартапу.
Локація була по-справжньому атмосферною — невеликий орендований лофт на верхньому поверсі старої будівлі на Подолі, неподалік від Андріївського узвозу. Всередині панував типовий айтівський затишок: цегляні стіни, розвішані неонові вивіски, масивні столи з величезними моніторами, м'які пуфи-мішки на підлозі та незмінний аромат свіжозвареної кави й піци. На стінах висіли плакати з концепт-артами міфічних істот із українського фольклору — саме навколо них хлопці будували сюжет своєї майбутньої гри «Тіні пралісу».
Коли Іра переступила поріг, у лофті панувала напружена, майже панічна атмосфера. За столами сиділи двоє найкращих друзів Артура — Влад, головний аналітик та архітектор баз даних, та Олег, який відповідав за візуальні ефекти та дизайн рівнів. Обидва виглядали неймовірно втомленими, з темними колами під очима від хронічного недосипання.
— Пацани, знайомтеся, це Іра. Моя Мавка, — гордо представив дівчину Артур, знімаючи куртку.
Влад лише меланхолійно підняв руку, не відриваючи погляду від монітора, де беззупинно бігли рядки червоного тексту помилок. Олег важко зітхнув і відкинувся на спинку крісла.
— Привіт, Іро, вибач, що ми не дуже гостинні, — хрипким від утоми голосом сказав Влад. — У нас повний завал. Завтра вранці ми маємо презентувати альфа-версію нашої гри великому інвестору з кремнієвої долини. Якщо він погодиться на фінансування, наш стартап виживе. Але три години тому, після чергового комміту, весь серверний рушій просто «впав». Гра вилітає під час завантаження першої ж локації — Карпатського хребта. Ми перерили весь код, перевірили всі вказівники, пам’ять не протікає, але помилка з’являється знову і знову. Ми просто знищуємо проєкт власними руками.
Артур миттєво зблід і сів за свій робочий ноутбук.
— Як так? Ми ж тестували логіку взаємодії об’єктів учора, все працювало бездоганно! Олеге, ти міняв щось у тригерах сцени?
— Тільки додав нові текстури для анімації боса — Чугайстра, — розвів руками Олег. — Жодної логіки не чіпав.
Іра тихо підійшла ближче до столу Артура. Вона не була професійним програмістом, але її математичний розум, який допомагав їй миттєво прораховувати складні ігрові комбо в «Небесному Ордені», зараз увімкнувся на повну потужність. Вона почала вдивлятися в екран, де миготіли складні структури мови програмування.
— Артуре, а можна поглянути на алгоритм завантаження черги об’єктів у цій локації? — обережно запитала вона.
Влад скептично посміхнувся:
— Іро, тут професійні розробники не можуть розібратися вже кілька годин. Це не просто квест у грі виконати.
— Почекай, Владе, — зупинив його Артур, відкриваючи потрібний файл із кодом. — Іра бачить патерни там, де інші бачать хаос. Дивись, ось функція LoadLevelAssets().
Іра наблизилася до екрана, поправила окуляри й почала очима сканувати рядки тексту. Її погляд чіплявся за кожну дужку, за кожен логічний оператор. Раптом її палець упевнено вказав на невеличку ділянку коду всередині циклу обробки подій під час появи Чугайстра на мапі.
— Ось тут, — сказала вона. — Дивіться, ви запускаєте асинхронне завантаження тригеру штучного інтелекту боса паралельно з ініціалізацією його візуальної моделі. Але Чугайстер має унікальну механіку взаємодії з навколишніми деревами — він зчитує їхні координати під час появи. Оскільки Олег оновив текстури лісу і зробив їх важчими, дерева просто не встигають завантажитися в пам’ять до того, як скрипт штучного інтелекту намагається отримати їхні адреси. Виникає класична помилка «Race Condition» — стан гонитви. Скрипт звертається до порожнього місця в пам'яті, і система екстрено завершує роботу програми.
Влад та Олег на кілька секунд завмерли. У лофті запала така тиша, що було чути лише гудіння кулерів комп’ютерів. Артур швидко перевів погляд з Іри на код, і його очі розширилися від осяяння.
— Боже мій... — прошепотів Влад, хапаючись за голову. — Ну звісно! Ми шукали помилку в самій логіці ШІ, а це просто затримка завантаження ресурсів! Скрипт намагається вважати дані з об'єкта, якого ще фізично немає в геймплейній сцені!
Артур шалено застукав по клавіатурі, додаючи в рядок коду просту затримку та перевірку на повне завантаження оточення: if (Environment->IsLoaded()). Він скомпілював проєкт заново. Смужка завантаження повільно доповзла до 100%. Екран блимнув, і на моніторі запустилася красива, плавна тривимірна сцена: Карпатські гори, вкриті срібним туманом, де величний і деталізований Чугайстер спокійно робив свої перші кроки, не викликаючи жодного збою системи.
#610 в Молодіжна проза
#139 в Підліткова проза
#5496 в Любовні романи
#1186 в Короткий любовний роман
онлайн дружба, підлітки школа, любов випробування сильна героїня
Відредаговано: 09.10.2026