Дневник разработчика №113 / Ил-2 Штурмовик: Великие сражения
Закрыть
меню
Дневник разработчика №113
12.11.2015
Дневник разработчика №113
Всем добрый день!
Сегодня мы пасскажем вам о нескольких новостях из разработки проекта "Ил-2 Штурмовик".
 
Первая новость - мы закончили работу над флайт-моделью двухместного истребителя Bf 110 E-2 и приступаем к работе над физикой самолета Ju 88 A-4. Разработка двухмоторных самолетов, имеющих усиленный состав приборного оборудования, дело не простое, но пока мы идем в плане и полагаем, что самолет будет готов в срок. Параллельно полным ходом продолжается работа по созданию 3D модели этого самолета, вот несколько WIP скриншотов из 3D редактора:
 

Вторая новость заключается в том, что в связи с работой по подготовке управляемых танков к бета-версии мы произвели важные уточнения в модели бронебойного воздействия снарядов и осколков, суть которых заключается в улучшении интерполяции расчетного повреждения между референсными точками данных. Тут нужно немного пояснить :-) Ввиду того, что достоверной общей модели бронепробития (которая бы позволяла из общих параметров снаряда рассчитать какой урон за какой броней при какой скорости и угле он нанесет) не существует то мы используем референсные данные по бронепробиваемости снарядов, дающих несколько контрольных точек на зависимости бронепробиваемости от скорости (иногда только одну, тогда остальные рассчитываются по формуле Де-Марра, которая при перерасчете бронепробиваемости для одного и того же снаряда при разных скоростях дает хороший результат). А вот между этими точками происходит интерполяция рассчитанных значений. Все это дополнительно связано с большим количеством пуль и оптимизацией, ведь одна пуля 12.7 попадая в самолет сзади может испытать несколько десятков столкновений с различными преградами и объектами в самолете. Так вот, в контрольных точках данных бронепробиваемость была довольно точной, а между были погрешности (в основном в большую сторону) ввиду довольно грубой интерполяции, обусловленной оптимизацией. Но мы нашли способ как не в ущерб производительности улучшить алгоритм двумерной интерполяции "скорость-бронепреграда-повреждения", что привело к устранению вышеозначенной неточности при промежуточных значениях. В качестве примера можем показать вам график двумерной интерполяции повреждений, использовавшийся для оценки качества работы алгоритма (раньше он был как ступенчатая пирамида фараона Джосера):
 
 
Третья о том, что мы долго наблюдали за дискуссией по вопросу "как далеко можно выглянуть из открытой кабины в полете" и пришли к выводу, что текущая реализация в общем то не особо устраивает сообщество. Учитывая то, что данный вопрос очень субъективный, связанный с тем пристегивается летчик или нет, насколько способен летчик терпеть как его голову обдувает мощный скоростной напор и при этом эффективно осматриваться, какую геометрию имеет кабина одновременно с тем, какую комплекцию имеет летчик, одета или нет на летчике маска и многое другое - мы решили сменить парадигму на более понятную. Если раньше было рассчитана аэродинамическая сила, действующая на голову пилота на определенной скорости, и ориентируясь на величину этой силы на разных скоростях мы "задавливали" голову назад в кабину (задавливание плавно увеличивалось на скоростях от 300 до 500 км/ч), то теперь алгоритм будет такой:
- На скоростях от 0 до 50 км/ч можно привстать в кабине и высунуться на пол-корпуса (максимальная величина такая же как была раньше - 50см в сторону и 20см вверх). Это для обзора на стоянке и рулении.
- На скоростях от 50 до 100 км/ч голова подтягивается к кабине, летчик как бы "пристегивается ремнями"
- На скоростях от 100 до 200 км/ч можно немного высунуться "посмотреть одним глазом" за пределы кабины
- На скоростях от 200 до 300 км/ч постепенно пропадает возможность высунуться из кабины вовсе. 
- На скоростях от 300 км/ч пределы перемещения головы в открытой кабине такие же как и в закрытой.
 
Ради интереса, мы провели натурный эксперимент насколько можно отклонить голову в сторону сидя на стуле ровно, не двигая телом ниже солнечного сплетения. Результат можно видеть на картинке снизу. Лично я сделал для себя три вывода:
1. Если кабина свободная и борта невысокие (аля 1-я мировая), то отклониться в сторону на 40см проблем вообще никаких
2. Если кабина тесная и борта подпирают плечи, то больше чем на 20см отклониться проблемно
3. Надо меньше есть (смотрите наложенный контур моей головы в масштабе по сравнению с головой нашего среднестатистического пилота) :-)
 
 
Ну и четвертая новость та, о которой нас давно просили рассказать. Управляемые танки. Тут я сделаю небольшой рассказ в нескольких частях.
 
