Elite Games - Свобода среди звезд!
.
  » Фуксия и Селедочка |
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Search | Conference rules | Album | Register | Pilots list | Profile | Log in to check your private messages | Log in

   Page 1 of 3
Go to page: 1, 2, 3  Next | All pages
Поиск в этой теме:
Канал Orbiter: «Фуксия и Селедочка»
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Прежде всего - о названии. Нет, к замечательной книжке оно не имеет никакого отношения Улыбка. Но его происхождение ив самом деле требует пространного пояснения...

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

В результате и появился этот ряд аддонов. При этом каждый аддон выходил лишь единожды, в версии 1.0, и более не дополнялся и не правился. Отчасти из-за неплохой надежности - не было серьезных глюков, которые пришлось бы патчить, - но главное, просто не хотелось возвращаться назад, когда впереди так много интересного... Да еще все старые наработки легко переходят в новые проекты, так что их начинаешь не с нуля, и идут они все быстрее...

...Увы, на Востоке лафа кончилась. Экстенсивный метод наращивания кода на этом сложном проекте исчерпал себя совершенно. К концу разработки, когда вроде бы еще даже оставалось лишнее время, добавлять функциональность стало нереально. Потратишь полчаса на добавление кода, потом два дня тестируешь, пытаешься лихорадочно перебрать все нежелательные побочные эффекты, и в итоге откатываешь все "как было" - слишком рискованно... Восток достиг некоего порога, потолка сложности "того поколения" кода.

В общем, чтобы двигаться дальше, надо было уже написанный код хорошенько перебрать. Ну а тут естественным образом возникло желание не просто переписать Восток, или Первые Семерки, а собрать все свои сериальные аддоны под общей крышей, под общим кодом. Они же все нанизаны на одну и ту же Семерку, один и тот же стартовый стол, дублирование кода в них - колоссальное! А два самых старых проекта еще и архаичные, "ниже пояса" - код пятилетней давности если не больше, их так и так надо пересаживать на современную реализацию нижних блоков! Да еще мы теперь можем спокойно взять тайм-аут, не подгоняться сроками юбилея, не торопиться и писать код без лишней спешки.

Так и возник проект "переработки и консолидации" уже наработанных "пионерских" проектов "в один флакон". Ну и наиболее подходящее название для него тоже "выпрыгнуло" само собой - "Первые в космосе". Сокращение, от него, правда, оказалось совершенно невразумительным - ну что это за ПвК, в самом деле... Но зато когда название прозвучало по-английски, First in Space, и немедленно сократилось до FiS - уж тут никому (из русскоязычных пользователей, понятно) не придется напоминать, что такое ФиС в применении к космической теме! Улыбка Ну, значит, так тому и быть - лучше "кодового" названия все равно даже нарочно не придумать! Улыбка

Вот так, пока объяснял происхождение названия, ненавязчиво объяснил и его основную суть... Улыбка

Подозреваю, что могу вызвать этим описанием некоторое разочарование. В самом деле, с "внешней", видимой стороны, ничего принципиально нового новый проект не добавляет. Практически все изменения - внутренние, невидимые обычному пользователю. В программном коде да в файлах конфигурации. Ну, ничего не поделаешь, этап такой: прежде чем лезть в новое, в самом деле надо изрядно подтянуть тылы. Впрочем, не все так безнадежно: даже "в экстерьере" интересные и заметные новинки все-таки будут присутствовать. Те же Молния и Восток-Луна уже изначально очень выиграют от красивого старта. Зато в коде изменения вообще революционные, направленные в первую очередь на то, чтобы плодить новые изделия очень легко и быстро, по сути в конвейерном режиме. Когда эта "платформа разработки" примет задуманный вид, слепить в ней целиковый сложный аддон - такой как, скажем, Луна-9 - можно будет ориентировочно месяца за три-четыре вместо обычного года. Да и создание виртуальных кабин класса востоковской, надеюсь, можно будет упростить и ускорить - хотя в них и так уже больше времени занимает не собственное кодирование аддона - а расследование с нужной степенью подробности, как оно там в оригинале было устроено и работало...

