Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Луна-9-10: разработка. | страница 3
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 3 из 13
На страницу: Пред.  1, 2, 3, 4 ... 11, 12, 13  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал Orbiter: «Луна-9-10: разработка.»
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Заменил альфу на новую, имя файла то же и там же:
http://members.shaw.ca/atil8/Orbiter/Luna9/Luna9.v.A.zip
Рекомедую перед распаковкой стереть старый каталог _Luna9 в сценариях: я поудалял много "лишних" сценариев начального уровня, если какие-то останутся, могут даже оказаться несовместимы.

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

Фокус я поотключал везде, кроме КТДУ. После отделения АЛС от КТДУ фокус разрешается на АЛС и переносится на нее, а на КТДУ отключается. Для отладки, чтобы каскадно разрешить фокус на все компоненты, нужно, пока они еще все приделаны к КТДУ, в сценарии прописать для нее FOCUS_ALL 1 . В каких-то сценариях продолжает глючить астроотсек: не берет фокус, даже если разрешен, и при его отделении Орбитер падает с грохотом.

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

Клавиши на КТДУ:
Е - использовать или нет основную камеру двигателя;
К - выдвинуть щупы (необратимо)
С - переключение между бортовыми камерами (на внутреннем виде);
J - отстрел последовательно астро-, радиоотсека, АЛС, мешков на АЛС
В - наддув мешков АЛС (необратимо)

После падения КТДУ на поверхность она тоже становится интертной, щупы "ломаются".

После отстрела АЛС на ней (на АЛС) вклюЧается таймер. Через 30 секунд после отделения от КТДУ отстреливаются мешки, еще через 10 раскрываются лепестки, потом антенны, потом таймер тоже становится инертным.

Клавиши на АЛС:
В - наддув мешков (необратимо)
J - отстрел мешков (тоже, разумеется, необратимо)
К - раскрытие лепестков (обратимо)
G - раскрытие антенн (обратимо)

Очередность работы с мешками, лепестками и антеннами должна соблюдаться, от несоблюдения стоит защита.

Мешки после отстрела потихоньку сами необратимо сдуваются и больше ничего не делают. Я следил, чтобы на земле объекты "соблюдали" поверхность, и не "висели" в воздухе и не зарывались в землю (сверх необходимого).

Вроде все. В ручном режиме ее уже, пожалуй, можно сажать. Но мелочей еще много сыроватых, и я их хочу выправить до автопилотов.

Уф-ф. Пошел спать... Улыбка
    Добавлено: 09:39 09-11-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

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

Следующий этап - составление списка "замученных очепяток", багов, недоделок и просто пожеланий, отдельно по каждому объекту. Пока на уровне мозгового штурма, не отвергая практически ничего, кроме разве что самых очевидных "нереальностей".
    Добавлено: 19:09 09-11-2007   
Thorton
 87 EGP