Часть 1: Как появились танки.
Танки в нашем движке появились еще до начала проекта "Битва за Сталинград" как демонстрация возможностей нашего движка для симуляции различных технических средств. В рамках этой демонстрации была создана техно-демо на базе нашего движка, включающая развитую (тем более по тем временам) базу физики наземной техники. На этой базе в техно-демо тогда были выбраны современные танки для проверки совместимости движка с данным типом управляемых объектов. Видео из той техно-демо уже было в дневниках, но давайте мы запостим его еще раз, чтобы напомнить о чем идет речь:
 
 
Тогда мы для себя отметили, что потенциал данного направления в нашем движке очень большой, тогда так же мы исследовали возможность повышения детализации карты за счет сокращения ее размеров для "затачивании" ее под игру на наземной технике, и то же добились в этом большого успеха. В общем это был очень интересный опыт, из которого мы вынесли очень важные выводы о том, как мы можем использовать наш движок в дальнейшем. После этого случился проект "Битва за Сталинград" и результаты вышеописанной поисковой работы были отложены до завершения базовой части разработки проекта "Ил-2".
Некоторое время назад у нас появился небольшой свободный ресурс в области 3Д (это всегда очень тонкий баланс между загрузкой 3Д отдела и Инженерного отдела (Флайт Модели), и простой наиболее критичен именно в отделе Инженеров, поэтому "свободное время" если и случается, то именно в отделе 3D) и мы решили попробовать использовать эту возможность для опробования управляемой наземной техники в проекте "Ил-2 Штурмовик: Битва за Сталинград". Были созданы высоко-детальные 3Д модели танков T-34-76 выпуска Сталинградского Танкового Завода 1942 года и PzKpfw III Ausf. L, проведены некоторые доработки технологии (т.к. в показанном выше прототипе современных танков предполагался более казуальный режим управления) направленные на повышение реалистичности как модели движения танка, так и его дэмедж-модели. Сейчас танки находятся в бета-тестировании и, если все будет хорошо, выйдут в версии 1.105.
 
Часть 2: Реалистичность и управление.
Заложенная база позволяет реализовать танки в весьма реалистично. И на данном этапе все, что реализовано, настроено согласно референсам. Что можно отметить:
1. Настройка двигателя и ходовой. Силовая модель двигателя, трансмиссия, сцепление гусениц с поверхностью, интегрирование движения - эти вещи моделируются на том же уровне подробности и достоверности, что и в самолете, что позволяет получить весьма реалистичную картину движения танка, развиваемые скорости, разгон и торможение, поворот, преодолеваемый уклон.
2. Несмотря на подробность, управление движением реализовано через 4 кнопки (стрелки, можно намапить управление на джойстик), что достигается через специальную экспертную систему, которая сигналы с этого ограниченного количества контролов преобразует в воздействия на педали газа, сцепления, тормоза, рычагов бортовых фрикционов, переключатель передач (коробка получается "роботизированная" для игрока).
3. Из вооружения пока реализовано главное орудие и спаренный пулемет. Баллистика снарядов, характеристики бронепробиваемости, скорострельность - все это реализовано не менее подробно, чем на самолете. Из снарядов на данный момент доступны два: бронебойный сплошной и осколочно-фугасный.
4. Модель бронирования включает в себя все основные бронелисты с учетом углов подлета снарядов и разницей толщин всех бронелистов (или бронедеталей в случае литых конструкций).
5. Для того, что бы полностью уничтожить танк необходимо либо попасть (за броней) в боекомплект. Во всех остальных случаях его можно либо обездвижить (двигатель, гусеницы), либо убить экипаж, либо поцарапать.
6. Управлять танком может как один игрок (с места механика водителя и с места стрелка) так и два игрока (один - водитель, другой - стрелок).
7. Прицелы реализованы довольно реалистично, что включает реалистичное поле зрения прицела, аутентичную прицельную сетку с соблюдением угловых размеров основных элементов, управление поправками (вертикальная для обоих танков, горизонтальная для Т-34), коллиматорность (сведение в бесконченость). На данный момент есть прицел наводчика как минимально достаточный.
 
Часть 3: Цель выпуска танков в 1.105, перспектива.
Как можно заметить из предыдущей части, хотя реализованные элементы танка довольно реалистичны, тем не менее реализовано не все (хотя есть многое, чего нет у других свежих проектов с танками). Это объясняется тем, чего мы ждем от танков.
Мы реализовали основные вещи, что бы показать возможности игры на танках в нашем проекте пользователям и увидеть реакцию пользователей, выраженную, в первую очередь, в их заинтересованности. Мы демонстрируем наш подход (реалистичность в противовес балансу, совместное управление, более детальное отношение к реализации систем), это как разновидность "Кикстартера". Если коммюнити и новые игроки проявят значимый интерес к этой новой области игры, то мы вложимся в развитие и расширение этой области как в плане количества реализованных систем (включая их повреждения) и фич, так и в плане количества и разнообразия танков.