Поскольку в одном посте всех деталей и мелочей не описать, я намереваюсь постепенно, в нескольких постах, рассказать, что именно там уже есть интересного. Но скачать и попробовать стабильную альфу можно уже сейчас. ПРЕДУПРЕЖДАЮ - для того чтобы запускать сценарии, альфу нужно развернуть в ту же конфигурации с прежние аддоны: Восток, Первые Семерки, Союз Thorton-a и Восток-Луну. Да и молнию тоже не помешает - пока она еще не используется, но будет обязательно, и довольно скоро. Дело в том, что в "Ракете Фис" я не добавляю новых мешей, звуков или текстур (кроме парочки уникальных), а прямо ссылаюсь на файлы из прежних аддонов. Это позволяет изрядно снизить объем пакета на этапе разработки.

Скачать можно здесь: http://members.shaw.ca/atil8/Orbiter/ Документации в пакете нет пока вовсе. Имеется кучка тестовых сценариев, воспроизводящих несколько знакомых полетов, и оригинальный демо-сценарий. Функциональность некоторых изделий еще не вполне доведена до изначальной, это все ж таки альфа. Если нет совсем уж сильного зуда, то можно вообще ничего пока не начать, а просто подождать, пока я в следующих постах углублюсь в детали новинок.
    Posted: 21:16 24-03-2012   
mc_
 360 EGP


Рейтинг канала: 1(7)
: 34
Posts: 2395

Joined: 09 Apr 2010
То есть будет общий код для всего, что летало на Р-7 и её потомках, начиная от Спутника-1 и заканчивая Союзом?
    Posted: 21:43 24-03-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Да, точно так. Может даже не только на Р-7. Скажем если делать Луну-16 (а почему бы ее не сделать?) то для нее понадобится "Протон". А его перетащить в общий код - работы будет на недельку (ну на две если со стартовым столом). Там же все готовое уже есть.
    Posted: 22:31 24-03-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006


Теперь добавлю одну картинку и комментарий к ней. Это график "сложности", "объемности" тех модулей, что уже преобразованы в новую модель, выраженные в количестве строк кода, до и после конвертации. График весьма интересный, его можно комментировать хоть полчаса без перерыву.

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

Уменьшение достигается двумя путями. Первое - максимально полный перенос _любой_ мало-мальски "общей" функциональности в промежуточный подкласс VESSELM. Второй - удаление из кода рутинных, неинтересных, "нетворческих" фрагментов инициализаций всевозможных ресурсов (меши, текстуры, частицы, двигатели, аттачменты, камеры, и т.д. и т.п.) Во многих старых модулях такие инициализации занимали иногда десятки страниц-экранов, заваливая "интересный" код. В новой модели все эти ресурсы вынесены в конфиги, а за их загрузку и инициализацию отвечает все тот же VESSELM.

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

Интересна, например, динамика первых трех спутников. Они потеряли от половины до двух третей своего прежнего кода, при том что их функциональность довольно примитивна. Забавно: раньше 3-й спутник был сложнее первых двух - за счет анимации раскрытия антенн. Теперь, когда анимация практически целиком перешла в ведение класса VESSELM, код 3-го спутника по сложности ничем не отличается от первого. Теперь самым сложным из них стал 2-й спутник - за счет более сложной "собачьей" звуковой картины, но более - из-за очень необычного поведения: он не отделяется от ракеты, как все остальные выводимые изделия, и эта "мелочь" оказывается совсем не мелочью, когда речь идет об общем "конвейерном" коде, рассчитанном на "единообразие" объектов! За "отклонения от нормы" приходится платить, хорошо еще, что платформа достаточно гибка, чтобы их разрешать...

Очень интересен модуль Generic. Это общий модуль для всяких сбрасываемых мелочей - обтекателей, юбок, люков - которые просто отваливаются и ничего больше не умеют делать, кроме как красиво падать и кувыркаться Улыбка. Раньше размер этого модуля был прямо пропорционален числу элементов, которые он содержал. Теперь он стал самым меленьким модулем в проекте - каких-то 80 строчек кода покрывают все мыслимые варианты. Более того, чтобы добавить новый сбрасываемый элемент для новой ракеты, модуль Generic даже не надо перекомпилировать, достаточно лишь написать новый конфиг для нового элемента. Прямо как со Spacecraft.dll! Улыбка

