Механики

Каждая страница — одна механика игры: как она устроена простыми словами, какая физика и какие приближения за ней стоят, чего модель не умеет, какие варианты рассматривались и почему выбран этот. В конце страниц — ссылки на исходные документы и код на GitHub.

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

Крыло и полёт
Как считается полёт: поляра, масса пилота, крен и трапеция, разбег, сваливание, посадка; линейка из девяти реальных крыльев.
Ветер у склона
Ветер у склона, подветренная зона, ротор и волна: как устроено, какая физика лежит в основе и что модель пока не умеет.
Термики
Термики, болтанка, пыльные вихри и грозы: как устроен подъём воздуха от нагретой земли и какая физика за ним стоит.
Погода
Погода по температуре и суточный ход: как из дневного максимума и ветра выводится весь день целиком.
Облака и тени
Кучевые облака и их жизненный цикл, тень по форме облака, полутень — и как это связано с термиками под ними.
Рельеф и места
Встроенные места и полёт по координатам, источники высот и карт, дома/дороги/провода из OpenStreetMap, вода и лес — как рельеф строится и какие у него границы.
Трава, вода и ориентиры
Визуальные признаки ветра и воздуха для пилота: трава по ветру, рябь на воде, дым костра, ветроуказатели, ленточка — что сделано, а что нет.
Приборы и звук
Вариометр и его писк «из 90-х», ленточка на тросах трапеции, планшет-навигатор и звуки полёта — как считаются и синтезируются.
Боты и очередь старта
Другие пилоты в небе: как летают боты, откуда берутся имена и как устроена очередь на старт (в одиночной игре и в сети).
Сетевая игра
Летать вместе: зоны по коду, поиск «Рядом» в локальной сети, свой сервер на Go, ведущий, «Догнать» и детерминированный мир без пересылки атмосферы.
Модель воздуха в трёх масштабах
Одно физическое поле воздуха вместо набора формул: ветер обтекает рельеф, термики и болтанка берут место и силу из поля. Что умеет, с чем сверяли, где ошибается.