Влепив себе леща за невнимательность, я принялся колдовать с настройками объектов.
Проблема была в том, что в моей версии Юнити до сих пор не было 2D-объектов. Да вот так. Потому что задумывался движок в первую очередь для трехмерных проектов на ПК. А я делал мобилку. И более того, по старой памяти накидал плоскостей в проект, наивно полагая, что это два-дэшные плейны. Мде… По итогу после применения физики и коллайдеров каждая платформа на экране жрала до 20% мощности процессора! А когда появлялся монстр — процентная нагрузка стремилась и вовсе выйти за соточку.
— Какой же я дебил… — Самокритично признал я, отхлебывая кислючий Монстр. Вроде бы в моем прошлом мире он не был настолько кислым.
Еще час ушел на разборки с прожорливыми 3D-объектами. Для начала отключил всю физику на платформах, чтобы процессор не просчитывал местоположение каждой из них каждую миллисекунду. Затем вместо стандартных коллайдеров накрутил кастомные. Добавил скрипт реагирования на сближение объектов.
Проверки пересечений теперь работали только в момент критического приближения игрока к платформам. То есть те, что были далеко — считай просто декорации.
Нагрузка сразу же упала до удобоваримых 50%. Оптимизация врагов позволила срезать еще 15%. В итоге эмулятор старкфона смог выдать мне удобоваримые 40-60 кадров в секунду.
— Фух… Два часа на банальные правки багов. Это нездоровая фигня. Мне срочно нужен программист. — Выдохнул я, наворачивая круги, под шелестящим кленом.
Запара с ошибкой потребовала куда больше ресурсов для ее решение, чем я рассчитывал. Поэтому было принято решение выйти потрогать траву в ночном закрытом дворике, ключи к которому прилагались вместе с основными от квартиры.
Звук ночной дороги здесь был практически не слышен. В центре дворика стоял оставленный кем-то гриль, рядом пластиковые стулья. Те самые, которые знал весь мир. Их еще можно было складывать стопками.
Чуть поодаль — небольшая детская площадка. Песочница, в которой только что сделал свое дело рыжий кот. Деревянный конь на пружине от грузового амортизатора. Пластиковая горка, на вершине которой гордо покоился старый футбольный мяч.
На ум сразу пришла вышедшая почти перед самой моей кончиной японская игра. Где надо было бродить по луне в компании девчушки-андроида и дарить ей подарки. Создавая для нее тем самым настоящее счастливое детство. Хорошая задумка. Заставила многих задуматься о потомстве. А это, знаете ли, сильно — когда у тебя в стране рождаемость четверть ребенка на семью.
— Завести что ли семью потом как-нибудь? — Я задумчиво покачался на босых ступнях. Травка приятно холодила кожу, очищала мысли. — Разве что после достижения стабильности. Хах. А сейчас остается только арбайтен, арбайтен и еще раз арбайтен. — Усмехнулся я, втискивая ноги в старые тапки. Перерыв был окончен.
По итогу со всеми ошибками, тестами и оптимизацией я справился только к восходу. Пришлось побороться с корявым пакетом средств разработки от Старк Стора, который после обновления на стороне разрабов магазина никак не хотел видеть мост, по которому и должна была течь реклама в мою игру.
Потом на полноценных тестах снова полетела производительность. Пришлось повозиться и с пользовательским интерфейсом, который тоже жрал предостаточно мощности процессора. Отчасти после этого я понял, почему в этом мире так мало хороших игр. Все гении, кто в моем мире занимался разработкой решений для геймдева — тут, скорее всего, работали сейчас над военными технологиями. Оставив геймдев на попечение маркетологов и безруких управленцев. Там где деньги пахнут порохом — игрульки не в почете.
Дали мне жару и звуки. Из-за отсутствия удобоваримого аудио миксера пришлось писать специальный скрипт, ограничивающий поток звуков, чтобы одновременно могли звучать только два эффекта. В противном случае записанные на простенький игровой микрофон звуки сливались в хрипящую кашу.
— Буэээээ… — Изрыгнул я стон вперемешку с зевком. Поднялся со стула и тут же приземлился обратно, дожидаясь пока охреневший от такой тряски мозг вернет картинку на место. — Тихо-тихо. Щас умоемся и спатеньки. — Успокоил я сам себя.
Сохранил проект еще раз на всякий случай. Затем с удовольствием принял горячую ванну. В бессознанке добрел до дивана и на нем уже отрубился.
***
Проснулся я от робкого стука в дверь. За окном уже вечерело. Продрав залитые липким потом глаза, раскрыл моторолу. Часы показывали 15:49. Пять пропущенных будильников на 6:00.
Жопа. Столько времени потеряно впустую. Забыл переставить будильники. А на утренние организм естественно не среагировал.
— Ладно, будем считать это необходимой разгрузкой для техобслуживания организма. — Я зевнул, поднялся с кровати. На затекших ногах доковылял до окна. Скрипнула створка и прохладный ветерок тут же принялся разгонять тяжелую духоту помещения.
В дверь снова постучали.