Oolite
Имя
Пароль
 Запомнить
  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 02.12.12
Сообщений: 795
stranger:
...Что мне удалось узнать нового о генерации карт в Элите/Оолите...

Прочитал с интересом - но ничего не понял, вернее, понял только одно - куда очень далеко чёрт Вас понёс, stranger! :)

Когда-то давно я пытался изучить язык программирования Ассемблер, и про "битную ротацию" и про "дампы памяти" только там и слышал, а больше нигде не довелось. :) У меня получались небольшие ассемблерные заплатки к языку более высокого уровня, и они очень хорошо работали - но сам я так до конца и не понимал их принцип работы. :)

Кстати, не мудрено, что программисты Elite выжимали максимум возможного - ведь DOS был не Windows, там возможности были очень ограничены буквально во всём.

Я подозреваю, что изначально там было очень много изящных решений - в частности, кратность 8 на это указывает, и число 256 далеко не случайное (кстати, День программиста - это 255-ый день в году, считая 1 января нулевым днём нового года :) ) но, к сожалению, оценить всего этого не смогу - моих знаний для этого не хватает.

Объясните же мне - что означает слово "семечко" на Вашем жаргоне? И зачем Вам понадобилось совершенно новые галактики (точнее, секторы галактики) делать?


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Tch:
Кстати, не мудрено, что программисты Elite выжимали максимум возможного - ведь DOS был не Windows, там возможности были очень ограничены буквально во всём.

Владимир Петрович, так ведь Элита даже не под DOS была написана, а под 8-битные машины с памятью 48K, из которых реально на программу оставалось только 42K! Ну то есть типа Спектрума. И вот тогда я испытал глубокий культурный шок: я не мог понять, как туда запихнули так много. Только потом узнал про семя и все остальное.
Семя - это исходное число, которое скармливают (псевдо)рэндом-функции, а она уже его дальше преобразует. В Элите для Спектруме просто не было места для массива данных по 2048 системам на 8 картах - все это, включая имена систем, создано из шести байт семени.
А уникальная карта мне понадобилась именно из-за бережного отношения к канонам: проект, который где-то подспудно рисуется (все же есть надежда, что здоровая лень пересилит) - это именно спин-офф на движке Оолита. Там, возможно, даже старых имен не останется. Но вот сегодня поразмыслил и понял - пока не готов.
Кстати, спин-офф - это вовсе не обязательно плохо. Это, говоря по русски, производная работа, где с идеями/персонажами/объектами исходника можно вольно обращаться невзирая на каноны.


  Re: вопросы опытным
Не в сети
Dangerous

Зарегистрирован: 31.03.11
Сообщений: 106
stranger:
Ну, цитируя Seventh'а, сам спросил - сам и ответил.
Что мне удалось узнать нового о генерации карт в Элите/Оолите:

1. Дамп каталога систем на активной карте был в ранних версиях Оолита - помню точно. Сейчас, похоже, эту опцию разработчики убрали, так как обычному юзверю и даже разработчику OXP она в принципе не нужна - как совершенно верно понимает ПЕНСИОНЕР, вся информация о системах есть на Elite Wiki (и теоретически, зная алгоритм, можно рассчитать результат работы измененного семени). В принципе решаемо через скрипт, но это уже неактуально. Почему - объясню ниже.
2. Способов изменить семя через OXP / JavaScript нет - хардкорная процедура в теле программы все эти манипуляции обходит и возвращает всё к дефолтным настройкам.
3. Единственная возможность поменять семя, не забираясь в саму программу - это таки редакция строки galaxy_seed в oolite_save, так как карты секторов G2-G8 генерируются из дефолтного семени путем его 8-битной ротации и полученные числа в сэйве записаны. Но этот способ мало того что не кошерный, проблем он тянет за собой кучу. Самые очевидные - для полученных таким образом карт отредактированный файл planetinfo.plist не работает. Не работает таже ряд OXP, скрипты которых привязаны к дефолтным картам.
4. Способ расширить диапазон генерируемых карт до 16 и более есть и можно заставить OXP работать нормально, но это для вконец упоротых хардкорщиков. Я на такую глубину не полезу.

