Oolite
Имя
Пароль
 Запомнить
  ZeroMap - исследуй галактику самостоятельно!
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
В дефолтном Oolite сразу видна вся галактика. Я же хочу разработать OXP, которое позволит скрыть полную карту.
Будут отображаться только посещенные системы и смежные с ними. Это заставит игроков самостоятельно исследовать звездную карту, что добавит интереса к игре.

Легенда о удалении карты галактики:
Инфо-террорист Дрендер запатентовал карту галактики. А анти-пиратские законы настолько суровы, что GalCop был вынужден удалить карту галактики из всех доступных источников (в том числе и с каждого корабля!) и запретить ее передачу под угрозой преследования. Дрендер надеялся, что этим шагом он парализует сообщение в галактике, что отбросит галактическую жизнь далеко назад. Но выручил старый закон времен освоения галактики: каждая система должна предоставлять всем кораблям координаты соседних звездных систем (это делалось для возможности срочной эвакуации при каком-либо катаклизме). Этот закон позволил каждому капитану хранить карту с теми системами, в которых он уже побывал.


Технические детали реализации:
Сокрытия планет можно достичь несколькими способами:
1. Системная функция "скрыть" систему.
1.1. Как вариант - скрывать исключительно на экране карты.
2. Перенести системы.
2.1. Перенести за край карты.
2.2. Перенести на край карты (проекция на край карты относительно текущего положения игрока). Это позволит видеть общее направление до скрытой системы.

К сожалению, ни один из этих вариантов недоступен. Скрытия нет, для перерисовки звездной карты возможностей JS API недостаточно. Изменение координат систем блокировано в коде с пометкой "setting this in game would be very confusing".

Возможно, я что-то упускаю? Возможно, уже есть такой плагин или работающий способ обойти запрет в JS API?

Когда возможностей плагинов недостаточно...
На данный момент мной принято решение о переписывании исходников самой игры (для обеспечения возможности установки координат систем из плагинов (JS API)). В дальнейшем оформлю Pull request для включения правок в основной код игры. А дальше - как решат разработчики игры.
В крайнем случае придется играть на собственной сборке игры.

Игра написана на Objective-C. А это значит, что единственная возможность собрать игру практически в один клик доступна только на Mac OS с ее XCode.

Уже есть первые результаты: удалось перенести координаты системы через JS API. Еще есть технические трудности, но принципиально эта задача решаема.


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Я на такую возможность раскрываемой карты давно облизываюсь.
Сделал в свое время простенький пакет, который блокирует вызов экрана F7, если геймер еще не посещал систему. Учет посещенных систем ведет Explorer's Club, поэтому ничего заново изобретать не пришлось. Полумера, конечно - на карте системы не прячутся, но главного я добился: о системах за пределами информационного горизонта 7 LY геймер получить инфо не мог. На ближней карте параметры систем можно было увидеть как пиктограммы, нажав клавишу I, для начала игры этого вполне достаточно, чтобы планировать первые рейсы не наугад.
К сожалению, в 1.82 этот пакет потерял смысл, так как появился плавный зум и протяжка карты, и можно увидеть все системы сектора с пиктограммами.
Было упоминание на буржуйском форуме, что в версии 1.84 в описание систем введут новый параметр, который позволит избирательно выводить информацию о системах. Вот тогда и правда можно будет играть в Oolite в духе Escape Velocity.


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 01.10.12
Сообщений: 747
Откуда: Novosibirsk
Lave-Diso.png


Я давно уже мечтаю об этом и даже сделал некоторые проверки. Меня больше интересовала, конечно, совместимость с ОХР, предлагающими куда-то лететь с определенной целью. Как показала практика, лишние пункты в меню F4 есть только при старте игры. Поиск планет возможен только при их наличии. Боты делают гипер-переход тоже только к имеющимся (открытым уже) планетам.
esscort.png


Контракты на эскортирование тоже предлагаются только к открытым планетам, а вот если как-то удастся заполучить кусочек карты (естественно нелегальным путем) в другом конце галактики, то добраться туда можно будет только после открытия всех промежуточных планет, однако, предложение на доставку грузов или перевоз пассажиров может и поступить. То есть в этом плане препятствий вероятно не будет, хотя есть еще некоторые ОХР, которые предлагают нелимитированные по времени путешествия (и миссии) - это все нужно будет проверять.
Мне кажется, что было бы еще более интереснее, если бы системы открывались не все скопом в радиусе 7LY, а по одной. Например: начал на Lave, затем, заработав несколько кредо внутри системы, покупаешь "курс" на Diso или другую систему в радиусе 7LY и пока не облетишь все системы, не сможешь выбраться из этого круга.
В общем это все выливается в альтернативный сценарий игры и для полного счастья нужно конечно делать свои карты галактик, а говорят, что такое возможно.


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
To stranger

Сейчас есть возможность изменять параметры системы (все, то в planetinfo.plist указываются, исключение только для координат), я как вариант реализации рассматривал (пустое описание, TL1, аграрный мир, рандомное имя).
Но сама карта будет видна, меня такая полумера не удовлетворила.

