Oolite
Имя
Пароль
 Запомнить
  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
stranger, правильно ли я понимаю, что System Makeup когда-то засеивал систему дополнительными планетами/спутниками, но сейчас этот функционал не используется? А используется только замена текстуры главной планеты.

Эксперименты показали, что достаточно обойти все системы при загрузке (startUp) и переходе в другую галактику (playerEnteredNewGalaxy(galaxyNumber)), чтобы заменить все текстуры планет в текущей галактике. А учитывая, что плагин SystemMakeup нигде в явном виде не используется, переписать весь плагин не должно составить труда...
Например, ТАК.

На сколько могу судить, сохранение отрабатывает без проблем - в save-файл ничего дополнительного не пишется.
P.S. и совместимость не страдает. Любой плагин может переопределить текстуру, как раньше делал со стандартной.


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

  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

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

System Makeup - это моя переделка System Redux, а это был такой швейцарский нож, в котором кроме здоровенного массива, в котором хранились ключи к номерам текстур всех 2048 планет, действительно были еще 4 планеты и 2 луны и даже кусок кода с глобальными настройками неба. Текстур было всего 16. Я понял, как расширить набор текстур до 2^n (32, 64, 128, 256) - номера формировались из ключей через операцию наложения маски и сдвига битов. Эти же ключи использовались для псевдорандомного выбора внешних планет и лун. Собственно, это Seventh показал, как сделать, а я понял, что можно сделать гораздо интереснее. Мне хотелось получить умный алгоритм выбора текстуры главной планеты с учетом ее паспорта, а не просто псевдорэндом, поэтому я сфокусировался на этой части задачи, а остальной кусок кода просто на время заглушил, пока не разберусь, как оно работает и для чего оно нужно. Результат вполне предсказуем. Я убрал из пакета то, что мог убрать без риска нарушить его работу - эти внешние планеты и луны, глобальные настройки неба, массив с ключами для генерации текстур. Но сам механизм их генерации не трогал.
Теперь я понимаю, что начиная с определенного уровня сложности прототипа (и с определенного уровня собственных знаний!) лучше делать все заново с чистого листа.
Ну что поделаешь, издержки дилетантского подхода, когда пилишь на коленках для себя и делишься тем, что получилось :(
Я сегодня уезжаю и вернусь во вторник. Тогда уже буду смотреть новый код более конкретно.
Но вообще результат намечается очень интересный.

P.S. Да, решение очень простое. Должно сработать. Все пакеты, которые как-то изменяют эти текстуры, должны отработать без проблем.


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 01.10.12
Сообщений: 747
Откуда: Novosibirsk
Новости "Tionisla Chronicle"

Жители Оониверсума очень обеспокоены! По несовсемпровереннымданным астро-инженерная корпорация "Stranger's World" готовится к новым преобразованиям Oониверсума. Как заявил глава корпорации Stranger - "... результат намечается очень интересный".

Также хотим отметить, что начавшееся тесное сотрудничество астро-инженерной корпорации "Stranger's World" с внезапно появившейся корпорацией "M.A.K.S.", которая уже представила ряд своих очень смелых и в то же время очень обещающих проектов, действительно может привести к глобальным изменениям в Оониверсуме.

По ещеболеенепровереннымданным Stranger выехал на несколько дней на "отдых", однако, предпалгается, что он намерен обозревать весь космос с помощью нового супер-телескопа на предмет "что еще можно тут переделать".

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

В редакцию уже поступает масса писем и электронных сообщений с вопросом - не шутка ли это? И что делать с приобретенной недвижимостью?
К сожалению, ответов на эти вопросы пока нет, нужно ждать возвращения Stranger'a.

В то же время редакция очень обеспокоена причастностью к этому делу Commander'a vasig. Если что пойдет не так - будет в кого кидать камни, а он ведь только просто нарисовал глобус...


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
Пресс-релиз "Tionisla Chronicle"

По совершеннонепровереннойинформации, наш корреспондент сумел выяснить, с кем встречался Commander Vasig!

В этом ему помогли такие сыскные агенства как "Хочу все знать", "Хотел бы я это видеть" и "Астрально-сыскное агенство мадам Трелони".

Собеседником совершеннонебезизвестного командора оказался астро-инженер GalCop.
Как мы сумели выяснить, темой обсуждения были вечные вопросы жизни, вселенной и всего такого:
  • Круглая ли земля или плоская и стоит на трех китах?
  • Почему киты столь разноцветные?
  • Почему китов давно не мыли?
  • Кто скатал китов в шар?
  • Что курил инженерный отдел GalCop?
  • 42?

Специальный выпуск "Tionisla Chronicle" даст ответы на такие вопросы как:
  • Как моют китов?
  • Когда GalCop избавится от китов в своей навигационной астро-карте?
  • Когда GalCop перейдет к реальным изображениям планет?
  • Где инженерный отдел взял травку?

Это и многое другое вы не узнаете в специальном выпуске "Tionisla Chronicle" (по решению комиссии GalCop по цензуре "Хочу это развидеть").


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
А если более предметно...

vasig:
Commander vasig уклонился от общепринятых политических и экономических вопросов, но на вопрос, как он себе представляет еще неоткрытые планеты?... просто взял и нарисовал тут же на салфетке обыкновенный абстрактный глобус!
Корпорация "M.A.K.S." рекомендует обновить мир до версии 1.85 (так называемой ночной сборки, доступной тут), где уже реализовано скрытие "лишних" планет (при использовании Zero Map или Here Be Dragons) вместе с скрытием описания систем (нет планеты - нет описания - нет проблем. И глобуса нет). Корпорация демиургов "Oolite DevTeam" приносит извинения за предоставленные неудобства.

P.S. исправление мира можно ожидать и в версии 1.84.1 (если ее выпустят).
P.P.S. Корпорация "M.A.K.S." приглашает Commander Vasig принять тестирование варианта решения заменив исходный файл system_makeup.js пакета System Makeup на предоставленный ранее вариант. Конечно, это не будет полноценным обновлением, а скорее допил с помощью напильника и кувалды обозначенных проблем (надеемся, главе корпорации "M.A.K.S." будет не сильно икаться). Но пока ждем окончательного вердикта и возможного обновления от корпорации "Stranger's World", можно начать сбор отзывов подопытных...эм...тестеров.


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

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

А почему бы не записывать в save номера текстур посещенных планет из System Makeup и Famous Planet? Ведь Explorer's Club это делает, тогда посещенная планета всегда будет выглядеть такой, какой она была при прошлом визите в эту систему, а что касается непосещенных, то возможны любые варианты. От полного скрытия и глобуса, до любой текстуры, кроме дефолтной. Ведь не все же будут обязательно ставить Zero Map или Here Be Dragons. Количество имеющихся текстур вполне достаточно. Запоминаются только некоторые, так что повторы нестрашны. К тому же в "большом" космосе, в отличии от оригинала, очень часто вход в систему происходит с теневой стороны планеты. Мне еще не нравится, что теперь отдаленные планеты находятся в очень узком секторе и практически в одном направлении. В Oolite 1.77 такого "парада" планет не наблюдалось.


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
vasig:
to Max
А почему бы не записывать в save номера текстур посещенных планет из System Makeup и Famous Planet? Ведь Explorer's Club это делает, тогда посещенная планета всегда будет такой, какой она была при визите в эту систему, а что касается непосещенных, то возможны любые варианты.
vasig, лично мне это не нравится по нескольким причинам:
  1. Что будет, если плагин с текстурой удалят? Способа определить наличие файла текстуры нет. Текстура заменится на стандартную для тех объектов, что без текстуры остались (некий аналог стандартной страницы ошибки HTTP 404). Шар при этом выглядит достаточно оригинально...
  2. Там не просто номер текстуры, а ее имя. А это занимает много места в Save-файле.
  3. Это будет отдельный плагин, который функционально повторяет Zero Map / Here Be Dragons + Explorer's Club и System Makeup / Famous Planet. Зачем, если работающий механизм скрытия уже есть? Пусть не в виде глобуса, а полного отсутствия системы и ее описания. И есть отдельный механизм изменения текстуры.
  4. В легенду игрового мира плохо ложится "изменение" текстуры. Навигационный софт настолько плох, что может показать планету только после полета на нее? Тут уж лучше или полное сокрытие или сразу правильная текстура.

vasig:
Мне еще не нравится, что теперь отдаленные планеты находятся в очень узком секторе и практически в одном направлении. В Oolite 1.77 такого "парада" планет не наблюдалось.
Тут возможны несколько вариантов:
  1. Ошибка в текущих плагинах
  2. Раньше использовались другие плагины для засева системы
  3. Исправили какие-либо ошибки Oolite (или добавили новых)
  4. Субъективно так кажется (лично у себя я такого эффекта не наблюдаю)


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 01.10.12
Сообщений: 747
Откуда: Novosibirsk
to Max
Вы меня убедили, так что "Let It Be"©


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Уф, накурили!

Честно говоря, я тоже прикинул, а не показывать ли текстуры планет только по факту их посещения. Писать в сэйв их имена незачем, достаточно проверять массив, который пишет в сэйв Explorer's Club. Поэтому второе возражение Макса "это займет много места в сэйве" снимается. Здесь, однако, возникает следующая проблема: геймер может настроить регистрацию посещений Explorer's Club на любой из трех уровней: визит в систему пролетом, стыковка с главной станцией, посадка на главную планету. Но любоваться на лысую планету с орбиты как-то нелогично, тем более что возможна ситуация, когда геймер в системе задерживаться надолго не планирует и возможности увидеть эту текстуру не на экране F7, а с подлета, у него не будет.
Четвертое возражение
В легенду игрового мира плохо ложится "изменение" текстуры. Навигационный софт настолько плох, что может показать планету только после полета на нее? Тут уж лучше или полное сокрытие или сразу правильная текстура.

можно трактовать двояко. Если это то же, о чем я сказал чуть выше, тогда да - вопрос снимается и возражение остается в силе с уточнением: никаких изменений текстуры, когда геймер уже в системе! А вот пока он систему еще не навестил - запросто может быть и абстрактный глобус при полном паспортном инфо в пределах 7 LY. Это как раз в русле игровой логики: можно иметь исчерпывающую информацию об орбитальных параметрах небесного тела и его физических свойствах и не иметь представления о том, как выглядит его поверхность.
Самое главное, в чем я согдасен с Максом: плагины System Makeup + Famous Planets ST + Explorer's Club + Here Be Dragons / Zero Map должны работать автономно в любой комбинации. И вот как раз с этим пока проблема не решена.
В Famous Planets ST отображение удаленных систем по умолчанию тоже отключено. Возникает абсурдная ситуация: радикально переписанный плагин System Makeup сам по себе работает, вопросов нет, но он кладет на удаленные Знаменитые Планеты свои текстуры, которые Famous Planets ST замещает на свои только во время визита в систему. Поэтому следующим шагом должна быть синхронизация этих плагинов.
Чтобы избежать проблемы возможного конфликта процедур при запуске, я решил попробовать дописать в скрипте System Makeup обработку Знаменитых Планет (в этом случае скрипт Famous Planets ST в перспективе тоже крайне упрощается).
Код не оптимизирован - правильно будет проверять Знаменитые планеты не во вложенном цикле, а вынести их обработку во внешний цикл. Но суть изложенной ниже проблемы от этого не меняется.

Код:
this.startUp = function ()
    {
    this.playerEnteredNewGalaxy(galaxyNumber);
    }

this.playerEnteredNewGalaxy = function (galaxyNumber)
    {
    var w = worldScripts.Famous_Planets;
    var fpl = w.planetList[galaxyNumber].length;
    for (var i = 0; i < 256; i++)
        {
        var info = System.infoForSystem(galaxyNumber, i);
        var planetMakeup = $home_planet_makeup(info);
        if (info.techlevel > 13)    // ultra-high-tech system
            {                 
            planetMakeup = 128;     // gigapolice texture
            }
        info.texture = ('home_planet' + planetMakeup + '.png');
        // test Famous Planets match
        for (var j = 0; j < fpl; j++)
            {           
            var fpNumber = w.planetList[galaxyNumber][j];
            if (fpNumber == i)
                {
                info.texture = info.name + ".png";
                }
            }
        }
    }


К сожалению, затея не сработала. В логе появляется сообщение
Код:
[script.javaScript.exception.unexpectedType]: ***** JavaScript exception (System Makeup 3.0.0): TypeError: w.planetList is undefined

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

Код:
this.shipLaunchedFromStation = function()
    {
    var w = worldScripts.Famous_Planets;
    var fpTag = w.planetList[galaxyNumber].length;
    var message = fpTag;
    player.consoleMessage("\n\n\n\n\n\n\n\n\n\n Famous Planets in sector: " + message,5);
    }


работает без проблем. Идентификация массива planetList из внешнего пакета Famous Planets ST, получается, сработала при вызове из события this.shipLaunchedFromStation, но почему-то не происходит при инициализации this.startUp.


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
stranger, проблема с Famous Planets ST в startUp говорит о том, что он инициализируется позже. И это вполне нормально. В startUpComplete уже все скрипты доступны.

Собственно почему о Famous Planets ST печется System Makeup? Это должен делать сам Famous Planets ST и соответствующий код должен быть именно в нем.
Собственно говоря можно его добавить, не трогая код "оригинального" плагина. Или вообще удалить практически весь "оригинальный" код.

В общем, не надо в System Makeup добавлять костыли для Famous Planets ST. Famous Planets ST должен сам о себе заботиться. С костылями потом сложно отлаживать и понимать что там вообще творится (кто сам догадается, что текстуры Famous Planets ST проставляются в System Makeup?).


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

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

Согласен, если обработчик вписать в скрипт Famous Planets ST и запускать через startUpComplete, это будет правильнее (и будет соблюден принцип автономности пакетов).
Из нынешнего скрипта в Famous Planets ST можно оставить только запуск аудиотреков в 10 системах (эту фичу геймер всегда сможет отключить при желании).

P.S. Схема сработала, Famous Planets ST синхронизирован.
Осталось откорректировать кусок кода в PlanetLand, где ландшафт привязан к текстуре главной планеты - и можно тестировать пакеты в игре.


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
stranger, если вписывать в сам Famous Planets ST, то лучше запускать все-таки в startUp. Потому как в startUpComplete популятор уже отработал и согласно API текстуру менять нельзя (хотя текстура главной планеты успешно меняется даже в полете).


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Max:
stranger, если вписывать в сам Famous Planets ST, то лучше запускать все-таки в startUp. Потому как в startUpComplete популятор уже отработал и согласно API текстуру менять нельзя (хотя текстура главной планеты успешно меняется даже в полете).

Проверил именно в варианте startUpComplete, текстура подставляется без проблем.
В полете текстура главной планеты меняется только по событию this.shipWillExitWitchspace. Может быть, конечно, сейчас что-то изменилось.


  Re: Stranger's World: замечания и предложения
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
stranger, согласно документации текстура не должна меняться после того, как отработал популятор. Хотя сейчас я нашел немного другую формулировку:
texture : String (read/write)
The name of the texture file (diffuse map) used by the planet. This may only be assigned to during the shipWillExitWitchspace and shipWillLaunchFromStation events.


  Re: Stranger's World: замечания и предложения
Не в сети
---Elite---
Аватар пользователя

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

Ну, нельзя. Но работает :)
Я слегка опасаюсь, что если пустить запуск пакетов на самотек, может возникнуть конфликт между текстурами, определенными System Makeup и Famous Planets. А так Famous Planets кладет свои текстуры вслед за System Makeup.
Правильнее, конечно, прописать запуск startUp Famous Planets после startUp System Makeup явно. Завтра с утра на свежую голову прокурю EliteWiki, там я видел, как это сделать.


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









Список форумов / Обсуждение игры и OXP