Рейтинг канала: 3(36)
Репутация: 12
Сообщения: 696
Откуда: Томск
Зарегистрирован: 15.05.2006
Погонял немного, пока особых глюков не заметил, ну кроме известного с астроотсеком((, так что сейчас именно на этом глюке надо сфокусироваться, очень уж он портит впечатление.

Пытался посадить на Луну, в результате основной блок приземлился нормально, а сама станция в хлам Рыдания.
Какая должна быть высота для её безопасного отделения? Или она отделяется, как только щупы Луны коснутся?

Еще в папку сценариев неплохо бы добавить сценарий со станцией уже почти у Луны, скажем километрах в 300-х.

Особенно эффектно выглядит все это в паре с аддоном Orulex (в моем последнем патче был скиншот), динамически генерирующим ландщафт. Потом можно его будут для совместного использования в мануале порекомендовать.
    Добавлено: 22:31 09-11-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Астроотсек да, пока - чистая мистика. Какие-то сценарии очень устойчиво дают глюк. Пока не нашел. И это пока единственный полный show-stopper, все остальное некритично. Из остального заметил (еще вчера, но забыл сказать, ибо незначительно), что газовые сопла тангажа чуть-чуть смещены вдоль поперечной оси, от нулевой позиции. Самую малость, еле заметно, что выхлопы чуть в стороне. Это модели погрешность, или стыковки модели? Не знаю, но поправить легко будет, либо модель, либо я в коде смещу выхлопы. Надо только договориться, кто правит, а то будем в разные стороны тянуть Улыбка

Автоматическая циклограмма посадки, с отделением по щупу, автоматическому наддуву и т.п., будет делаться постепенно, вместе с автопилотами. Щуп, например, можно сделать отдельно, а наддув и сброс отсеков увязаны с запуском двигателя на торможение, а он будет определяться автопилотом. Так что пока - только ручками... Улыбка

Насчет разрушения - там много сложных правил. Все объекты разрушаются по определенной скорости удара, горизонтальной и/или вертикальной. Или по оределенному скоростному напору в атмосфере. Я старался подбирать эти параметры более-менее реалистично. Для АЛС эти скорости такие: надутые мешки 40 м/с, ненадутые 20, без мешков 10, с раскрытыми лепестками 3. Есть еще скорость, около 1 км/с, при которой объекты не просто "в хлам", а со взрывом. Взрыв также происходит, если в момент гибели более 10% массы объекта составляет топливо.

Любой custom-ландшафт всегда смотриртся изумительно! Меня в них тольк одно смущает: высотный рельеф, если он есть, будет конфликтовать с визуальным представлением, просчитанном на "нулевую" поверхность. Там ведь много нюансов, например, как вполне буквально станция "вываливается" из надутых мешков при их отстреле, падает с этой небольшой высоты, проворачивается на грунте... А в рельеф - зароется. Не разобьется, но визуалка поедет.

Кстати, насчет визуалки. У меня два вопроса-идеи по ходу взникли, хочу вбросить.

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

Второе. Я собираюсь повернуть бортовую камеру на АЛС, чтобы смотрела вбок, а не вверх. И думаю: нельзя ли как-то поместить перед ней поверхность-мешь с текстурой "исторической" панорамы? Так, чтобы было видно только изнутри и только по команде?
    Добавлено: 23:24 09-11-2007   
Thorton
 87 EGP


Рейтинг канала: 3(36)
Репутация: 12
Сообщения: 696
Откуда: Томск
Зарегистрирован: 15.05.2006
igel :
Это модели погрешность, или стыковки модели? Не знаю, но поправить легко будет, либо модель, либо я в коде смещу выхлопы. Надо только договориться, кто правит, а то будем в разные стороны тянуть

Я чесно говоря не знаяю, вероятно это погрешность стыковки, если можешь то поправь сам.

По твоим вопросам:
1. Можно такое сделать, обломок один делать или несколько, как у Лайки?
2. что-то моя твоя непонимать Ой, не могу!.. (видимо из-за того что спать сильно хочется), ты предлагаешь сделать что-то типа Landing Site, как в аддоне AMSO последней версии(там они кстаи очень красивые получились).
    Добавлено: 23:48 09-11-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
0. Факелы подвину, не проблема.

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

2. Нет совсем не посадочную площадку. Снаружи все пусть будет как есть. То ,что я думаю, пока гипотеза. При виде изнутри видны меши, из которых состоит аппарат. Видны и текстуры на них. Если загрузить еще одну мешь, отдельную, плоскую или вогнутую, этакий "экран", на нее поместить (текстурой) ту самую посадочную панораму, и разместить это все достаточно близко, то при переключении на внутренний вид мы увидем прямо перед собой этот "экран" с панорамой. Проблемы две - чтобы это не уродски смотрелось снаружи тоже (можно ли "экран" сделать видимым только изнутри, а не снаружи? Наоборот вроде можно.) И вторая - меши (что внутри, что снаружи) видны только на каком-то удалении от камеры, поэтому "экран" не может быть слишком близко расположен. Труднее будет его "спрятать" при наружном виде.

Последний раз редактировалось: igel (00:56 10-11-2007), всего редактировалось 1 раз
    Добавлено: 00:55 10-11-2007   
Thorton
 87 EGP


Рейтинг канала: 3(36)
Репутация: 12
Сообщения: 696
Откуда: Томск
Зарегистрирован: 15.05.2006
Ну можно с экраном попробовать, только пришли мне эту самую панораму для опытов))

Еще хотел попросить, можно следующие версии выкладывать в рар-архиве?


UPD: Слепил Луну 10. http://rapidshare.com/files/68770610/Luna10.rar.html

Также добавил пример факела двигателя о котором я писал ранее.

Последний раз редактировалось: Thorton (19:22 10-11-2007), всего редактировалось 2 раз(а)
    Добавлено: 14:28 10-11-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Ну вот, выходные прошли не зря. Новая альфа:
http://members.shaw.ca/atil8/Orbiter/Luna9/Luna9.v.A.zip
http://members.shaw.ca/atil8/Orbiter/Luna9/Luna9.v.A.rar

Так же как и в прошлый раз, рекомндую очистить каталог сценариев _Luna9 перед распаковкой.

Очень много всевозможных усовершенствований, обычно мелких, но приятных. Описываю по группам.

ВЕСЬ АДДОН:
- добавлено много "настоящих" (около)лунных сценариев, с сохраненными точками в 300 км, 1 км, 100 м.
- предлагаю rar- и zip- варианты (только для окончательного релиза, когда-нибудь, основным придется использовать зип, а то на западе рар практически не знают... кстати, а чем вообще рар слаще зипа?).

КТДУ:
- исправлен спорадический глюк с падением Орбитера при отделении астроотсека;
- исправлено положение выхлопов газовых сопел тангажа;
- реализовано автоматическое отделение АЛС по контакту щупа (только если щуп выпущен);
- поднастроены силы отстрела АЛС для лунного тяготения;
- реализован запрет выпуска щупа на Луне-10;
- реализован запрет наддува мешков в отсутствие радиоотсека (с баллонами);
- реализована налалогичная блоку Л команда Ctrl-J для управления переключением фокуса на АЛС после ее отделения от КТДУ (практические потребности при отладке делятся где-то 50/50, когда я хочу переключаться и когда не хочу);
- исправлено и реализовано сохранение-восстановление сценария практически для всего, что функционально на сегодняшний день. Кроме, по-прежнему, "анимаций в процессе", это на будущее.

АЛС-9
- реализована внутренняя камера с углом установки очень похожим на "живой" телефотометр, только "озираться" надо мышкой, вручную;
- поднастроены силы отстрела мешков для лунного тяготения;
- ликвидирована отладочная клавиша наддува мешков (это делается КТДУ);
- улучшена реализация таймера, он стал более вербальным и релевантным;
- улучшено сохранение/восстановление сценария, в него теперь попадает меньше умолчательных и нерелевантных записей;

АЛС-10
- подключена правильная мешь - спасибо!
- реализован демо-сценарий (на околоземной орбите);
- реализована внутренняя камера с симпатичным видом назад, в сторону КТДУ.