Кстати, сейчас есть Endless Sky, как понимаю, современный наследник Escape Velocity.

To vasig

Предложения поступают только для тех контрактов, для которых система в состоянии проложить путь. А это значить, что в другой край галактики отправят только после нахождения пути туда.
А вот сторонние OXP могут и озадачить - все зависит от разработчика.
Изменение координат возможно в OXP, но только в виде planetinfo.plist, т.е. статичным.

--------------------------------------------------

Если будет сокрытие планет (хотя бы в виде перемещения), то возникает очень много новых возможностей для миссий.
Это и "секретные" планеты, и постепенно открываемая галактика. Это и исследования неожиданно пропавшей системы (единственное - между галактиками перемещать нельзя, хотя поменять местами имя и описание с системой в другой галактике можно).
Это и открытие части планет, покупка карт галактик (или ее частей) и много что еще.
Еще можно добавить сюда поиск карт сокровищ на секретной системе (посети планеты в таком-то порядке (или найди секретный предмет с картой) и откроется секретная планета).
Можно добавить и пиратские (ложные) системы, куда заманивают торговцев.

В целом, интересных возможностей открывается довольно много.

P.S. как вижу возможность востребованная, интересно как разработчики отнесутся к подобным вольностям.


Последний раз редактировалось Max 05.02.16, всего редактировалось 1 раз.

  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
To Max

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


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
Да, мне бы сокрытия планет хватило бы. И это было бы более правильней.

Но сейчас я знаю, как сделать правку координат системы (правда, непонятно, что и где еще упадет).
А вот над скрытием надо думать. В принципе, одно другому не мешает :)

P.S. планов по добавлению подобного параметра я не видел.


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
http://aegidian.org/bb/viewtopic.php?f=2&t=3231&start=1845

New feature in tonight's build - one which people have occasionally requested for some time. There's a new "concealment" parameter to planetinfo.plist and JS equivalents. This determines how much information about the system is unknown. It's a number, and the following values are recognised

0 (default): all information visible
100 or more: F7 screen shows no information, economy/gov/TL/star colour not visible on chart either
200 or more: system name is not shown
300 or more: system vanishes entirely from chart, will not be used in route plotting, cannot be targeted by player (NPCs can still jump to it, though)


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
Это просто замечательная новость!
Можно не править исходники игры, а сосредоточиться на плагине.

Посещения планирую брать из Explorer's Club - заодно видно будет, где игрок дошел до края, а где не все исследовал.

P.S. а может уже и плагин такой есть?


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
В ночной сборке параметр "concealment" отлично работает - уже получилось начальную версию плагина получить.
Правда, возможно, посещенные системы придется самому хранить.
Explorer's Club может отмечать посещение системы после полета у поверхности планеты...

P.S. да, буду сам хранить - для посещенных планет буду отображать всю информацию, а для непосещенных - будут только имена на карте отображаться (т.е. для контрактов на доставку достаточно пролететь рядом).


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
То, что получилось можно посмотреть в теме Презентация наших ОХР


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
---Elite---

Зарегистрирован: 06.10.11
Сообщений: 563
Откуда: Москва
Пора заводить личный кабинет в авторской рубрике


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
ALEX_M:
Пора заводить личный кабинет в авторской рубрике

Мне? Да как бы уже...


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 01.10.12
Сообщений: 747
Откуда: Novosibirsk
to Max

Поздравляю с первой победой! Итак, что я обнаружил при первом тестировании.

1. Если начать игру сначала, то в меню по F4 присутствует информация о всех возможных для грузо-пассажирских перевозок планетах. И даже есть возможность заключить контакты, однако, добраться до этих планет естественно невозможно. Данная ситуация сохраняется до первого перелета в другую систему и save/load.
01.png


02.png


03.png


2. Новые (пока неоткрытые планеты) появляются в радиусе 7LY только после save/load.
3. При посещении новой (еще неоткрытой системы) сразу видна вся информация о ней. Если уж мы действительно, что-то открываем, то более правильно было бы скрывать эту информацию до стыковки с ГОС или какой-либо другой станцией.
3. При межгалактическом переходе видна вся карта новой галактики до стыковки с ГОС и save/load.
4. При продолжении игры из старого save и при установленном ранее Explorer's Club информация о посещенных ранее планетах отображается только в самом Explorer's Club и в меню по F5, но на карте все эти планеты скрыты, а те, которые находятся в радиусе 7LY считаются еще непосещенными. То есть в данном случае галактику придется исследовать заново.
Я сейчас только начал путешествие по пятой галактике. Проверка на совместимость с другими ОХР, сами понимаете, дело непростое и долговременное. Буду летать и периодически отчитываться о ходе тестирования.


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
vasig:
1. Если начать игру сначала, то в меню по F4 присутствует информация о всех возможных для грузо-пассажирских перевозок планетах. И даже есть возможность заключить контакты, однако, добраться до этих планет естественно невозможно. Данная ситуация сохраняется до первого перелета в другую систему и save/load.

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

vasig:
2. Новые (пока неоткрытые планеты) появляются в радиусе 7LY только после save/load.