Впрочем, в этом процессе есть два важных отличия от spacesraft.dll. Первое: хотя новая платформа позволяет модифицировать многие вещи из конфига, не требуя перекомпиляции, она все-таки требует умения программировать и писать код - одними только конфигами обычно не обойтись. Второе: она на всех этапах сохраняет гибкость в использовании инструментария. То есть, она дает много удобных инструментов и приемов (о которых я расскажу позже) - но не принуждает ими пользоваться. Используя при необходимости код "старого стиля", можно легко обходить любые ее ограничения и недоделки. Вот, например: в модуле Generic штатно не предусмотрены двигатели. То есть, создать изделие класса Generic и напихать в него двигателей не проблема, они задаются в конфиге, а не в коде. Но в коде модуля нет ничего, что отвечало бы за их включение. Но в некоторых обтекателях (например, в обтекателе Луны-2) двигатели используются. Как быть? Стандартная (для этой платформы) процедура запуска двигателей на подчиненном модуле в ФиС - послать сообщение VM_IGNITION. Но мы знаем, что это бесполезно, модуль это сообщение не обрабатывает, поленились мы реализовывать обработчик для одного обтекателя Улыбка. Что делать? Не проблема: получать по хендлу интерфейс, и по интерфейсу запускать главную двигательную группу. "Некошерно", но просто, быстро и работает... и позволяет нам не снабжать обработчиком сообощения модуль - до тех пор, пока мы не наработаем штук пять таких обтекателей... Вот увидим, что их число растет, тогда может и добавим Generic-у пару-тройку "родных" двигательных функций.

Ну, пожалуй, хватит на сегодня, завтра-послезавтра продолжу.
    Posted: 08:22 25-03-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Ну вот, наобещал, что напишу скоро, а сам отвлекся. Уж очень интересно оказалось играться в новом коде с блоками И и Л. Оказалось, можно подступиться еще к одной мега-задаче, максимально консолидировать и "уравнять" код автопилотов. А то их там больше десятка уже наваялось, причем все похожи на 80-90%. И если их аккуратно объединить (аккуратно, чтобы не заблокировать возможности тонкой настройки), может очень интересно получиться Улыбка. Тогда ужмется код не только простых инертных объектов, но и активных изделий со сложным поведением. И блок Л хорошо на такую первую ласточку подходит, в нем сразу несколько режимов управления реализовано, да еще кое-каких не хватало в первой версии.

Так что я, пожалуй, еще чуток поиграюсь с ними. А пока всех неравнодушных - с Днем Космонавтики! Улыбка
    Posted: 00:11 12-04-2012   
Eraser_stp
 60 EGP

Рейтинг канала: 1(9)
: 2
Posts: 177

Joined: 14 Jun 2007
Новый код будет писаться под Орбитер 2010? Он уже по сути стал стандартом.
    Posted: 17:03 16-06-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Конечно же под 2010! Ну сколько можно одной попой на двух стульях сидеть? Улыбка Пора начинать использовать те возможности, которые в 2010 добавлены.
    Posted: 22:41 18-06-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Обновление!

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

Прежде всего, обновленная "диаграмма сложностей":


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