Вчера вечером на скорую руку рихтанул один из сэйвов. Карта получилась очень интересная и топологически связанная, но дальше все как и предупреждали знающие люди. OXP System Redux, к примеру, работает - ему нужен только номер системы. А OXP Distant Suns не работает - он свои кастомизированные записи в planetifo.plist не видит.
В общем, оставил я эту идею. Буду мастерить песочницу на одной из дефолтных карт.

P.S. Ходят слухи, что при работе над исходной Элитой в остальном удачное семя пришлось поменять, потому что при тестовом прогоне на одной из карт обнаружилась система Жопа (Arse).

Посмотрел на форуме в Elite Wiki на ветке Galaxy seeds and system properties ? Это жутко интересно, как получить почти нереальный мир с 2-мя млрд карт!!! С ОХР , дающие бороздить эти просторы через червоточины. Во-как!!!


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
ПЕНСИОНЕР:
Посмотрел на форуме в Elite Wiki на ветке Galaxy seeds and system properties ? Это жутко интересно, как получить почти нереальный мир с 2-мя млрд карт!!! С ОХР , дающие бороздить эти просторы через червоточины. Во-как!!!

Она самая.
Но там затык, который через OXP не обходится. Надо лезть в саму программу и менять кусок кода. Там расписали, куда лезть и что менять, но я туда не полезу. Во-первых, боюсь, во-вторых, в программе для Mac OS все немножко по другому устроено и я просто не знаю, с какой стороны за это взяться. Я на такую глубину никогда не нырял. Ресурсные файлы из EV Nova, было дело, вытаскивал, но там все было намного проще.


  Re: вопросы опытным
Не в сети
Dangerous

Зарегистрирован: 31.03.11
Сообщений: 106
stranger:
ПЕНСИОНЕР:
Посмотрел на форуме в Elite Wiki на ветке Galaxy seeds and system properties ? Это жутко интересно, как получить почти нереальный мир с 2-мя млрд карт!!! С ОХР , дающие бороздить эти просторы через червоточины. Во-как!!!

Она самая.
Но там затык, который через OXP не обходится. Надо лезть в саму программу и менять кусок кода. Там расписали, куда лезть и что менять, но я туда не полезу. Во-первых, боюсь, во-вторых, в программе для Mac OS все немножко по другому устроено и я просто не знаю, с какой стороны за это взяться. Я на такую глубину никогда не нырял. Ресурсные файлы из EV Nova, было дело, вытаскивал, но там все было намного проще.

Как сказал знаменитую фразу Ю. Никулин - "Будем искать!"
Представляешь идею, когда будет создана сеть в OOLITE , а также найден способ генерации всех возможных галактик(2000000000), ты создаёшь свой мир в одной из 2000000000 и к тебе, совсем случайно, кто-то залетел из сети. Вот так встреча,- как нашествие инопланетян в наше время.


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 01.10.12
Сообщений: 747
Откуда: Novosibirsk
ПЕНСИОНЕР:
...Представляешь идею, когда будет создана сеть в OOLITE , а также найден способ генерации всех возможных галактик(2000000000), ты создаёшь свой мир в одной из 2000000000 и к тебе, совсем случайно, кто-то залетел из сети. Вот так встреча,- как нашествие инопланетян в наше время.

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


  Re: вопросы опытным
Не в сети
Dangerous

Зарегистрирован: 31.03.11
Сообщений: 106
vasig:
ПЕНСИОНЕР:
...Представляешь идею, когда будет создана сеть в OOLITE , а также найден способ генерации всех возможных галактик(2000000000), ты создаёшь свой мир в одной из 2000000000 и к тебе, совсем случайно, кто-то залетел из сети. Вот так встреча,- как нашествие инопланетян в наше время.

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