Странно, проверял функционал под все основные платформы (Win / OS X / Ubuntu), проблем не встречал. При старте обновляется информация по всем системам, при посещении новой - только по ней и в пределах доступности от нее (все обновлять долго получается, боюсь на лимиты работы скрипта нарваться). На какой сборке происходит это? В логах что-нибудь есть (сразу после информации о загруженных плагинах, в конце)? Я проверял на самой последней ночной сборке.

vasig:
3. При посещении новой (еще неоткрытой системы) сразу видна вся информация о ней. Если уж мы действительно, что-то открываем, то более правильно было бы скрывать эту информацию до стыковки с ГОС или какой-либо другой станцией.

Что-то в этом есть, подумаю... В принципе, в мире существует радиообмен, так что сильно из истории не выбивается.
P.S. тогда и соседние планеты надо до стыковки скрывать, а это уже не хотелось бы делать - при прилете в новую систему очень приятно сразу посмотреть "а что еще открылось". А необходимость лететь до станции будет раздражать игрока.

vasig:
3. При межгалактическом переходе видна вся карта новой галактики до стыковки с ГОС и save/load.

Да, есть такая проблема. Исправлю.

vasig:
4. При продолжении игры из старого save и при установленном ранее Explorer's Club информация о посещенных ранее планетах отображается только в самом Explorer's Club и в меню по F5, но на карте все эти планеты скрыты, а те, которые находятся в радиусе 7LY считаются еще непосещенными. То есть в данном случае галактику придется исследовать заново.

Возможно, мой плагин инициализировался до Explorer's Club... ОК, Сделаю инициализацию чуть позже.

vasig:
Я сейчас только начал путешествие по пятой галактике. Проверка на совместимость с другими ОХР, сами понимаете, дело непростое и долговременное. Буду летать и периодически отчитываться о ходе тестирования.

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


  Re: ZeroMap - исследуй галактику самостоятельно!
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 01.10.12
Сообщений: 747
Откуда: Novosibirsk
to Max

Согласен с вами что с меню по F4 возиться не стоит, так как в начале игры все рвано никуда на полетишь особенно, разве что на соседнюю планету :)
Что касается "хочется посмотреть, а что там еще открылось" - это, конечно, на любителя. Мне, например, больше нравится отсутствие информации, чем ее избыток - есть над чем задуматься... Эти проходимцы уверяли меня что на Солнечной станции нехватка воды и продовольствия (чем я и затоварился), а оказалось, что там просто закончилась контрабандная водка из параллельной вселенной №002 (то есть запивать нечем) и что мне теперь делать с этой водой и консервами?" :(
А вот с новыми планетами нужно все-таки разобраться. Вот так выглядит новая открытая систсема до стыковки с ГОС и после нее.
04.png


А вот так это выглядит на самом деле, после save/load
05.png


А вот здесь это еще заметнее.
06.png


07.png


У меня Linux-Mint, но мне кажется, что дело не в ОС, хотя... компьютер - дело тонкое :)

Ну а теперь о грустном :( К великому моему сожалению первая же опробованная мною миссия стала Mission Imposible (для этого и Том Круз не понадобился). Теперь подробности.
"Tionisla Reporter" - с одной стороны очень простая миссия, не требующая "навороченного" корабля, но с другой стороны, требующая знания английского, хотя Google-Translate позволяет понять, что все-таки нужно сделать и самое главное как. Итак я на Тионисле.
01.png


После заключения контракта я должен отправиться на планету Biorle и найти скрытую планету Erehwon где-то западнее в 3LY (совсем рядом - пол бака топлива).
02.png


Но где же эта Biorle? A вот где!
03.png


Сами понимаете, что это совершенно секретная карта галактики и если кто-то у меня ее увидит...
Но я все-таки решился на этот полет, раз уж взял аванс :) Путь был очень долог! Признаюсь, я сбился с курса и в общем это вылилось в 12 гипер-переходав! А принимая во внимание, что каждый раз необходимо было стыковаться с ГОС, а потом save/load... И в результате ничего не произошло, то есть по прилете на планету Biorle дальнейшего развития миссии не произошло. Если вы обратите внимание на последнее фото, то заметите, что при полноценной карте, нужная планета помечается особой меткой. Между прочим это не единственное ОХР, которое так делает. Но так как планета была скрыта, то эта метка по-видимому не запомнилась, что и привело к невозможности выполнения миссии. Я, конечно, не проверял этого вторично, то есть возвратиться на Тионислу и вновь получить задание (наверное это невозможно), так как эту миссию можно повторить только при некоторых условиях, а я ее даже и не начал.
Складывается такая ситуация, что некоторые миссии (а может и их большинство), не могут быть выполнены пока не будет открыта вся галактика или, по крайней мере, та часть ее, которая необходима. Это может касаться не только миссий связанных с грузо-пассажирскими перевозками но и военными, но тут я не силен :( ALEX_M и stranger любители пострелять всяких там random ;)


Новая тема  Ответить  
Показать сообщения за:  Сортировать по:  









Список форумов / Создание OXP