Из новых "изделий" - добавилась современная РН "Союз" с макетом корабля и - полностью функциональной! - САС. При этом САС можно не только "стрелять" с полной ракеты на 1-й площадке, но и испытывать с головной части, установленной на пусковом столе 51-й площадки. При этом весьма головоломный код, управляющий этим чудовищным "трансформером", выделился в отдельный класс (что позволило применить его без изменения и в "живом" блоке И и в "испытательном макете". При этом, как видно на диаграмме, код блока И ужался до весьма разумного размера.

В новой версии 1-я и 51-я площадка обросли новыми наземными сооружениями, застройка становится все плотнее...

Сгружать новую альфу можно там же, http://members.shaw.ca/atil8/Orbiter/. Для ее работы нужно все, что было прежде (а именно, все прежние семерочные аддоны), плюс ISS-аддоны Thorton-a (с ракетой и кораблями "Союз"). В основном потому, что альфе не содержит никаких мешей и текстур, кроме совсем новых, а ссылается на те, что уже есть в прежних аддонах.

Как видно из диаграммы, в следующей итерации пора приниматься за модуль стартового стола - он явно занимается уймой вещей, которой ему заниматься не следует Улыбка. Ну и лунные аппараты тоже пора перетаскивать сюда же.
    Posted: 07:27 02-10-2012   
mc_
 360 EGP


Рейтинг канала: 1(7)
: 34
Posts: 2395

Joined: 09 Apr 2010
Да, летний перерыв был суровым...

Давно никуда не летал, сейчас жду грядущий апдейт на Arrow, чтоб без напряга прокатиться с ветерком и вспомнить былые навыки. Затишье, по-моему, имеет место быть даже на англоязычном форуме.

Посмотрел на диаграмму. Очевидно, что всё кочует в VesselM, ланчпад действительно выбивается из ряда.

Такой вопрос: основная проблема "семерки" в том, что её сложно запускать. Не получается всё поставить и настроить прямо в симе, как с "Энергией". Нельзя ли хоть как-то упростить этот процесс?
    Posted: 14:51 02-10-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Ну, до Launchpad-а я просто еще не успел добраться Улыбка. Доберусь - перестанет выбиваться.

А в чем сложность запуска семерки? "Запуска" в смысле пуска ракеты или "запуска" аддона в Орбитере? Что именно воспринимается сложностью?
    Posted: 17:54 02-10-2012   
mc_
 360 EGP


Рейтинг канала: 1(7)
: 34
Posts: 2395

Joined: 09 Apr 2010
Я имею ввиду добавить в симуляцию (голый сценарий с одним DG) весь комплекс: РН+стол, нужная полезная нагрузка (в т.ч. нестандарт), обтекатель под неё и т.д.
Сейчас, как я понимаю, для этого нужно редактировать сценарий вручную. В "Энергии" это дело реализовано дружелюбнее Улыбка

Кстати, есть вопрос: у меня ведь осталась модель ТКС ВА, вроде бы довольно приличная. Нет ВК (а зачем он капсуле?) и текстур.
Недавно пытался придумать к ней ПАО по типу союзовского (похож на Эскалибур-Алмаз, но не он), и пусть летает, но не смог осилить компоновку.

В общем, если будет жалание этим заниматься, могу доделать маппинг и отдать модель вместе со всеми правами. Аттачмент или фейковый стыковочный узел под днище - и получаем простенькую капсулу практически для чего угодно - в свете "intrplanetary modular spacecraft" (сейчас на бетатесте) и прочих подобных опытов штука будет совсем не лишняя.
Нужна только dll с автоматикой спуска...
    Posted: 16:27 09-10-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Планы есть по полезной нагрузке. Ну, правда, они имеют практический смысл только для современного Союза (ну или Протона) с произвольными нагрузками. Для исторических миссий, под которые заточена ФиС - не представляю, кому это может понадобиться. Они потому и "исторические" что не больно-то вариабельные. Но поскольку в этом проекте современные ракеты добавляются в параллель с иторическими, и получают те же самые свойства - то да, все что добавится для одних, будет работать и для других, в том числе и операции с ПН.

Про ТКС - предложение интересное. Пока чуть преждевременное, пускать не на чем Улыбка Но когда ФиС войдет в более стабильную фазу - вполне можно будет "окучить". Так что если никто до времени не заинтересуется - пусть полежит пока. Оно не страшно, иногда даже "почти сделанные" вещи по году и более лежат, пока не понадобятся.
    Posted: 23:25 09-10-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Новая альфа версия. Подправились стартовые площадки, как и обещал. Хорошо так подправились:

Объем кода теперь вполне разумный, при том что вернулась практически вся былая функциональность: предстартовые парения ракеты, ночные прожекторы (которые теперь реально светят, а не имитируют свет, как раньше). Союзы теперь могут взлетать "с разворотом", а не только "преднацеленно" - поэтому добавился еще один стартовый стол, в Куру (там стол не вертится в принципе). В общем, нет только плесецких площадок, да и то лишь потому, что они ничем принципиално не отличаются от 31-й, и добавить их будет совсем тривиально, были б меши. Вот рельеф там прикольный...

Из столов сейчас убрана возможность "ручного" нацеливания ракеты. Она скорее всего будет возвращена в отдельном "управляющем" модуле какого нибудь стартового "бункера".

Этап закончен, движемся дальше...
    Posted: 23:00 12-11-2012   
mc_
 360 EGP


Рейтинг канала: 1(7)
: 34
Posts: 2395

Joined: 09 Apr 2010
С "бункером" не совсем понял идею.
    Posted: 18:07 14-11-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Ну, отдельный бункер управления пуском, с виртуальным кокпитом, из которого можно производить и настройку-нацеливание, и наблюдение за пуском через виртуальные "камеры" и "перископы".
    Posted: 00:21 15-11-2012   
Eraser_stp
 60 EGP

Рейтинг канала: 1(9)
: 2
Posts: 177

Joined: 14 Jun 2007
Можно сделать какой-нибудь standalone пак? Тестировать трудновато, приходится соображать, что и в каком порядке ставить. Улыбка
    Posted: 10:41 18-11-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
M-м-м... можно попробовать. Вообще там не так много надо ставить, сейчас попробую перечислить точно.

Мои аддоны:
- R-7.Early.Missions.v.1.0
- Vostok_Luna.v1.0
- Molniya.v.1.0
- Vostok.1.0.110301

Аддон Thorton-a:
- Soyuz_FG(U)_v1.2_25.10.10

И, кажется, все. Порядок распаковки должен быть неважен, особенно если делать это в чистой версии Орбитера. Вот тайлы байконуровские сложнее, они ставятся не просто распаковкой, а возней с конфигами... но они во-первых любые годятся, а во-вторых их на первичное тесты можно хоть вовсе не ставить, все равно это еще пока "полработы".
    Posted: 21:26 18-11-2012   
Eraser_stp
 60 EGP

Рейтинг канала: 1(9)
: 2
Posts: 177

Joined: 14 Jun 2007
Ещё нужна МКС Тортона для некоторых сценариев, где используется Союз-ТМА в качестве нагрузки.

Тестировал на Орбитере версии 100830 на обычном и DX9-клиентах. ОрбитерСаунд 4 - последний релизкандидат. Один раз полетал с Куру и Полет-1.
В логе такие косяки:
а) ERROR in configuration file for FiS\Earth: Syntax error in SURFBASE list
- визуально это выглядит как странные пертурбации с тайлами базы.
б) >>> ERROR: Missing texture: r7_V\TrenchFlame.dds
>>> [TextureManager::AcquireTexture | .\Texture.cpp | 750]
- пропущеная текстурка
в) Полет1 - орбитер вылетает при взрыве аппарата, на обоих клиентах, в логе ничего нет по этому поводу.
г) В логе орбитерсаунда пишет вот такую штуку -
ERR01= Vessel->ConnectToOrbiterSoundDLL3: Unable to connect to OrbiterSound 3.5 - not installed or activated
- видимо гдето используется заточеная чисто под 3.5 функция.