Я, в смысле, только поцеловатья!


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
ПЕНСИОНЕР:
Представляешь идею, когда будет создана сеть в OOLITE , а также найден способ генерации всех возможных галактик(2000000000), ты создаёшь свой мир в одной из 2000000000 и к тебе, совсем случайно, кто-то залетел из сети. Вот так встреча,- как нашествие инопланетян в наше время.

Seventh уже писал на эту тему. Сетевой игры не будет потому что а) нужен сервер б) сервер должен окупаться, и тогда это будет уже коммерческий проект и в) как только дело пойдет на лад, придут злые копирасты и начнут тупо хотеть денег.


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 02.12.12
Сообщений: 795
Да толку-то, что 2 млрд. - всё равно это изначально пустые шарики около солнца - Миры_По_Умолчанию. :(

Чтобы привести их в божеский вид, надо автомат приличный мастерить, который будет их правильно обустраивать, чтобы они разнообразные были.

Ладно, ПЕНСИОНЕР, не горюйте, скоро я ещё свой Tch_Planet_Fall.oxp выложу и Tch_Deep_Space.oxp- и тогда будете скрытые Миры у меня на полигоне искать. :)

Можно будет и среди 20 планет полигона интересное заныкать, так что не сразу и найдёшь :)


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Tch:
Да толку-то, что 2 млрд. - всё равно это изначально пустые шарики около солнца - Миры_По_Умолчанию. :(
Чтобы привести их в божеский вид, надо автомат приличный мастерить, который будет их правильно обустраивать, чтобы они разнообразные были.

В принципе System Redux однообразные шарики раскрашивает неплохо. Расширить пакет до 256 текстур - и в сочетании с Orbits и с Distant Suns эффект deja vu будет навещать лишь изредка.
Но вот в самом деле - нужны ли 2 миллиарда новых миров? Я по своему неуемному желанию все интересное опробовать и за пределы второго сектора все не могу выбраться.
Буржуи на ветке форума Galaxy seed задачу ставят более скромную - расширить Оониверсум до 16 карт, обсуждают три альтернативных пакета. В Оолите 1.77 вряд ли будет реализовано. И вполне вероятно, так и останется бла-бла-бла.
Что бы я хотел иметь - так это удобный инструмент для создания собственных карт. Которые можно обустраивать по своему разумению и делать в них собственные миссии.

P.S. Вот занесли Вы мне инфекцию в мозг со своим полигоном. Чешется.


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 02.12.12
Сообщений: 795
stranger:
...Что бы я хотел иметь - так это удобный инструмент для создания собственных карт. Которые можно обустраивать по своему разумению и делать в них собственные миссии.


Да, и такой бы нам инструмент не помешал тоже...

stranger, а правду говорят, что можно без гипер-прыжка от звезды до звезды долететь?

Что-то у меня сомнения в этом... Мне кажется, что проще запрограммировать условное расстояние, чем создавать такую реальную Вселенную...

А Вы знаете, что программно сделать гипер-прыжок - проще простого? Можно прямо в звёздной системе - нырнул у Главной планеты, а вынырнул уже около Солнца :) У меня случайно получилось, когда свой пакет гравитации писал :)

stranger:
...P.S. Вот занесли Вы мне инфекцию в мозг со своим полигоном. Чешется.


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

А Вы на сколько звёзд свою "песочницу" хотели бы видеть?


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Tch:
stranger, а правду говорят, что можно без гипер-прыжка от звезды до звезды долететь?
Что-то у меня сомнения в этом... Мне кажется, что проще запрограммировать условное расстояние, чем создавать такую реальную Вселенную...

Слышал такую быличку - что, мол, в какой-то из клонов или переделок Элиты можно было гирьку на j положить и за месячишко до ближайшей системы добраться.
Но думаю, быличка и есть. Координаты систем сгенерированы в целых числах, расстояние между ними тоже вычисляется в целых, геймер видит конечный результат, умноженный на 1/10 (как и в случае с кредами). Думаю, локальные системы координат, в которых корабль перемещается на джамп-драйве, между системами никак не сопрягаются.
Есть ведь еще одна скрытая система координат, в которую геймер попадает лишь изредка - она привязана к центру отрезка между парой систем. Задается указанием их номеров:

