пятница, 29 июня 2012 г.

KSP: Вперёд и вверх


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

С каждым обновлением Kerbal Space Program приобретает всё больше. Я начал играть в версии 0.13, и ещё тогда конструктор ограничивался простыми деталями ракет и единственным экипажем. В 0.14 стало возможным запускать и отслеживать несколько кораблей, появились малые посадочные двигатели и опоры. В 0.15 Кербин обзавёлся вторым спутником, добавилось базовое авиастроение и траектории орбит стали отрисовываться с учётом выхода или захода в зоны тяготения космических тел.


Команда разработчиков игры постепенно растёт. Некоторые люди, например главный авиаконструктор C7Studios, получили приглашение присоединиться после плодотворной работы над модификациями. Вообще, моды это отдельная часть KSP, сравнимая по объёму с самой игрой. Новые детали, новые модели и текстуры - всё это заслуживает лишней заметки.

Вернёмся к готовящейся версии 0.16, отчётами о которой разработчики активно делятся на форуме. Маленький шаг для кербанавта, но огромный скачок для Kerbal Space Program. Да-да, они работают над выходами из корабля. В открытый космос, на зелёные холмы Кербина и тёмную сторону Муна.


Зелёные человечки будут ходить, бегать и прыгать в условиях разной силы тяжести. В невесомости перемещаться помогут ракетные ранцы. Значительная часть уже сделана, и сейчас основные усилия прикладываются для интеграции EVA (ExtraVehicular Activity) в игру.


Поначалу оно наверняка будет таким же упрощённым, как сейчас авиастроение. Но, как и авиастроение, это многократно расширит игровые возможности. Мы сможем пройтись по снегу на южном полюсе, мунному реголиту, метановым льдам Минмуса. Или остаться космосе наедине со звёздами. А с дальнейшим развитием, кто знает, когда-нибудь совершить прыжок с орбиты, как Ирия Гай на планету 5-4.

18 коммент.:

Анонимный комментирует...

>траектории орбит стали отрисовываться с учётом выхода или захода в зоны тяготения космических тел.

это не ошибка/опечатка?

Andre комментирует...

А где? :) Я поясню: задачу трёх тел игра не решает, и рассчитывает орбиту с учётом тяготения только одного, доминирующего тела. Раньше орбита показывалась только относительно зоны тяготения этого доминирующего тела. То есть на орбите Кербина нельзя было увидеть, как поведет себя корабль, пролетая мимо луны. Теперь, если орбита пересекает зону тяготения другого тела, её изменение показывается.

Анонимный комментирует...

Я просто проникся статьей Атрона и подумал, что KSP действительно дает знания о реальном мире.

Andre комментирует...

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

Анонимный комментирует...

И какие же такие суперкомпьютеры нужны для численного решения задачи трех тел?

Анонимный комментирует...

Впрочем, Антон уже об этом говорил

>Но разве плохо сделать проект, в котором люди будут думать, что что-то изучают?

Я просто реалии слишком близко к сердцу принимаю ;-)

Andre комментирует...

Выжимка из обсуждения проблемы трех тел на форуме KSP:
- It doesn't fit with the game's current architecture. The Unity engine is too limited.
- The current system, called the patched conics approximation, is more than adequate for our needs. It's so accurate, that's what NASA used to get to the Moon in real life.

Вокруг одного этого упрощения "реалистичности" уже переломано множество копий. Даже желания разработчиков не всегда совпадают с возможностями.

Анонимный комментирует...

>It doesn't fit with the game's current architecture.

Зачем было строить архитектуру таким образом?

>It's so accurate, that's what NASA used to get to the Moon in real life.

Это как раз к вопросу производительности. Да, в 60х годах было проще вычислять траекторию кусками аналитических решений. В сколько раз выросли с тех пор вычислительные мощности?

Avicorn комментирует...

Allian, мне кажется, что в данном вопросе перфекционизм излишен. Если уж НАСА использовало эту модель, и она оказалась достаточно точной для их целей, то зачем более точная модель в игре?
KSP и без того достаточно успешно утилизирует ресурсы процессора, особенно в случае ракет с большим количеством компонентов, особенно на старте. Т.е. на всем, что медленнее i3 - тормозит, и довольно заметно.
Что касается вычислительных мощностей, то на это могу возразить, что численное решение задачи трех тел находится за полиномиальное время. Для этого класса задач при фиксированной размерности стократный прирост производительности дает увеличение скорости решения в два (или меньше, уже не помню) раза.