Список того, что еще не сделано, заметно сократился. Вот примерный список:

ВЕСЬ АДДОН:
- для Молнии и блока Л подобрать правильное стартовое время поближе к историческим датам, и сделать "долетные" сценарии;
- реализовать сохранение/восстановление промежуточных фаз анимаций;

КТДУ
- автоматическая циклограмма запуска-наддува-разделения;
- автопилот посадки
- автопилот коррекции
- экранные аннотации, защита от дурака и прочий визуальный сервис;
- Частицы-текстуры выхлопов, пример в прошлой ссылке был просто отличный, спасибо!

АЛС-9
- попробовать вид панорамы изнутри (сама панорама есть, например, вот здесь: http://www.donaldedavis.com/BIGPUB/LUNANINE.jpg)

МЕШКИ
- поправить: при восстановлении сценария с уже начавшейся анимацией сдутия мешки часто подпрыгивают. Возможно, правильное восстановление промежуточных фаз анимаций вылечит это само.

АЛС-10
- Интернационал... В принципе, обойти "исключительность" звука можно и текстом сценария, я сумею. А как насчет ПС-1? Улыбка Тоже надо!

ОБЛОМОК
- правильно сохранить-восстановить физику, на случай разрушения в полете;
- сделать и добавить меши обобщенных обломков;
- сделать дымогенерацию динамической: больше в полете, меньше на земле, добавить зависимость дыма от веса, а на Луне вообще не надо дыма... а надо ли что-нибудь?
- поиграться с внутреними камерами.


В общем, работы еще хватит. Из оставшегося самый большой технический риск (неизвестность и сложность) представляет автопилот коррекции. Посадку после Армадилло делать легко будет, циклограмму тоже. Стартовое время подобрать... ну, это только терпение нужно Улыбка. Ну а всякие (аудио)визуальные расширения рискованы только трудоемкостью - их можно прерывать в любой момент и по любой причине, ибо они все-таки не обязательны.
    Добавлено: 03:43 12-11-2007   
Konsni
 61 EGP


Рейтинг канала: 2(10)
Репутация: 2
Сообщения: 119

Зарегистрирован: 31.10.2007
Уважаемый Igel, Вы не могли бы записать встроенным в Орбитер playback-ом посадку Вашей Луны-9 для сценария, где она находится на высоте 140 км? Хочется посмотреть режимы работы двигателя... Никак не получается мягко приземлиться, топливо кончается при вертикальной скорости 300-400 м/с. С посадкой с высоты 1 км никаких проблем.
    Добавлено: 14:00 12-11-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Записать смогу только вечером, но сначала попробую догадаться, в чем может быть проблема. Включать двигатель на полный мах надо на высоте 70 км. Одноврменно с этим нужно клавишей J (двумя нажатиями) сбросить астро- и радиоотсеки. Они в сумме 300 кило весят, и с ними нет никакой возможности мягко сесть, поэтому их нужно сбрасывать как можно раньше. Да, мешки нужно наддуть до сброса - потом не наддуются, баллоны находятся на радиоотсеке.

Когда скорость упадет где-то до 100-70 м/с или меньше (смотря по высоте), можно (скорее, нужно) выключить центральную камеру клавишей Е. А то у нее такая тяговооруженность получается, что управляться с ней нереально, чуть что - и подпрыгнул. Даже и потом то и дело приходится выключать оставшиеся 4 камеры, а то скорость падает до нуля слишком рано.

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

В таком режиме топлива должно хватать с солидным запасом. Его "историческая" заливка учитывает, помимо гарантийного запаса, еще 6-секундную коррекцию (которой у нас пока нет), плюс гиперболический подлет, который заметно быстрее нашего эллиптического. Когда мы все это реализуем, ручная посадка усложнится Улыбка
    Добавлено: 18:53 12-11-2007   
Konsni
 61 EGP


Рейтинг канала: 2(10)
Репутация: 2
Сообщения: 119

Зарегистрирован: 31.10.2007
Спасибо за помощь, отсеки-то я не сбрасывал... Попробуем.

добавлено спустя 34 минуты:
...Ура! Получается! Спасибо большое.

Последний раз редактировалось: Konsni (19:44 12-11-2007), всего редактировалось 1 раз
    Добавлено: 19:44 12-11-2007   
Thorton
 87 EGP


Рейтинг канала: 3(36)
Репутация: 12
Сообщения: 696
Откуда: Томск
Зарегистрирован: 15.05.2006
Пока не тестил, но уже появились некоторые мысли Подмигиваю
Панораму явно придется редактировать в фотошопе, но вот мне вспомнилось, что можно в Орбитере запрещать замедление/ускорение времени, может и с FOV таков можно проделать, например для вида внутри установить его равным 40 без права изменения пользователем, но надо помнить что камеру можно двигать не только влево-вправо, но и еще вверх-вниз, вот как с этим бороться я не знаю. Сначала планировал спроецировать панораму на полусферу, но тут она сильно вытянутая, так что пока буду думать...

igel :
... кстати, а чем вообще рар слаще зипа?

рар сжимает лучше, что для меня с моим инетом очень важно.

igel :
а на Луне вообще не надо дыма...

Не на Луне тоже дым надо, там же пыль, можно еще такую фичу сделать: после удара старая мешь удаляется и подгружается мешь небольшого кратера, если идея понравится - отпишись, чтробы мне кратер нарисовать.

igel :
Интернационал... В принципе, обойти "исключительность" звука можно и текстом сценария, я сумею.

Чесно говоря не врубился Подмигиваю , это как?
    Добавлено: 23:33 12-11-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Если не получится (а я боюсь, что не получится) вставить панораму в обычный "голый" вид изнутри, можно поместить ее на "приборную панель". Можно даже в вирутальный кокпит, но это, боюсь, уже оверкилл Улыбка. FOV программно я думал фиксировать еще в Армадилло, но безуспешно, ничего не нашел в API.

Ну, разница между раром и зипом не такая уж существенная по сжатию... а вот если я буду делать вариант без мешей и текстур (а они-то уже устаканились и меняются крайне редко) - вот это будет капитально! А уже безмешный набор жать раром.

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

А про звук - это просто Улыбка. Я напишу в сценарии что-нибудь интригующее, вроде "когда подойдет время отделять спутник - не забудьте включить динамики и убедитесь, что звуковой аддон активирован". Кто знает - сразу догадается, кто нет - будет заинтригован, но главное - и тех и других такая формулировка сразу предупредит, что ВО ВСЕХ ОСТАЛЬНЫХ СЛУЧАЯХ звуковой аддон не нужен, ибо звуков там нет. Что и требовалось...
    Добавлено: 01:01 13-11-2007   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
igel :
Если не получится (а я боюсь, что не получится) вставить панораму в обычный "голый" вид изнутри, можно поместить ее на "приборную панель".


Я тут со своми делами практически прекратил разработку своих аддонов для Н1 - Марс 75 и ЛК 3.
Дык наработок много, потрачено около 2ух лет Гы-гы. Хочется хоть что-то увидеть в живую - вот решил "сдать" часть кода по представленным в посте вопросам, а именно фотокамера на неподвижных севших на поверхность зондах. Наработано - собственно фотокамера, иммитирующая советскую теле-фото- аппаратуру и

Значится основа такова - "кабина" это аттачмент, который может программно вращаться относительно спутника (это и управлялка и телефото аппарат) аттачмент - тогда незя было программно изменять направление взгляда, панель управления - плоская, состоит из трех панелей
- Управления ,минимум, со "строчкой" редактирования, в которую вводятся команды.
Нпр "PHOTO 6 0 1 0" Где, понятно, PHOTO - команда на снимок, аргументы, последовательно выдержка, апертура, направление, и сфетофильтр (съемка ведется на ч/б пленку - смена фильтров позволяет получить цвет). Введя команду, получаем задержку - время передачи сигнала (для Марса актуально), затем вступает в действие приведенный ниже код.
- Просмотра - большой экран для просмотра "снимков" с кнопками перемещения по снимкам и объединения для получения цвета.
- Пустой экран (полностью прозрачная картинка панели), через который осуществляется снимок (недоступна для переключения на нее аператором, только программно).

Код совершает командный разворот аттачмента, изменение аппертуры, подавление отображения ХУДа, переключается на третью панель.

Далее, гы, имиитирует нажатие alt+ PrintScreen, в результате картинка Орбитера получается в буфере обмена. Данная операция через иммитацию нажатия клавиш тем предподчтительнее перед считывания рабочей области через GDI, что не во всех системах возможно считывание DX экрана через GDI - получается черный квадрат.

Затем буфер переводится на внутреннию БМП панель Орбитера, с которой можно производить уже силами GDI графичесие операции.
1)Сразу (при переносе из бувера обмена) она обрезается - отсекаются - те части где отображаются оставшиеся, независимые от ХУДа цифири, как то - Уровень топлива и Дата.
2) Наносятся служебные марки прицела и линейка цвета.
3)Применяется светофильтр, чувствительность фотопленки + выдержка,картинка "отбеливается" в ч/б. На марсинских телефото не было управления диафрагмой.
4) Наводятся пмехи Подмигиваю
6) Картинка конвертится в БМП файл и покладывается в папку Орбитера. потом с нею мона делать что хочешь...

