» Фантастика » » Читать онлайн
Страница 89 из 163 Настройки

Закрыл плашку, и тут же полез в настройки. Машинально начал тыкать по нужным плашкам и галочкам. Платформа разработки — sOS. Архитектура ARMV6. Количество кадров — 30, база для мобильных игр. Под конец немного колдовства с настройками скриптов и отключением дебаг-лога — и можно переходить к следующему шагу. Разворачиванию папочной структуры проекта.

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

— Прикройся. — Буркнул я. — Отвлекаешь от рабочего процесса.

Не обращая внимания на глубокое и неподдельное возмущение девушки, вернулся к папкам. Арты, скрипты, префабы, сцены… Еще через десять минут в проекте была готовая структура. Вроде бы мелочь, а времени мне сэкономит уйму — не придется каждый раз тратить драгоценные минуты и нервы на поиски нужной папки.

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

— Так лучше? — Снова отвлекла меня Аврора.

— Пойдет. — Кивнул я, оценивая прикид. Короткие, даже слишком, шорты из обрезанных джинсов, черная футболка с надписью «Нью-Йорк Сити». Моя, кстати, новые пушистые тапочки. В целом, за такую «униформу» ее бы выгнали взашей из любой студии, не говоря уже про обычные конторы. Благо у меня был иной подход к организации работы в коллективе. Еще в прошлой жизни я усвоил, что лишние ограничения и регламенты лишь ухудшают работоспособность специалиста. Хочет она так работать, пусть работает, если это позволит ей выдавать высокий КПД. Главное, чтоб другим такие закидоны не мешали.

— Пой-де-е-ет. — Передразнила меня Аврора. — Ходишь тут ради него, красуешься, а он бухтит. Это все Выдра на тебя так влияет. То-то вы вчера с ним так в десны целовались. Хи-хи.

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

— Все-все, молчу. — Она замахала руками, уселась за рабочее место. — Сейчас последние анимации для робопазла доделаю и вся твоя. Только не надо на турецком.

Ощущая как от детской перепалки поднимается настроение — я вернулся к созданию скриптов. Функционал игры.

Для начала нужно было дать игроку блок, который он может уронить вниз. Для этого я за пятнадцать минут набросал стандартный «Блок Спавнер» и закинул в проект, чтобы проверить, как он будет работать. Если вообще будет — спонтанные ошибки движка никто не отменял. Как и мои микроинсульты левой ягодицы, при виде желтого значка в баг репорте.

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

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

// Пинг-понг по горизонталиfloat ping = ( * moveSpeed, moveRange * 2f) - moveRange; = new Vector3(ping, spawnY, 0f);

Запустил проверку заново — все сработало. Теперь блок опускался на пока еще невидимом тросе и медленно раскачивался с одинаковой амплитудой. Отлично, теперь у игроков будет бесконечный источник кубов.

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

Одна дополнительная строчка кода в скрипте спавнера — и теперь Юнити понимал, что при клике по экрану нужно отправлять куб в свободный полет. Если бы я делал игру на Джаве или C++, пришлось бы провозиться куда дольше.

Отлично, теперь у игроков была власть над судьбой кубика. Осталось только придать ей больше значимости. Разумеется — через физику объектов. Вот только добавлять сложное поведение каждому объекту в башне было бы фатальной ошибкой. Я еще на Дак Джампе усвоил, что нынешние мощности старкфонов не вывезут такого объема обработки данных.

Поэтому Риджид Бади я настроил только на активный блок. Теперь по нажатию на экран он летел вниз под разными углами — в зависимости от положения. Когда же блок падал на землю или на другой блок, срабатывала простая проверка:

isKinematic = true

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

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