GIS AeroUA 2016
Картография в авиасимуляторе«Ил-2 Штурмовик»
Докладывает Обловатный Александр
oblalex.github.io/GIS-AeroUA-2016
Добрый день, меня зовут Александр.
Неделю назад я не ожидал оказаться сегодня здесь на сцене.
Об этом событии я узнал совершенно случайно в ФБ.
Для меня интересна тематика, а так же я был совершенно не в курсе того, что же происходит
в данной области в нашей стране.
Мне просто хотелось прийти посмотреть и послушать, но со мной связался Александр из
оргкомитета и начал задавать вопросы:
"А вы откуда?", "А чем вы занимаетесь?", "Почему ничего о себе не указали?".
Пришлось рассказать о своих интересах и увлечениях, в результате чего получил приглашение
выступить с докладом. Определенная связь с темой конференции есть, поэтому почему бы и нет?
За неделю хорошо подготовиться непросто, но я рад, что у меня есть такая возможность.
Эту возможность я использую для того, чтобы рассказать вам о картографии в
авиасимуляторе «Ил-2 Штурмовик».
Доклад у меня небольшой. Можно считать, что это мое первое публичное выступление.
Я надеюсь, что оно пройдет гладко :)
Адрес презентации внизу слайда: для тех, кому плохо видно или нужно понять, тратить время или нет.
О чем доклад?
— Коротко о себе.— Об авиасимуляторе, текущий статус и развитие.— Личный интерес.— Развитие сегодня.— Территории, представленные в симуляторе.— Процесс разработки карт.— Практическое применение навигационных карт.— Личный вклад.— Ожидания и планы на будущее.
Это было лирическое отступление, а сейчас давайте посмотрим, о чем же будет сам доклад.
Во-первых, я наконец представлюсь. Коротко.
Во-вторых, для тех, кто вдруг не в курсе, проведу небольшой экскурс об авиасимуляторе, его статусе и развитии.
В-третьих, расскажу о личных интересах и о том, чем я занимаюсь.
Далее последует небольшая информация о том, как происходит развитие сегодня.
Так же я расскажу о территориях, представленных в симуляторе.
В общих чертах расскажу о процессе разработки карт и о том, при чем тут GIS.
О том, как карты используются.
О том, чем же я занимаюсь именно в области карт.
Наконец, поделюсь своими ожиданиями и планами на будущее.
После доклада будет время для вопросов.
Но если вдруг почувствуете, что внутренние системы кричат SOS, и что
дальнейшее повествование будет для вас навсегда утрачено, то, конечно же,
не стесняйтесь и задавайте вопросы сразу.
О себе
— Инженер.— Черниговский политех (спец. комп. сис-мы и сети).— Магистратура (янв. 2014).— В отрасли ИТ с января 2013.— Сейчас разработчик ПО в SoftServe (аутсорс).— Занимаюсь web, backend, API, networking.— Интересуюсь почти всем.— Люблю пространство и созидание.
Итак, кто же я такой?
По образованию я инженер.
Учился в Черниговский политехе по специальности "специализированные компьютерные системымы и сети".
В январе 2014-го закончил магистратуру.
Работаю в отрасли ИТ с января 2013-го года.
Текущее место работы: аутсорсинговая компания SoftServe. О разработках компании в сфере,
представленной на конференции мне ничего не известно.
На этой конференции я никого не предстваляю и присутствую здесь чисто из личных соображений.
Занимаюсь веб-разработкой, бекендом, созданием API, сетевым программированием.
Любознательный и интересуюсь почти всем. Дизайн, философия, психология, наука, human–computer interaction.
Люблю пространство, люблю созидать, люблю вещи эстетические и с чувством прекрасного.
Если интересует более подробная информация, то после доклада.
Об авиасимуляторе
Думаю, каждый, кто как-то связан с авиацией, знает, что такое «Ил-2 Штурмовик».
А если не знает, то хотя бы слышал.
А если кто не слышал, то я коротко расскажу.
Речь идет о первом «Ил-2 Штурмовик», который «Забытые сражения» или в простонародье «старичок».
Об авиасимуляторе
— Дата выпуска: 18 ноября 2001.— Разработчики: «Maddox Games».— Издательства: «Ubisoft», «1С».— Последняя платная версия: 4.07 (22 декабря 2006 г.).— Преемники: команда энтузиастов «Daidalos Team».— Крайняя версия: 4.13.1 (7 апреля 2016 г.).— Спектр неофициальных модификаций.— 90.65% (GameRankings), 91/100 (metacritic).
// review aggregator
Это игра или как?
— Игра.— Пилотажный симулятор.— Спортивный симулятор.— Исторический симулятор.— Интерактивный симулятор 2-й МВ.— Командный тренажер.— Реалистичный многоцелевой авиасимулятор.
“На момент выхода это была самая высокотехнологичная игра в своём жанре и оставалась таковой длительное время.”
Википедия
// как вирпилы взлетали (2008/9)
Личный интерес
— Парсинг текста.— Обработка и анализ событий.— Сетевое программирование.— Асинхронное программирование.— Многопототочность, многопроцессорность.— Релиз-менеджмент.— Веб.— UI.— Реверс-инжиниринг.— Картография.— GIS.— Статистика.— Распознавание образов.— ИИ, машинное обучение.— Экономика.
//
Развитие сегодня
— Команда энтузиастов «Daidalos Team».— Новые патчи ~1 раз в год.— Локальная группа разработчиков и тестировщиков.— Сообщество.— Модификации.— Старые технологии, примитивный процесс.— Нашел проблему? Почини сам и докажи!
"Масонская ложа"
Сообщество и разработчкики — дяди взрослые. А процесс разработки, как у школьников (не в обиду).Территории в симуляторе
— 79 официальных локаций (вкл. вариации).— мин. 125 неофициальных локаций (вкл. вариации).— Средние площади: в пределах 100 тыс. км2.— Наибольшая площадь: 496 тыс. км2 (станд.).— Наибольшая площадь: 708 тыс. км2 (модиф.).— Теоретический максимум стороны: 3276.8 км (215/10).— Теоретический максимум площади: 10737 тыс. км2.
Переходим непосредственно к картографии.
Площади локаций
Площадь Укрианы: 603549 (де-юре)
Европа и Африка
Отсутствует Испания: нет самолетов того периода.
Европа и Африка
Карты "из коробки", небольшая неточность: Словакия и Балатон немного не на своих местах.
Дальний Восток
Бирма, Манчжурия, Халкин Гол, Япония, Сингапур и т.д.
Тихий океан
Япония, Окинава, Палау, Корралово море, Соломоновы острова, Новая Гвинея,
Новая Британия + Новая Гвинея, Палау, Чичи, Вейк, Мидвей, Гаваи и т.д.
Территория Украины
Так же есть Донбасс, Черкассы, Чёрное море.
Насколько точно и детально?
Киев в игре
Город ~10х10 км.
Сама карта 200х300 км.
Время 2-й МВ.
Киев в реальности
Время нынешнее.
Стадион на месте :)
Разработка: необходимые данные
— Загрузчик локации.— Мировой океан и суша.— Рельеф.— Текстуры.— Статический LOD (для старых или слабых ПК).— Навигационная карта.— Статические объекты.— Названия и тексты.
LOD (Level Of Detail) — уровни детализации.
Загрузчик локации
— Список навигационных карт.— Текстуры и материалы.— Тексты.— Статические объекты.— Камуфляж.— Месяц года.— Температура воздуха.— Атмосферное давление.
load.ini
Загрузчиков может быть несколько: свой для каждого варианта локации.
Список навигационных карт — в разном приближении (обычно до 3-х).Исходные данные
— SRTM 90m (Shuttle Radar Topography Mission) — осн. ист.— ASTER GDEM (Advanced Spaceborne Thermal Emission and Reflection Radiometer).— Местные топографические карты.— DCW (Digital Chart of the World).— GADM (Global Administrative Areas).
DCW — дороги, ж/д дороги, континентальные воды (реки, каналы, озера, водохранилища).
Пример: создание о-ва Манам
Весь учебник — минимум 4 дня.
"Лекція популярна. Мета — зацікавити, а не задовбати."
Обрисовать картину стратегически.
Манам — север Папуа-Новой Гвинеи.Инструментарий
— Текстовый редактор.— Графический редактор (GIMP / Photoshop).— Microdem.— Взломанный «Ил-2 Штурмовик» с утилитами.
Получение данных о рельефе
Из этих данных получаются все последующие данные и карты.
Подготовка данных о ландшафте
Таблица оттенков серого подогнана специально под игру.
Темнее — ниже, светлее — выше.
Синий — заполняет моря/океаны.
Определение береговой линии
Берем участок, подогнанный под конечный размер локации.
Приводим к единой цветовой палитре.
Определение береговой линии
Черный — море, белый — суша.
Сокращаем диапазон цветов до 2-х: черного и белого.
Размываем границы, чтобы избавиться от ступенчатости.
Сжатие информации о береговой линии
Ширина фикфированная: 1024 точки.
Блоки данных: 32х32 точки.
Карты большие, цветов всего 2, много пустого пространства.
Команда разработчиков создала свой метод сжатия информации о береговой линии.
Создание карты рельефа
Макс. высота: 4032 м.256 оттенков серого1 точка — 200 метров
Опять берем участок, подогнанный под конечный размер локации.
Опять приводим к единой цветовой палитре.
Соответствие высоты и оттенка серого нелинейное: равнины более гладкие, пики более остроконечные.Корректировка береговой линии
Эффективность 95%.
Необходима "доработка напильником".
С помощью спец. утилиты на основании карты рельефа и карты береговой
линии выполняется корректировка берегов.
Это делается для того, чтобы "притоптать" поверхность в случае наложения суши и воды.
После корректировки всё ещё необходима "доработка напильником".Корректировка береговой линии
На воде так же могут быть неровности.
Карта текстур
— Индексирование через оттенки серого.— Включает в себя дороги (+ ж/д), реки, леса, города.— Всего 256 возможных текстур.— Использовать можно 29: остальное для рельс и дорог.
Пример карты текстур
0 — земля, 31 — морская вода.
Весь покрытый зеленью
Большая зеленая глыба в океане.
В действительности всё не так...
Примеры текстур земли
Фототекстуры (в модах) режут глаза.
После ручной корректировки
Что-то похожее на правду.
Статический LOD (необязательно)
LOD в Ил-2 — цветная версия карты текстур. Используется для прорисовки
дальних дистанций при настройках графики, отличных от максимальных.
Сингуляризация текстуры
Берем текстуру, сжимаем её в 1 пиксел, получаем усредненное значение цвета.
Раскраска карты текстур
Каждый индекс текстуры заменяем на её усредненный цвет для получения конечного результата.
Создание аэродромов
Часто площадка, на которой необходимо разместить аэродром, оказывается неровной.
Поэтому её необходимо идеально выровнять, чтобы разместить ВПП.
Выравнивание поверхности
В игровом редакторе отмечаются точки начала и конца ВПП путем снижения их высоты
так, чтоб они выделялись на карте высот.
Далее берется значение высоты посередине будущей ВПП и применяется ко всей
близлежащей территории.
Добавление текстов
Тексты могут быть разных размеров, цветов и относиться к разным уровням приближения.
Тексты локализируются минимум в 2 языка: англ и рус. Ещё есть как минимум чешский.
Добавление статических объектов
Вышки на аэродромах, мосты, достопримечательности и узнаваемые объекты.
На изображении Генуэзская крепость, Судак.
Это ещё не конец
— Реки и сезонные ручьи, водохранилища и озера.— Дороги, шоссе, рельсы, их пересечения.— Мосты.— Населённые пункты.— Учёт карт, фотоснимков тех времён, архивы.
Создание навигационной карты
Вспомним слайд "Подготовка данных о ландшафте", где проводилась работа в Microdem.
Применяем таблицу цветов специально подогнанную под игру.
Добавляем тени.
Выбираем финальный участок, корректируем и подрисовываем.
Необходимо ещё нанести дороги, населенные пункты и проч.
Также можно использовать реальные карты при наличии и совпадении.Пример реальной навигац. карты
Крым, нет текстов, нет аэродромов, нет мостов, нет сетки.
Пример реальной карты линий берегов
Пример реальной карты высот
Пример реальной карты текстур
Четко видны дороги и шоссе.
Использование навигационных карт
Зачем нужны навигационные карты в игре? Конечно же для навигации.
Кем они используются? Конечно же всеми. Но особенно бомбардировщиками и штурмовиками.
В игре все как в реальности: перед вылетом пилот или командир группы составляет маршрут.
В основном для незаметного захода на цель и безопасного отступления. Во время полета остается
следовать маршруту и делать вычисления для корректировки пути.
Вычисления делаются в уме или с помощью инструментов. Некоторые пользуются настоящими
навигационными линейками для вычисления реальной скорости, учета ветра и т.д.
Большинство пользуется программными инструментами. Лично я в фоновом режиме разработываю
один программный инструмент. Но об этом позже.
Использование навигационных карт
Как же построить эффективный маршрут? Для этого необходимо знать расположение своих сил
и сил противника.
В отличии от ударной авиации, пилоты-истребители либо сопровождают удорные группы,
либо защищают стратегически важные объекты: склады, заводы, укреп. районы,
транспортные узлы, колонны и т.д. Для этого им так же необходимо знать расположение
наземных сил.
Так же необходимо умение и навык быстрой ориентации в пространстве. Навык полезный и его
можно использовать в реальной жизни.Использование карт высот
При бомбардировке с горизонтального полёта необходимо точно знать:
— Свою высоту над уровнем моря.
— Свою реальную скорость.
— Скорость движения цели.
— Расположение и направление движения цели.
— Высоту цели над уровнем моря.
— Температуру воздуха.
— Атмосферное давление.
— Направление и скорость ветра.
Самая большая проблема: высота цели над уровнем моря. Для этого нужно иметь возможность
как можно точнее узнать высоту поверхности земли в необходимой точке.
Для этого ползуются специальными инструментами.
Личный вклад
— Парсер журнала событий.— Парсер миссий.— Библиотека для работы с выделенным сервером.— Исследование опроса координат объектов в реальном времени.— Миникоммандер.— Инструмент получения реальных высот.— Картографический веб-сервис.— Вспомагательные утилиты.— Поиск и исследование неисправностей.
Карта проектов
Модульный подход.
Некоторые библиотеки используются в реальных проктах.
Картографический сервис
Как прототип более сельезного инструмента.
Улучшенная версия
Минимизация трафика, Проблема хостинга тайлов и доступа к точкам высот.
Видимый слой карты высот
Полезно для прокладки маршрутов по низким высотам с целью скрыться от противника.
Слой идеальных равнин
Нулевой перепад высот.
Полезно для тех, кто создает стратегические объекты и аэродромы.
Ещё лучше
Сетка и привязка к границам.
Ожидания и планы на будущее
— Создание современного коммандера.— Создание генератора миссий.— Создание картографического сервиса.— Создание картографической библиотеки.— Улучшение процесса разработки.— Исправление ошибок.— Развитие функционала.— Один в поле — не воин.— Политический аспект.— Профессиональный аспект.
Дать новое дыхание.
Конец
Спасибо за внимание!
1/69
GIS AeroUA 2016
Картография в авиасимуляторе«Ил-2 Штурмовик»
Докладывает Обловатный Александр
oblalex.github.io/GIS-AeroUA-2016
Добрый день, меня зовут Александр.
Неделю назад я не ожидал оказаться сегодня здесь на сцене.
Об этом событии я узнал совершенно случайно в ФБ.
Для меня интересна тематика, а так же я был совершенно не в курсе того, что же происходит
в данной области в нашей стране.
Мне просто хотелось прийти посмотреть и послушать, но со мной связался Александр из
оргкомитета и начал задавать вопросы:
"А вы откуда?", "А чем вы занимаетесь?", "Почему ничего о себе не указали?".
Пришлось рассказать о своих интересах и увлечениях, в результате чего получил приглашение
выступить с докладом. Определенная связь с темой конференции есть, поэтому почему бы и нет?
За неделю хорошо подготовиться непросто, но я рад, что у меня есть такая возможность.
Эту возможность я использую для того, чтобы рассказать вам о картографии в
авиасимуляторе «Ил-2 Штурмовик».
Доклад у меня небольшой. Можно считать, что это мое первое публичное выступление.
Я надеюсь, что оно пройдет гладко :)
Адрес презентации внизу слайда: для тех, кому плохо видно или нужно понять, тратить время или нет.