Следующим постом код.
#pragma warning(disable: 4275) // сообщение о принудительном експортировании

Заг файлец - кусочек
Код:

#ifndef __MARS75_VZOR_H_Module
#define __MARS75_VZOR_H_Module

#define _WIN32_WINNT 0x500

#include "..\common\quaternion.h"
#include "..\common\supp.h"



//#define STRICT

#include "..\common\orbitersdk.h"
#include "..\common\ATT_U.h"
#include "..\common\ROOT.h"

class Mars75_VZOR_BM_PHOTO
{
public:
   int status;// 0-пустой 1-к съемке 2 - съемка 3- проявка 4-хранение 5- передача 6- передан
   double MJD;// время съемки
   double MJDP;// время передачи
   SURFHANDLE surfp;//Переданная картинка
   SURFHANDLE surfpi;//Снятая картинка
   int ostr;//Текущая строка передачи
   VECTOR3 Data;//Положение аттачмента для 1-2 этопов
   VECTOR3 Data2;
   int sbros;//Защита от одновременного снижения тайм выркпа
};


Прога

Код:
   
#include "M75_VZOR.h"
#include <stdio.h>
#include "..\common\supp.h"
#include <Wingdi.h>

#include <stdlib.h>
#include <time.h>

#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>

......

//// PHOTO
bool bIsDropp = false;
   for(int i=0; i<32; i++)//Всего до 32 картинок, находящихся на разных стадиях
   {
               switch(BM.PHS[i].status)//Операции от стадии картинки
      {
      case 0: break;//Не снятая часть
      case 1: //Подготовка
         {
         if(   (BM.PHS[i].MJD-mjd)*24.*3600./simdt < 3 && !bIsDropp)//меньше 3ех циклов сима до сьемкии, нет сброса снижаем тайм варп
         {
            double warp = oapiGetTimeAcceleration ();
            if(warp > 1)
            {
               oapiSetTimeAcceleration (warp/10);
               bIsDropp = true; // блокирует повторные снижения от других снимков
            }
         }
         if(mjd > BM.PHS[i].MJD ) // Момент съемки
         {
            oapiSetPanel (1);//Пустая панель
            oapiSetHUDMode (HUD_NONE);//Выкл Худ
            double ds = 0;
            oapiCameraSetAperture (30.*RAD);//Стандартная апертура
            if(BM.PHS[i].Data.z == 1 ) oapiCameraSetAperture (90.*RAD); //Рыбий глаз
            if(BM.PHS[i].Data.z == 2 ) ds = 0.05;//Не помню, см SetAttachmentParams
            if(BM.PHS[i].Data.z == 3 ) ds = -0.05;
            BM.PHS[i].status = 2;//Следующая операция-стадия
            VECTOR3 dir =_V(0,0,1);//Направления аттачмента
            VECTOR3 rot =_V(1,0,0);
            VECTOR3 adir,arot;
            double a = -45;
            if(BM.PHS[i].Data.x == 1) a= -90;
            if(BM.PHS[i].Data.x == 2) a= 0;
            RotateVector(dir,_V(90*RAD, 0, a*RAD),adir);//Поворачивем аттачмент по команде
            RotateVector(rot,_V(90*RAD, 0, a*RAD),arot);
            SetAttachmentParams (attachment ,_V(ds, 0, 0),adir,arot);
         }
         break;
         }
      case 2://Частичное повторение первой - не всегда отрабатывает за 1 ход сима + съемка
         {
         VECTOR3 dir =_V(0,0,1);
         VECTOR3 rot =_V(1,0,0);
         VECTOR3 adir,arot;
         double a = -45;
         double ds = 0;
         if(BM.PHS[i].Data.z == 2 ) ds = 0.05;
         if(BM.PHS[i].Data.z == 3 ) ds = -0.05;
         if(BM.PHS[i].Data.x == 1) a= -90;
         if(BM.PHS[i].Data.x == 2) a= 0;
         RotateVector(dir,_V(90*RAD, 0, a*RAD),adir);
         RotateVector(rot,_V(90*RAD, 0, a*RAD),arot);
         SetAttachmentParams (attachment ,_V(ds, 0, 0),adir,arot);
         keybd_event(VK_MENU,0,0,0);//Зажимаем альт
         keybd_event(VK_SNAPSHOT,0,0,0);//Зажимаем PrtScr
         keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);//Отпускаем
         keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);//Отпускаем
         oapiCameraSetAperture (30.*RAD);//Апертура в норму
         BM.PHS[i].MJD = mjd;//Считываем дату снимка
         BM.PHS[i].status = 3;break;//Следующий шаг
         }
      case 3://Читаем клипборд и наносим прицелы, шкалу цвета, дату съемки
         {
         oapiSetPanel (0);//В комндную панель
         BOOL test = OpenClipboard(NULL);//Открыть клипборд
         HBITMAP hbmp = NULL;//Картинка
         hbmp = (HBITMAP)GetClipboardData(CF_BITMAP);//Читаем картинку
         SURFHANDLE temp  = oapiCreateSurface (hbmp, false);//временная панель под картинку
         CloseClipboard();//Закрываем клипборд

         BM.PHS[i].surfpi = oapiCreateSurface (800, 800);//Панель под картинку, где она будет преобразовываться

         HDC hDC4 = oapiGetDC (BM.PHS[i].surfpi);//открываем контекст панели хранения
         HDC hDC3 = oapiGetDC (temp); //контекст временный
         BitBlt(hDC4,0,0,800,800,hDC3,176,32,SRCCOPY); //копируем в хранилище картинку, обрезая, ващето финт ушами - во временной панели ее нет, но работает...
         oapiReleaseDC (temp, hDC3);oapiDestroySurface (temp);//Грохаем временную
//Пошли малевать служебку
         SelectObject(hDC4, GetStockObject(BLACK_BRUSH));

         MoveToEx(hDC4, 390, 400, (LPPOINT) NULL);
         LineTo  (hDC4, 410, 400);
         MoveToEx(hDC4, 400, 390, (LPPOINT) NULL);
         LineTo  (hDC4, 400, 410);
         for(int xx=1; xx<16;xx ++)
         {
            MoveToEx(hDC4, xx*50-5, 50, (LPPOINT) NULL);
            LineTo  (hDC4, xx*50+6, 50  );
            MoveToEx(hDC4, xx*50  , 50-5, (LPPOINT) NULL);
            LineTo  (hDC4, xx*50  , 50+6);

            MoveToEx(hDC4, 50,   xx*50-5, (LPPOINT) NULL);
            LineTo  (hDC4, 50,   xx*50+6 );
            MoveToEx(hDC4, 50-5, xx*50,  (LPPOINT) NULL);
            LineTo  (hDC4, 50+6, xx*50);
         }

         for( xx=1; xx<8;xx ++)
         {
            for(int yy=1; yy<8;yy ++)
            {
               MoveToEx(hDC4, xx*100-5,yy*100, (LPPOINT) NULL);
               LineTo  (hDC4, xx*100+6,yy*100);
               MoveToEx(hDC4, xx*100  ,yy*100-5, (LPPOINT) NULL);
               LineTo  (hDC4, xx*100  ,yy*100+6);
            }

         }
         SelectObject(hDC4,GetStockObject(DC_PEN));
         SelectObject(hDC4,GetStockObject(DC_BRUSH));
         for( xx=0; xx<25;xx ++)
         {
            SetDCPenColor(hDC4,RGB(xx*10,xx*10,xx*10));
            SetDCBrushColor(hDC4,RGB(xx*10,xx*10,xx*10));
            Rectangle(hDC4,10*xx,0,10*xx+10,20);
         }
         SetDCPenColor(hDC4,RGB(255,0,0));
         SetDCBrushColor(hDC4,RGB(255,0,0));
         Rectangle(hDC4,260,0,260+10,20);
         SetDCPenColor(hDC4,RGB(0,255,0));
         SetDCBrushColor(hDC4,RGB(0,255,0));
         Rectangle(hDC4,270,0,270+10,20);
         SetDCPenColor(hDC4,RGB(0,0,255));
         SetDCBrushColor(hDC4,RGB(0,0,255));
         Rectangle(hDC4,280,0,280+10,20);
// надпись с параметрами съемки
         SetDCPenColor(hDC4,RGB(0,0,0));
         SetDCBrushColor(hDC4,RGB(0,0,0));
         Rectangle(hDC4,300,0,600,20);
         SetTextColor (hDC4, RGB(250, 250, 250));
         SetBkMode (hDC4, TRANSPARENT);
         SelectObject (hDC4, g_Param.hFont[0]);
         char buff[64];
         sprintf(buff,"Кадр %d Время %f Парам %1d %1d %1d ",i,BM.PHS[i].MJD,
            (int)BM.PHS[i].Data.x,
            (int)BM.PHS[i].Data.y,
            (int)BM.PHS[i].Data.z);
         TextOut (hDC4, 305, 3, buff, strlen(buff));
         oapiReleaseDC (BM.PHS[i].surfpi, hDC4);
//закраска отображаемой приемной поверхности, хранится 2 картинки - исходная то что попало на пленку surfpi и преобразованная  surfp - то что приняли на Земле. Те след циклы идут по отдельной команде -  принять картинку при лудшем прохождени сигнала.
         BM.PHS[i].surfp = oapiCreateSurface (800, 800);
         hDC4 = oapiGetDC (BM.PHS[i].surfp);
         SelectObject(hDC4,GetStockObject(DC_PEN));
         SelectObject(hDC4,GetStockObject(DC_BRUSH));
         SetDCPenColor(hDC4,RGB(100,0,0));
         SetDCBrushColor(hDC4,RGB(10,0,0));
         Rectangle(hDC4,0,0,800,800);
         oapiReleaseDC (BM.PHS[i].surfp, hDC4);

         BM.PHS[i].ostr = 800;
         BM.PHS[i].status = 4;
         BM.PHS[i].sbros =0;
         srand( (unsigned)time( NULL ) );//Готовим рандомизатор для помех.
         break;
         }
      case 4:break;//Чето было - выбросил
      case 5://Прием
      {
         if(   (BM.PHS[i].MJDP-mjd)*24.*3600./simdt < 3 && !bIsDropp)//Дросселируем тайм варп
         {
            double warp = oapiGetTimeAcceleration ();
            if(warp > 100)
            {
               oapiSetTimeAcceleration (warp/10);
               bIsDropp = true; // блокирует повторные снижения от других картинок
            }
         }
         if(mjd > BM.PHS[i].MJDP ) //Момент передачи
         {
            HDC hDC4  = oapiGetDC (BM.PHS[i].surfp);
            HDC hDC41 = oapiGetDC (BM.PHS[i].surfpi);
            int end_str = 800 - (int)((mjd - BM.PHS[i].MJDP)*1800.*24.);//Дроссель скорости передачи картинки 2 строки в минуту
            if(end_str < 0) end_str=0;//Защита
            for(; BM.PHS[i].ostr >= end_str; BM.PHS[i].ostr--)//текущая передаваемая строка
            {
               for(int y=0; y<800; y++)
               {
                  unsigned  long px =GetPixel(hDC41,BM.PHS[i].ostr,y);// Читаем пиксел
//Далее ч/б преобразование в зависимости от светофильтра и приложением чувствительности пленки к цветам.
                  int c =0;
                  if (BM.PHS[i].Data.y == 0)   c =(GetRValue(px)*1.07+GetGValue(px)*1.006+GetBValue(px)*0.924)/3.;
                  if (BM.PHS[i].Data.y == 1)    c =(GetBValue(px)*0.924);
                  if (BM.PHS[i].Data.y == 2)   c =(GetGValue(px)*1.006);
                  if (BM.PHS[i].Data.y == 3)   c =(GetRValue(px)*1.07);
                  if (BM.PHS[i].Data.y == 4)   c =(GetRValue(px)*1.07+GetGValue(px)*1.006/2.)/1.5;
//Далее Чувствительность пленки и выдержка
                  double d55 = (double) c / 255.;
                  double dmin =0.0225, dmax = 0.90, dmn=1.0;
                  //Вадержка 1/150 контрастность 1,6
                  if (BM.PHS[i].Data2.x == 50)//Выдержка 1/50
                  {
                     dmin =0.0075, dmax = 0.30; dmn=3.;
                  }
                  c =((int)(((double)c)/2.*dmn))*2;
                  if(d55 < dmin ) c=0;
                  if(d55 > dmax ) c= 254;
                  if(c>229) c= 254;
                     else if(c<25) c=25;//Степень засветки 0,1 - засветка пленки радиацией в зависимости от времени перелета- блеклый снимок - для теста фиксирована для 9 мес перелета к Марсу
                        else c+=25;
//Помехи :)
                  double dd = (double)rand()/(double)RAND_MAX;//Случайное число
                  double err_level = 0.9;//Максимальная стартовая помеха
                  if(   angle2Earth*DEG < 60) err_level = 1e-4; //Земля выше 60 гр над горизонтом
                  else if(   angle2Earth*DEG < 70) err_level = 1e-3;   
                  else if(   angle2Earth*DEG < 80) err_level = 1e-2;
                  if( dd< err_level  && BM.PHS[i].sbros <=0) //Рандом попал в помеху, нет продолжения помехи по строке картинки
                  {
                     BM.PHS[i].sbros = (int)(1.e4*err_level*(double)rand()/(double)RAND_MAX);//Генерируем условие продолжения ошибки по строке- число пикселов которые закрасит помеха
                  }
                  if(BM.PHS[i].sbros >0)
                  {
                     c=0;//помеха
                     BM.PHS[i].sbros --;//Счетчик пикселов
                  }
                  if (BM.PHS[i].Data.y == 5)   SetPixel(hDC4,BM.PHS[i].ostr,y,RGB(GetRValue(px),GetGValue(px)*0.95,GetBValue(px)*0.9));//Установка помехи в картинку - серо-циановая линия - для тесту шоб мона было отличить
                  else SetPixel(hDC4,BM.PHS[i].ostr,y,RGB(c,c,c));//Без помехи
               }
            oapiReleaseDC (BM.PHS[i].surfp, hDC4);
            oapiReleaseDC (BM.PHS[i].surfpi, hDC41);
            if(BM.PHS[i].ostr < 0) //обработка окончена
            {
               char tmps[45];
               sprintf(tmps,"PHOTO\\photo%d.bmp",i);//Имя БМПшки
               Surf2BMP(BM.PHS[i].surfp,_R(0,0,800,800),tmps);//Сохранение в БМП файл - см GDI BMP в MSDN на сайте мелкософта - там есть код
               BM.PHS[i].status = 6;//Финиш!
            }
         }//if(mjd > BM.PHS[i].MJDP )
      }//case 4:
      break;
   } //switch(BM.PHS[i].status)
  }   //for(int i=0; i<32; i++)


