8 (800) 551-30-75
info@appfox.ru
Since 2008
8 (800) 551-30-75
Почта:
 info@appfox.ru
8 (800) 551-30-75 info@appfox.ru

В любой выбранной вами игре можно найти такой элемент как локация. Что такое локация? Это место разворачивания действий в игре. Это может быть далекий космос, безлюдная пустыня или же центр мегаполиса. В зависимости от этого локация будет содержать в себе элементы графической и смысловой нагрузки: здания, озера, реки и так далее. River Raft не является исключением, игра насыщена красивыми пейзажами самых разнообразных горных и пустынных рек.

В игре для реки представлен 3D художником ландшафт без воды, с видимым руслом.

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

Первая проблема с которой мы сталкиваемся – это как разместить «квадратную воду» на извилистом русле реки.

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

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

Сами цилиндрические пороги не имеют никакого функционала в плане физики.

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

У каждого участка воды было 2 тригера, входной на активацию воды , и выходной – на выключение функционала, то же самое касается и включение и выключения эффектов и буйков которые плавают на воде.

Этот принцип позволяет повысить фпс до 80-100 кадров в секунду, что делает игру очень даже играбельной.

Возврат к списку статей

ПОДПИШИТЕСЬ НА ОБНОВЛЕНИЯ

Осмысленное изучение обучающих материалов позволит профессионально повысить квалификацию. Подпишитесь на бесплатные советы и статьи по ключевым этапам разработки.

Ваше имя: * E-mail: * Ваш комментарий или вопрос: * - обязательные поля для заполнения ПОДПИСАТЬСЯ

photo of
Appfox
info@appfox.ru
улица Профсоюзная, дом 27, корпус 1
Москва , Москва , 117418 Россия
8 (800) 551-30-75

This hCard created with the hCard creator.

Онлайн заявка
Оставьте ваши контактные данные и наш консультант свяжется с вами
Ценовой диапазон
5 000 р
5 000 000 р
Нажимая на кнопку «Отправить», Вы даете согласие на обработку своих персональных данных