<key>interstellar: 0 7 129</key> - отрезок между Lave (7) и Zaonce (129) в Первом секторе.

И технически можно, наверное, задать (256*255)/2 точек для каждой карты, но в подавляющее большинство из них попасть будет невозможно, так как они находятся за пределами дальности прыжка. Но даже если принять навскидку среднюю связность карты n = 4, все равно имеем (256*4)/2 точек, в которых можно размещать объекты! Потенциал этой скрытой системы координат практически ни одно OXP не использует за редкими исключениями.

Насчет моей песочницы - буду делать на одной из карт, переформатирую дефолтные параметры систем практически полностью, но относительно детально проработаю примерно с десяток узловых точек (может быть, пару десятков) миссии. Но мне надо еще очень многому научиться, прежде чем браться за ее дизайн и движок.
И сейчас у меня первоочередной вопрос вот какой: можно ли через скрипт на старте миссии принудительно пересадить игрока на голую дефолтную Кобру с 100 кредами в кармане и без накопленных непосильным трудом апгрейдов? А потом по ее успешному завершению вернуть изъятый на время корабль со всеми обвесами, поблагодарить от имени Верховного Главнокомандования и от Дегенаралиссимуса лично и вручить честно заработанный мешок пряников. Технически такое возможно, что скажете?
Потому что это будет опасный мир и игрок на Супер Кобре с кучей обвесов будет иметь слишком большой гандикап.


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 02.12.12
Сообщений: 795
stranger:
...И сейчас у меня первоочередной вопрос вот какой: можно ли через скрипт на старте миссии принудительно пересадить игрока на голую дефолтную Кобру с 100 кредами в кармане и без накопленных непосильным трудом апгрейдов? А потом по ее успешному завершению вернуть изъятый на время корабль со всеми обвесами, поблагодарить от имени Верховного Главнокомандования и от Дегенаралиссимуса лично и вручить честно заработанный мешок пряников. Технически такое возможно, что скажете?
Потому что это будет опасный мир и игрок на Супер Кобре с кучей обвесов будет иметь слишком большой гандикап.


Вот, разыскал, по-моему вот здесь что-то написано про замену корабля игрока: http://wiki.alioth.net/index.php/Oolite ... eplaceShip

Но это будет в тестируемой версии 1.77

Самому скриптом менять корабль у игрока не доводилось. Главную станцию изменял - так там вообще пришлось идти такими кривыми путями - несколько функций специально писал для этого. :(

Смена корабля связана с покупкой корабля в Звездолётном Центре - значит, надо искать какие-то скрипты, связанные с покупкой нового корабля. Надо посмотреть ОХР, где покупают-продают корабли - там и должен быть кусок нужного кода, который можно переделать...


  Re: вопросы опытным
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Tch:
Смена корабля связана с покупкой корабля в Звездолётном Центре - значит, надо искать какие-то скрипты, связанные с покупкой нового корабля. Надо посмотреть ОХР, где покупают-продают корабли - там и должен быть кусок нужного кода, который можно переделать...

Там как раз все просто. Новый корабль под своим уникальным именем объявляется в shipyard.plist, там же прописывают его цену, базовую комплектацию, набор дополнительных обвесов и прочее. Покупку/продажу корабля и проверку совместимости установленного оборудования делает процедура в самой программе (OXP обрабатывают только дополнительное оборудование).


  Re: вопросы опытным
Не в сети
Archangel
Аватар пользователя

Зарегистрирован: 21.11.09
Сообщений: 511
Я это делал. Кладовская версия на Спеке


stranger:
Tch:
stranger, а правду говорят, что можно без гипер-прыжка от звезды до звезды долететь?
Что-то у меня сомнения в этом... Мне кажется, что проще запрограммировать условное расстояние, чем создавать такую реальную Вселенную...

Слышал такую быличку - что, мол, в какой-то из клонов или переделок Элиты можно было гирьку на j положить и за месячишко до ближайшей системы добраться.


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









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