Последний раз редактировалось: Bloodest (10:41 13-11-2007), всего редактировалось 2 раз(а)
    Добавлено: 09:25 13-11-2007   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Ааа вспомнил

Код:
 if(BM.PHS[i].Data.z == 2 ) ds = 0.05;//Не помню, см SetAttachmentParams
            if(BM.PHS[i].Data.z == 3 ) ds = -0.05;


Эт для стрео снимков Вау! - развлекался Ой, не могу!.. - снимок чуть левее и чуть правее потом в фотошопе подрашивыешь Левый и правый в красно-синий и центр без изменения - совмещаешь в один - и сморкаеши в стрео-очках полный отпад - крутое стерео получается...
    Добавлено: 10:52 13-11-2007   
Thorton
 87 EGP


Рейтинг канала: 3(36)
Репутация: 12
Сообщения: 696
Откуда: Томск
Зарегистрирован: 15.05.2006
igel :
Ну, разница между раром и зипом не такая уж существенная по сжатию... а вот если я буду делать вариант без мешей и текстур (а они-то уже устаканились и меняются крайне редко) - вот это будет капитально! А уже безмешный набор жать раром.

Разница существенная, вот вчера в муках Гы-гы докачал Shuttle Fleet 3.9.4, пережал из зипа в рар, и разница получилась почти 10 метров.

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

