Ходят слухи, что современные игровые симуляторы типа Microsoft Flight Simulator (MSFS) реально используются в обучении будущих пилотов. Честно говоря, в такие слухи не очень верится: это как изучать боевые искусства по Mortal Kombat. Но потрясающий реализм современных игр как бы намекает, что всякое возможно…
Если дать игроку штурвал, шлем VR, кресло на гидравлической платформе с наклонами и тряской (5D), то это будет похоже на пилотирование настоящего самолёта. Есть реальные истории, как после многолетней игры на MSFS люди спокойно сдают на лицензию пилота, потому что в одномоторнике им известны все элементы управления.
А на гражданском лайнере полёт вообще бóльшую часть времени на автопилоте.
Вообще, первым в мире симулятором для лётчиков была бочка Антуанетта, сконструированная в 1910 году французской компанией Antoinette. До Первой мировой войны это был один из немногих авиаконструкторов в мире, который делал передовые монопланы. Симулятор выглядел так:
Бочка Антуанетта с пилотом во время тренировки:
▍ Игровые авиасимуляторы
Первый игровой авиасимулятор появился ещё до распространения видеоигр. В 1970-м году Sega выпустила электромеханическую игру Jet Rocket в виде игрового автомата:
Симулятор боевых полётов перемещал «самолёт» по 3D-ландшафту на экране и стрелял ракетами по целям, которые взрывались при попадании, типа как советский «Морской бой», только круче. Для имитации ночного вида использовалась специальная лента с флуоресцентной краской.
Игра Jet Rocket получилась впечатляющей и была даже признана лучшей на какой-то игровой выставке.
Но с появлением игровых приставок и персональных компьютеров авиасимуляторы стали отдельным жанром: Interceptor (1975), Microsoft Flight Simulator (1982), Midnight Landing (1987), Top Landing (1988), Air Inferno (1990), Steel Talons (1991).
90-е годы можно назвать расцветом жанра. В аваисимуляторы играли чуть ли не все, у кого была приставка или ПК, не то что жалкие 15 млн человек, как сейчас у MSFS. Некоторые из классических игр до сих пор распространяются через Steam, как Stunt Island (1992).
Здесь и выше — Stunt Island
На наших просторах играли в Comanche и Tornado.
Помню, когда к нам изредка заезжал в гости дядя, уволенный из ВВС СССР за хулиганство с табельным оружием, то он рубился в Tornado целыми днями. Видимо, считал её достаточно реалистичной, даже после ЧВВАУЛ и десятков вылетов на МиГ-21.
Даже под Linux в 90-е был авиасимулятор, он назывался SABRE Fighter Plane Simulator, сейчас на Github можно найти его исходники.
SABRE Fighter Plane Simulator
▍ Авиасимулятор в два килобайта
В качестве необычного примера можно посмотреть на авиасимулятор IOCCC Flight Simulator, который получил награду «Best of Show» на Международном конкурсе минималистичного обфусцированного кода на С (International Obfuscated C Code Contest) в 1998 году. По условиям, каждая программа должна иметь размер не более 1536 байт (не считая пробелы, табы и прочие служебные символы), в сумме обычно получается не более двух килобайт.
IOCCC Flight Simulator запускается на Unix-подобных системах при наличии X Windows. Управление стрелками, Enter возвращает штурвал в начальное положение. На экране отображается скорость в узлах, указатель курса (азимут) и высота в футах (высотомер). Игра эмулирует реальный 3D-мир и легкомоторный самолёт типа Piper Cherokee («Пайпер PA-28 Чероки»).
Запуск:
cat horizon.sc pittsburgh.sc | ./banks
Здесь
banks
— это название программы, а horizon.sc
и pittsburgh.sc
— два файла сценариев.Скачать файлы можно со страницы конкурса:
-
Makefile
-
banks.c
-
banks.hint
-
banks.orig.c
-
bb.sc
-
horizon.sc
-
mountains.sc
-
pittsburgh.sc
-
pyramids.sc
- river.sc
Весь код симулятора:
#include <math.h>
#include <sys/time.h>
#include <X11/Xlib.h>
#include <X11/keysym.h>
double L ,o ,P
,_=dt,T,Z,D=1,d,
s[999],E,h= 8,I,
J,K,w[999],M,m,O
,n[999],j=33e-3,i=
1E3,r,t, u,v ,W,S=
74.5,l=221,X=7.26,
a,B,A=32.2,c, F,H;
int N,q, C, y,p,U;
Window z; char f[52]
; GC k; main(){ Display*e=
XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
*D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
XEvent z; XNextEvent(e ,&z);
++*((N=XLookupKeysym
(&z.xkey,0))-IT?
N-LT? UP-N?& E:&
J:& u: &h); --*(
DN -N? N-DT ?N==
RT?&u: & W:&h:&J
); } m=15*F/l;
c+=(I=M/ l,l*H
+I*M+a*X)*_; H
=A*r+v*X-F*l+(
E=.1+X*4.9/l,t
=T*m/32-I*T/24
)/S; K=F*M+(
h* 1e4/l-(T+
E*5*T*E)/3e2
)/S-X*d-B*A;
a=2.63 /l*d;
X+=( d*l-T/S
*(.19*E +a
*.64+J/1e3
)-M* v +A*
Z)*_; l +=
K *_; W=d;
sprintf(f,
"%5d %3d"
"%7d",p =l
/1.7,(C=9E3+
O*57.3)%0550,(int)i); d+=T*(.45-14/l*
X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
*I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
179*v)/2312; select(p=0,0,0,0,&G); v-=(
W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
)/107e2)*_; D=cos(o); E=sin(o); } }
Обратите внимание, что программа не компилируется просто так, а только с конкретными параметрами компилятора. Под Linux можно использовать такой скрипт:
#! /bin/sh
cc banks.c -o banks -DIT=XK_Page_Up -DDT=XK_Page_Down \
-DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \
-DCS=XK_Return -Ddt=0.02 -lm -lX11 -L/usr/X11R6/lib
Вместе с программой распространяются несколько файлов декораций с расширением
.sc
:-
horizon.sc — просто горизонт, этот сценарий логично загружать в большинстве случаев.
-
mountains.sc — альтернативный горизонт, немного более гористый.
-
pittsburgh.sc — пейзаж центра Питтсбурга (на скриншоте вверху). Изначально центр города расположен справа.
-
bb.sc — простая полоса препятствий. Попробуйте пролететь над зданиями и под мостами.
-
pyramids.sc — полёт над гробницами древних фараонов в вымышленном египетском пейзаже.
- river.sc — текущая река с неба.
Cимулятор считывает декорации из стандартного ввода при запуске. Можно ввести несколько файлов декораций, если общее количество строк не превышает 1000. Пример:
cat horizon.sc pittsburgh.sc | ./banks
cat mountains.sc bb.sc | ./banks
cat mountains.sc river.sc pyramids.sc | ./banks
Как вариант, есть порт этого симулятора на JavaScript, который запускается в браузере.
Формат декораций очень прост. Это список 3D-координат, а симулятор просто рисует отрезки линий от точки к точке, как указано в файле.
0 0 0
используется для завершения серии последовательных отрезков. Таким образом, можно без проблем написать собственные декорации, например, со своим городом (вот декорации Амстердама, а симулятор портирован на ClojureScript).Вообще, на конкурсе маленьких демо-программ можно найти много интересного. Например, вот демка менее 4 КБ, которая генерирует разнообразные пейзажи с разрешением FullHD 1080p (исходный код, бинарник, ниже кадр из презентации автора этой демки, Иниго Килеса):
Даже программка из двух килобайт довольно корректно передаёт физику самолёта и окружающего мира, пытается копировать реальный пейзаж настоящего города. Что уж тут говорить о современных играх. За тридцать лет разработка игр проделала большой путь, а игры стали гораздо реалистичнее.
▍ Современные симуляторы
Первая версия Microsoft Flight Simulator вышла в 1982 году, вторая — в 1984-м, 3.0 стала доступна в 1988 году, а 4.0 — в 1989-м. То есть эта старая и традиционная тема для Microsoft, но в 21 веке случился некоторый затык. Очередной MSFS вышел 2006 году, а затем в течение четырнадцати лет Microsoft практически ничего не делала. В это время выросли в настоящую красоту другие симуляторы: например, X-Plane от Laminar Research и Prepar3D от Laminar Research.
Но самым популярным авиасимулятором остаётся MSFS, последняя версия Microsoft Flight Simulator 2024 вышла в ноябре 2024 года.
В Microsoft Flight Simulator 2024 добавили полёты на воздушном шаре
По минимальным системным требованиям видно, что это не рядовая игра: 16 ГБ оперативной памяти, 50 ГБ места на диске (это ещё нормально, потому что прошлая версия требовала 150 ГБ), видеокарта минимум Radeon RX 5700 или GeForce GTX 970 и т. д. Это только самый необходимый минимум, а «идеальные» характеристики — 64 ГБ RAM и топовая видеокарта RTX 4080/RX 7900 XT.
Стоимость игры начинается от $70, количество самолётов и аэропортов зависит от версии, самая дорогая обойдётся аж в $200.
Выход MSFS 2024 нельзя назвать удачным: в первое время игроки жаловались на слишком долгое время загрузки (до часа). Разработчики пояснили, что проблема связана с огромным объёмом трафика: большое количество игроков перегрузило инфраструктуру Microsoft. Ошибкой компании было раздавать файлы с собственных серверов, а не через Steam.
MSFS 2024 в значительной степени работает через облачные сервисы для раздачи файлов об игровом мире, поэтому размер изначального дистрибутива уменьшился с сотен гигабайт до 29 ГБ (например, на торрентах раздача пиратской версии MSFS 2020 занимает 261,74 ГБ, а 2024-я ещё не вышла).
F/A-18e Super Hornet в Гранд-Каньоне (Колорадо), Microsoft Flight Simulator
Интересно, что похожие проблемы были во время запуска предыдущей версии игры MSFS 2020. Всё это указывает не столько на неграмотность разработчиков, сколько на сверхпопулярность этой конкретной игры. У неё огромная армия фанатов. Они ждали игру четыре года. Понятно, что сразу ринулись её опробовать в первый же день после выхода.
MSFS 2024 — крайне реалистичный симулятор, в нём доступны полёты над любыми частями Земли, которая значительно приближена к реальности: улучшенные цифровые карты рельефа, вручную детально отрисованы 150 больших и 2000 малых аэропортов (для одномоторных самолётов), 10 000 вертолётных площадок, 2000 достопримечательностей и 900 нефтяных платформ.
Нефтяная платформа в MSFS
Они оцифровали даже трещины на асфальте в реальных аэропортах (тут Белград):
Всё остальное сгенерировано: 40 тыс. аэропортов, 80 тыс. вертолётных площадок, 1,5 млрд зданий и почти 3 трлн деревьев на Земле. Над игрой трудилось 800 разработчиков в течение четырёх лет.
В каком-то смысле эта «цифровая копия Земли» стала ответом на неудачный запуск Метавселенной в исполнении Meta, Oculus, Google, Apple и прочих. Первая даже сменила название ради Метавселенной, но ничего не вышло. Сейчас хайп вокруг VR у населения полностью вытеснился хайпом вокруг ИИ.
А может, Метавселенную сделают на цифровой копии Земли, почему нет? Если такая копия почти готова и занимает всего 500 ГБ. Нужно добавить туда только планировку всех домов и квартир, а потом и цифровые копии всех жителей.
В авиасимуляторе на самолёте или воздушном шаре можно облететь весь мир, не вставая из-за компьютера. Конечно, сгенерированные ландшафты не полностью соответствуют реальности: см. глюки с взлетевшими реками и непроходимыми мостами как стена (на КДПВ) в MFS 2020.
В общем, реально оцифрованные места выглядят хорошо, а сгенерированные — не очень.
Река в Сарагосе поднялась над землёй примерно на 100 метров
Ещё одним нововведением Microsoft Flight Simulator 2024 стала возможность приземлиться практически в любом месте. Разработчики говорят, что полетать можно даже в таких местах, куда вас никогда не пустят на настоящем самолёте (они приводят в пример Казахстан). Или в городе над крышами домов. Или по дну Гранд-Каньона, куда в реальности вы никогда не спуститесь:
Несмотря на громкий выход Microsoft Flight Simulator 2024, не стоит забывать и о других отличных авиасимуляторах, таких как упомянутые выше X-Plane и Prepar3D.
X-Plane
По слухам, в Москве (и некоторых других городах) в торговых центрах стоят авиатренажёры на гидравлической платформе, почти все сделанные на X-Plane или Prepar3D.
Здесь и выше — Prepar3D
Есть ещё симулятор AeroflyFS Flight Simulator с продвинутой поддержкой VR-оборудования и другие.
▍ Боевые симуляторы
Из боевых симуляторов можно назвать «ИЛ-2 Штурмовик» (1C Game Studios, Кипр), Digital Combat Simulator (Eagle Dynamics, г. Дубна, РФ, игра бесплатна 14 дней каждые 6 месяцев), хотя это весьма специфическая индустрия.
Digital Combat Simulator
Летать или сражаться — немного разный опыт, да и задачи разные.
Digital Combat Simulator: истребитель F16C, миссия в Сирии
В конце упомянем ещё один симулятор FlightGear. Он может не такой продвинутый, зато полностью бесплатный, есть версии под Linux, FreeBSD, MacOS и Windows, размер дистрибутива 1,8 ГБ. Отдельно доступна для скачивания подробная карта Земли (86 ГБ в архиве). Как вариант, можно летать с подгрузкой карт в реальном времени из интернета через сервис TerraSync.
FlightGear
Интересно, что современные авиасимуляторы из-за своей реалистичности можно использовать даже в туристических или экскурсионных целях. Например, изучить лесной/горный маршрут, по которому хотите пройти, посмотреть на пляжи и гостиницу, куда жена просится в отпуск, или полетать над родным городом, куда нельзя возвращаться ещё много лет, и т. д.
© 2024 ООО «МТ ФИНАНС»
Telegram-канал со скидками, розыгрышами призов и новостями IT ?
Комментарии (13)
nehrung
30.12.2024 13:29Лично у меня первым авиасимулятором была леталка для самодельного "Спектрума", названия сейчас уже не вспомню. В её 32-х килобайтах умещался самый минимум приборной панели и местных предметов на земле, и тем не менее взлетать/садиться она смогла меня научить.
Ну, а следующим был не упомянутый в статье, и тем не менее всем знакомый "F-19" на XT.
Ivan22
30.12.2024 13:29F-19 это был просто бомба. Тысячи часов в него налетал. На авианосец садился сам ночью легко
vvm13xx
30.12.2024 13:29"Ходят слухи, что современные игровые симуляторы типа Microsoft Flight Simulator (MSFS) реально используются в обучении будущих пилотов. Честно говоря, в такие слухи не очень верится: это как изучать боевые искусства по Mortal Kombat."
ED сообщала, что её симулятор (используется|использовался) в ряде учебных заведений для военных пилотов. И ничего странного или удивительного в этом нет. Любой симулятор что-то симулирует, а что-то нет. Например, на "игровом" симуляторе DCS вы не испытаете перегрузок (ведь вы сидите в кресле перед комьютером), но можете комфортно изучить приборную панель, чеклист при взлёте, построение маршрута, использование того или иного оружия, порядок действий при отказах того или иного оборудования и многое, многое другое. Как раз, мне кажется, DCS больше подходит для военных академий, чем для обычных игроков.Сам DCS бесплатен, а платны почти все (но не все) модули к нему. Платные модули можно брать бесплатно напопробовать на ограниченное время.
Можно было бы много понаписать про другое, но у меня даже здоровья не хватит. В целом лучше было бы, чтобы подобные материалы писали те люди, что реально в теме. Видно, что автор проделал работу, но он так и остался не в теме.
DrGluck07
30.12.2024 13:29Очередной пост "типа про авиасимы", но всё равно реклама MSFS2024. Ну спасибо хотя бы за упоминание X-Plane и Prepar-3D, видимо мои предыдущие комменты были услышаны.
Коммерческие тренажеры, которые стоят в торговых центрах, действительно сделаны на X-Plane, Prepar-3D и иногда MFS X. Но обычно там авиасим используется для визуализации картинки на дисплее, а лётную модель считают специальные программы.
JediPhilosopher
30.12.2024 13:29а лётную модель считают специальные программы.
Вот интересно было бы статью про это почитать. Может, кто-нибудь напишет? Как устроен полетный симулятор изнутри? Так что может моделировать и физику полета, и работу систем, и модульность поддерживает и плагины всякие. Технические думаю очень непростая задача.
DrGluck07
30.12.2024 13:29А кто будет писать? Они же все берегут секреты друг от друга. Я об этих внутренностях немного знаю, потому что общаюсь с одним из разработчиков. Но не представляю зачем бы ему писать об этом пост.
Мы с ним познакомились на почве того, что он хотел приспособить мой плагин для X-Plane в своих тренажерах. Потом выяснилось, что это не совсем получится и проще всё переписать специально для него. Переписывать, конечно, никто не стал ). Зато потом другие парни применили плагин в тренажере Ту-154. Они меня давно зовут приехать, но всё не получается. Поэтому я немного знаю как оно там выглядит и работает.
HardWrMan
30.12.2024 13:29Но обычно там авиасим используется для визуализации картинки на дисплее, а лётную модель считают специальные программы.
Я помню, что ещё в 2022 году комьюнити писало геометрическую и математическую модели вертолёта Робинсон для MSFS2020. При этом геометрию надо было совать как обычно в папку комьюнити, а матмодель запускать рядом. Причём, было 2 модели: упрощенно-аркадная и почти реалистичная. На вторую даже профи иногда ворчали. А потом в 2023 бум! И эти модели входят в большое обновление как штатная модель.
DrGluck07
30.12.2024 13:29Я правильно понимаю, что в MSFS лётная модель считается самим самолётом? Т.е. каждый автор должен запрограммировать поведение самолёта во всех условиях?
HardWrMan
30.12.2024 13:29Я не знаю внутреннюю кухню MSFS. Я простой пользователь, который иногда использует модели комьюнити. Ну и поделился наблюдениями, ибо из-за этого обновления мне пришлось чистить весь кеш игры и перекачивать заново все модели (у меня делюкс и папка занимает более 210 гигов - это в отличии от заявленных 150 в статье).
HardWrMan
30.12.2024 13:29Проконсультировался со знакомым, что глубже в теме.
С Робинсоном так было, потому что ещё не были физики роторов, потоков воздуха у земли. Теперь это есть в симуляторе, но у каждого аппарата своя летная модель.
Не то, чтобы во всех условиях запрограммировать, теперь надо свойства элементов модели описать. Например: твердая, гибкая, вращается, что обдувает.
Т.е., если в симе нет симуляции нужного элемента для модели, то она нужна внешняя, а если есть, то можно юзать её. И, насколько я понял, симуляции там блочные, а финальную ты набираешь как конфигурацию. Например, для одномоторного самолёта ты берёшь симуляцию одного мотора с пропеллером, 2 симуляции крыльев, там ещё набираешь всякие закрылки и прочие элементы, описываешь их взаимосвязь друг с другом и оно летит. Если самолёт на 4 турбореактива - то соответствующие блоки меняются на необходимые. И теперь там есть роторы, а значит практически все VTOLы (не уверен за реактивные, надо будет уточнить).
geher
Не вижу тут знакового боевого симулятора Retaliator.
На простеньких древних ХТ, под DOS, вообще без всяких 3D видеокарт он выдавал вполне играбельную картинку и достаточно высокий FPS, занимал дискету, позволял рубиться двум игрокам по последовательному порту.