В прошлом видео показывал детали работы планировщика маршрутов. Кораблики уже тогда успешно достигали целей своих специальных операций, но делали это слишком топорно: телепортировались на целевую орбиту по приказу сервера, подлетали к телу с "неудобной" стороны, планирование расходилось с выполенением планов в логике и геометрии. Фиксу этих багов я посвятил последнее время (помимо прикольных фич).
• Честный расчет ретроградного захвата. Таргетинг проверял только радиус перицентра, но сторона "прилета" не различалась, из-за чего корабль выходил на орбиту с заниженной дельтой и вел себя странно (те самые телепорты).
• Рассинхрон клиента и сервера по части начальных позиций вылета. В некоторых сценариях круиз строился не от фактической позиции корабля на t0, а от дефолтной парковочной орбиты.
• Ошибки в определении топологии маршрута. В некоторых случаях (например перелет с орбиты одного крупного астероида на орбиту другого) ошибочно использовался кейс гелиоцентрического перелета, вместо полноценного трансфера (вылет из сферы влияния А -> гелиоцентрический перелет по дуге -> захват в сфере влияния Б).
И вот чем хочу поделиться: в ходе плейтеста выполнял разные маневры и наткнулся на потрясающую красоту (на видео).
Что там происходит в деталях:
1. Запланированный маршрут выполняется за два витка. Корабль не летит к цели напрямую, а меняет свою орбиту так, чтобы на втором обороте встретиться с ней. Поиск подобных многовитковых траекторий – фишечка алгоритма планировщика.
2. Корабль по мере движения к апоцентру орбиты (точка, где скорость минимальна) замедляется и входит в зону влияния Европы (хе-хе).
3. При пересечении границы сферы влияния происходит переключение доминирующего тела (видно по изменившейся орбите) и корабль выполняет маневр торможения в перицентре целевой орбиты, после чего полет считается выполненным.
Очень доволен проделанной работой!
Post #1045
146