http://rapidshare.com/files/69452830/LUNANINE_edit_web.jpg.html
    Добавлено: 19:13 13-11-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Bloodest,

А-а-а-а! Нет слов! Спасибо! Я только издалека примеривался, а тут такое... Все сохранил в файл, чтобы потом по форуму не рыться, буду на досуге внимательно изучать. Тут же не только Луной-9 пахнет - у меня где-то в чуть более далекой перспективе Луна-3 маячит... Подмигиваю Вот только опять разбухание проекта, пресловутый scope creep... Ладно, выйдем на глиссаду - будем дергаться, сечйас все равно еще рано Гы-гы

Thorton,
Посмотрел, только сохранить не смог - рапидные скрипты с фоксом не очень дружат. Ну да из кэша всегда можно выдрать не проблема. Смотрится панорама вполне гладенько. Я, правда, даже не уверен - а надо ли ее выглаживать? Может, наоборот, делать в исходном виде? Все ж знают, откуда она и из каких лет. Собственно, даже та, что я послал, была уже синтезирована из двух, под разными углами солнца (на одной панораме не получались одновременно и края, и центр). Но, конечно, в обработанном виде рассмотреть можно куда больше!
    Добавлено: 22:46 13-11-2007   
Thorton
 87 EGP


Рейтинг канала: 3(36)
Репутация: 12
Сообщения: 696
Откуда: Томск
Зарегистрирован: 15.05.2006
Вот нарисовал кратеры: http://rapidshare.com/files/69682651/craters_wreck.rar.html