В логе орбитера еще два варнинга об устаревших функциях - VESSEL::SetBankMomentScale и oapiGetAtmPressureDensity
    Posted: 06:30 19-11-2012   
igel
 97 EGP

Рейтинг канала: 4(86)
: 14
Posts: 755

Joined: 12 Jun 2006
Ага, большущее спасибо за тест! Посмотрю тогда сам на чистом Орбитере, и погляжу, где что глючит, и где можно уменьшить зависимости. Ну, ОрбитерСаунд у меня и впрямь 3.5, 4го еще не видел. Глюк при врыве Полет (да и не только его, он много где встречался) вот только вчера выправил, очень глубоко сидел. Надеюсь, в следующей публичной бете его не будет. предупреждение об ошибках в списке баз, к сожалению, неустранимо: у меня используются комментарии в списке баз, но в Орбитере комментарии не предусмотрены, и о них выдается предупреждение как об ошибках. Они игнорируются, на работу не влияют. Но список баз там настолько сложный, что без комментариев совершенно не вижу как обойтись. Ну а с тайлами надо будет еще посмотреть...
    Posted: 09:29 19-11-2012   
Eraser_stp
 60 EGP

Рейтинг канала: 1(9)
: 2
Posts: 177

Joined: 14 Jun 2007
Вот как выглядит косяк с тайлами:
Встроенный клиент: https://www.sugarsync.com/pf/D6085577_8259312_6708407
DX9 клиент: https://www.sugarsync.com/pf/D6085577_8259312_6708466

Вот ссылка на OrbiterSound 4: http://orbiter-forum.com/showthread.php?t=29578&highlight=orbiterSound
Добавлена куча новых интересных фишек. В принципе обратная совместимость вроде есть, звуки работают.

Last edited by Eraser_stp on 10:56 19-11-2012; edited 1 time in total
    Posted: 10:52 19-11-2012   
Канал Orbiter: «Фуксия и Селедочка»
Go to page: 1, 2, 3  Next | All pages
  
Display posts from previous: 
View previous topic | View next topic |
К списку каналов | Наверх страницы
Цитата не в тему: Бyдешь в оффлайне - кyпи хлеба.

  » Фуксия и Селедочка |
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18