Додайте свій проект безкоштовно і почніть отримувати пропозиції від фрілансерів-виконавців вже через хвилини після публікації!
800 ₴

Модель уровня игры №3

проект завершено


Уровень

Пример с необходимыми ресурсами: https://drive.google.com/open?id=0BzhXx2OWB85XaFNiSXlmTjBnY28


Уровень должен иметь 3 слоя в Blender:

1-ый слой: стены и дроны

2-ой слой: bboxы

3-ий слой: вход и выход


Стены

Стены уровня состоят из сетки.

Screen+Shot+2017-01-03+at+10.31.00+AM.png

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


Текстура уровня - это текстурный атлас.

Возможно создание новой текстуры по аналогии с этой.

panels.jpg


Места где есть как-бы дорога, желательно делать текстурой Track, как показано на примере ниже:

Screen-Shot-2017-01-03-at-10.36.41-AM.jpg


BBOXы

BBOXы описывают collision model уровня и любых объектов на нем, через которые невозможно пролететь. Всё внутренне пространство уровня должны быть окружено bboxами, чтобы игрок не мог вылететь за пределы уровня. Все bboxы должны иметь внутренний объем, т.к. если стены bboxа будут тонкими, есть вероятность пролететь сквозь такую стенку.

Пример объема bboxов уровня:

Screen+Shot+2017-01-03+at+10.46.46+AM.png


bbox не требует четкой подгонки тех стенок, которые находятся за пределами блокируемой ими части уровня. Однако, те части bboxa, которые описывают стены, должны идти четко параллельно стене и возможно даже слегка с ней пересекаться, как на этом приемре:

Screen+Shot+2017-01-03+at+10.50.33+AM.png

Здесь видно z-fighting между стенкой и bboxом, что говорит о том, что они друг с другом пересекаются. Это идеальное размещение bboxa, т.к. при столкновении корабля или ракеты с такой стеной, будет правильная обратная связь и выглядеть столкновение будет реалистично.

Вход и выход

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

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


Анимация входа в уровень


У входа в уровень есть 3 мета-объекта, которые необходимы для анимации "покидания ангара":

Screen+Shot+2017-01-03+at+11.53.52+AM.png

ship_start - точка создания корабля, откуда он стартует движение

ship_departed - точка в которую движется корабль и при достижении которой камера начинает присоединение к кораблю

camera_start - точка в которой создается камера


Выход из уровня



У выхода тоже есть 3 мета-объекта:

Screen+Shot+2017-01-03+at+11.56.37+AM.png

camera_finish - точка в которую летит камера, отсоединившись от корабля

ship_gate_entrance - точка входа в тунель, в которую летит корабль

ship_finish - конечная точка остановки корабля


Боты/Дроны

Уровень должен создаваться с учётом последующего размещения дронов. Просто нужно учитывать, где они будут размещаться и как это повлияет на перемещения игрока по уровню.

Каждый бот описывается пирамодкой, большая стенка которой указывает место размещения бота, а меньшая направление, в котором бот повернут изначально.

blob

Низ большей стенки пирамиды указывает положение бота по высоте и для стоящих на полу ботов он должен касаться поверхности уровня.

Каждый бот описывается с помощью указания его параметров в названии пирамидки, например:

dron_rocket^m:dron_01^h:400^r:2000^.001

dron_plasma^m:plasma_dron^h:400^r:1500^.005

dron_flyer^m:flyer-x-11^h:50^r:2000^.001


Название пирамидки описывающей дрон всегда начинается с dron_

Далее следует один из 4-х поддерживаемых в данный момент типов дронов:

* rocket - двуствольный дрон, стреляет ракетами (пока есть только модель dron_01)

blob

* plasma - одноствольный дрон, стреляет шариками плазмы (пока есть только модель plasma_dron)

blob

* flyer - легкий, летающий, одноствольный дрон, стреляет ракетами (пока есть только модель flyer-x-11)

blob

* laser - одноствольный дрон, описывающий некоторую траекторию лучем лазера (пока есть только модель laser_dron)

blob

Каждый из этих типов указывает, как дрон будет себя вести. По сути, это название класса в программе, который реализует поведение подобного дрона.

Последующие элементы имени разделены с помощью символа ^ и означают:

m: - название 3D модели дрона

h: - количество hp (health points) дрона

r: - скорость перезарядки(reload)/частота выстрелов в миллисекнудах

Последним параметром имеющим вид .001 является порядковый номер дрона. Это число нужно исключительно для придания уникальности имени дрона и никак не влияет на его поведение в игре.


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

Скорость перезарядки тоже влияет на опасность дрона, т.к. чем чаще он совершает выстрел, тем выше вероятность, что он попадет в корабль игрока и уменьшит шансы игрока пройти уровень. rocket, plasma, flyer дроны после создания находятся в "спящем режиме" до тех пор, пока корабль игрока не попадает в их прямую видимость. Пока корабль игрока остается в прямой видимости дрона, дрон целится в него и постоянно стреляет с заданной частотой (параметр r: имени).

Відгук замовника про фрилансера Сергее П.

Якість
Професіоналізм
Вартість
Контактність
Терміни

Очередной успешно выполненный Сергеем проект. Надеюсь работать с ним снова!

Роман А. Роман Аллен | Персональний Персональний проект

Відгук фрілансера про замовника Романе Аллене

Оплата
Постановка задачі
Чіткість вимог
Контактність

Спасибо Роману за очередной проект. Как обычно, все стабильно и четко ) Буду рад повторному сотрудничеству

Сергей П. Сергей Подзигун | Персональний Персональний проект



  1.  2657 
    45   67   0

    3 дні800 ₴Переможець
    Сергей Подзигун перевірений 


    Україна Покровск (Красноармійськ) | 18 січня о 17:52 |

Замовник
Роман Аллен
Україна Одеса  36   0
Проект опублікований
18 січня о 17:52
2 перегляди
Поділитися