crater&wreck- большой кратер с останками тормозного блока.
small_crater - небольшие кратеры, ими можно заменить меши астроотсека и радарного отсека после столкновения с луной.
crater&lander - небольшой ратер с обломками лендера.
    Добавлено: 19:31 14-11-2007   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
Посмотрел. Годится! Текстуры, конечно, выделяются на фоне унылой серой безтекстурной равнины, но ничего страшного. Обломки смотрятся очень убедительно Улыбка. Надо будет попробовать загрузить кратер без текстуры и посмотреть - иногда уменьшение детализации дает положительный эффект (хотя в данном случае я его не особо жду).

Вообще у меня на этой неделе получился тайм-аут - мало свободного времени за компом. К следующей неделе проектирую общую циклограмму и автопилот, пока просто на бумаге. Ничего сложного, особенно с лайковыми наработками.
    Добавлено: 19:29 15-11-2007   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Опять вклинюсь, а меши Вы грузите как часть корабля?
Удобно - разбился/сел где угодно заменил меш и готово, но, тогда есть трабла - Орбитер формирует внешний вид из двух сцен - корабля и пространства окружения и Разозлен освещение в сценах - разное - пластинка выложенная как база и она же, пристыкованная к кораблю будет иметь разный колер.
А так, чтобы закончить тему посадочной съемки, с моей стороны.
Концепция такова - аттачмент это не только фотоаппарат, но и астровизир и собственно рабочее место земного оператора. Все это исходя из возможностей Орбитера, аддонов МФД, стремления к максимальному реализму.
Основная панель управления
http://koavia.com/n1/aa3.jpg
Слева-направо и сверху вниз
- Три МФД, принудительно отключаются если основная антенна не ориентирована на Землю (в пределе если к тому же ЦУП на обратной стороне Земли)
- Экранчик даты, таймварпа и пр. (для экономии места)
-Большой экран формирования команд управления (аналог, по семантике, СМ ЭВМ).
- Круглое окошко наружу - читерское - для отладки.
- Маленький экран - команды для обработки снимков ( в проекте счас не работает)
- Кнопка УСТ - устанавливает угловую ориентацию аттачмента как астровизира в предварительный формирователь.
- Кнопка сброс - сброс данных предварительного формирователя
- Предварительный формирователь - служит для формирования сложных, по сотаву данных, команд. ПРГ - номер команды - собственно что будет делать, блок А - дата выполнения команды кораблем и 3 трехаргументных блока данных. Нажатие УСТ - заполнит блоки Б и В углами положения астровизира.
- Кнопка MJD - заполняет блок А датой.
- Предварительный формирователь даты ( небольшой спец ориентированный калькулятор, например - дата - текущая полночь плюс столько-то часов, минут, сек или текущее время + столько-то часов,,,)
-Кнопка УСТ (2) - пререводит данные из предварительного формирователя в экран формирования команд.
- Кнопка ПЕРЕД передача сформированного блока команд на корабль.
- Передатчик с цифирями Уровня принимаемого с корабля сигнала (оценка дизориентации направленной антенны), Ожидание - проход сигнала туда-сюда, Запаздывание - проход сигнала туда.
- Прием дб табло - прием сигнала с оринтированной и неориентированной антенн корабля
- Табло состояния корабля - через нериентированную антенну - состояние выполнения команд и запасы энергии и топлива основных систем.