Анонимный комментирует...

>Allian, мне кажется, что в данном вопросе перфекционизм излишен. Если уж НАСА использовало эту модель, и она оказалась достаточно точной для их целей, то зачем более точная модель в игре?

Это не перфекционизм, это использование более точного приближения, незначительно влияющее на процессорные ресурсы.

НАСА использовало эту модель для одной траектории. Для которой этот метод, видимо, хотя хорошо бы проверить, работает достаточно хорошо. Если игра претендует на возможность моделировать полеты по произвольной, выбранной игроком траектории, логично выбрать универсальную модель, учитывая, что такая модель существует и не требует много вычислительных ресурсов.

>KSP и без того достаточно успешно утилизирует ресурсы процессора, особенно в случае ракет с большим количеством компонентов, особенно на старте. Т.е. на всем, что медленнее i3 - тормозит, и довольно заметно.

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

>Что касается вычислительных мощностей, то на это могу возразить, что численное решение задачи трех тел находится за полиномиальное время. Для этого класса задач при фиксированной размерности стократный прирост производительности дает увеличение скорости решения в два (или меньше, уже не помню) раза.

Если я, не являясь дипломированным специалистом в области вычислительной математики, правильно понимаю, "находится за полиномиальное время" означает время решения есть полином от сложности задачи. Каким образом, в таком случае, увеличение производительности в n раз не увеличит скорость решения в такое же количество раз?

P.S. К вопросу о производительности, я делал такую программу в конце 90х для зачета по информатике.

Анонимный комментирует...

В динамике? С моделированием выработки топлива и изменением массы после сброса ступеней? С учетом формы ракеты и сопротивления различных слоев атмосферы? С моделированием случайных помех?
Simulink - профессиональный инжинерный пакет - для численного решения такой системы дифф. уравнений требовал в конце 90х очень хай-эндовой машины, само вычисление занимало минуты и часы в зависимости от точности. В этой игре перерасчет производится на каждое движение игрока, в реальном времени.
Имхо многовато для зачета. Скажем откровенно, даже для дипломной многовато.

Анонимный комментирует...

Да, я вчера поставил себе версию 0.13 и просидел за ней весь вечер и полночи. Успехи - поднял капсулу на высоту 110км и плюхнул в океан на противоположном конце планеты, никого не угробив :)
Что непонятно - какие критерии успешного завершения полета? Не просто вернуть экипаж живым, но еще и доставить в космический центр? Там есть какая-то статистика или запись рекордов?

Машина - актуальный MacBook Air 13", мощности хватает буквально впритык и нужно подсоединять к розетке.

Avicorn комментирует...

Никаких критериев нет, чистая песочница - как хочешь, так и извращаешься.

Анонимный комментирует...

>В динамике? С моделированием выработки топлива и изменением массы после сброса ступеней? С учетом формы ракеты и сопротивления различных слоев атмосферы? С моделированием случайных помех?

Я надеюсь, мы оба понимаем, что такое задача трех тел? Не знаю, что ты имеешь в виду под динамикой, но всего остального у меня не было. Какое отношение имеет моделирование этих фич к методу расчета траектории?

>С учетом формы ракеты и сопротивления различных слоев атмосферы?

Ты хочешь сказать, что траекторию KSP считает приближениями 70х годов, а вот воздушные потоки вокруг корабля рассчитывает CFD? Забавно.

Анонимный комментирует...

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

Вообще, у меня сложилось впечатление, что они пока особо не парились орбитальной частью полетов, вместо этого полировали атмосферную. Поэтому да, модели скорее всего разные. Косвенное свидетельство тому - ограничения на time warp в атмосфере и зоне сильного притяжения Кербина.
Но чтобы это понять, мне потребовалось вывести на орбиту свое первое убогое корыто, что я вчера ночью таки и сделал :)

Анонимный комментирует...

Сори за флуд. Гв2 вас уже не интересует?

rigeborod комментирует...

Доброго дня, уважаемый. Нельзя сказать, что гв2 не интересует, просто почти вся команда ММОзговеда уехала в поход в горы. :)

Анонимный комментирует...

Интересно, а много ли народу сейчас знают, кто такая Ирия Гай и зачем она прыгала с орбиты на планету 5-4? :)

Отправить комментарий