Допстим нужно провести корекцию.
- Отдаем команду на оринтацию основной антенны - загораются МФД.
- высчитываем нужные параметры на МФД ( свойства корабля копируются на аттачмент).
- Вращаем аттачмент - совмещаем прицел на МФД.
- УСТом копируем угловые параметры.
- переводим их на формирователь команд получаем первую команду.
- списываем с МФД время импульса - получаем вторую команду.
(Все это соотносим с временем прохождения сигнала и разносом по времени необходимым для ориентации первой командой).
- Передаем.
- Контролируем передачу и выполнение по табло состояния корабля.

Фото тож самое своя команда с датой съемки и блоком аргументов - параметров настройки. Передача снимка - тож самое - номер снимка и дата передачи.


Экран просмотра снимков
http://koavia.com/n1/photopanel.jpg

Гы теперь главное - как получена такая афуфенная (да, нескромный я) реалистичность поверхности.
Вот вид снаружи
http://koavia.com/n1/photoscene.jpg
Кажется что поверхность вогнутная и размазанная - вогутая - нет - это плоский круг из 36 секторов по которым специально размазана текстура, так что при просмоте из центра, фотокамерой, размазанность складывается в правильную картинку.
Как сделано
- Взята круговая панорама от MER-а ( с хвоста видена его колея и часть СБ) - обработана - отрезано небо, разрезана на 36 частей.
- Построен сектор (1/36 круга) длинной 400 м, разбит на дуговые, поперечные взгляду, сектора (8 штук в логарифмической прогрессии - чем дальше тем больше)
- Преобразованы координаты UV наложения тектуры - исходную панораму мы видим вертикально - строим рисунок - точка взгляда - вертикальная панорама - поверхность сектора - линия от (.) взгляда до точки на секторе, где меняем UV отсекает часть панрамы - эта часть и есть UV - правим его в максе для каждой точки сектора. Смотреть результат мона прямо в максе. Дальше остается только размножить сектора и применить к каждому свою текстуру.
Все.

Последний раз редактировалось: Bloodest (10:04 16-11-2007), всего редактировалось 1 раз
    Добавлено: 08:45 16-11-2007   
Канал Orbiter: «Луна-9-10: разработка.»
На страницу: Пред.  1, 2, 3, 4 ... 11, 12, 13  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Обнаружил странную закономерность. Чем больше пива выпито - тем меньше лагов в мультиплеере! (делится наблюдением AlexYar)

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