Обсуждение терраформинга

Самостоятельная настройка параметров игры и создание модификаций.
Аватара пользователя
Artos
Frigate
Сообщения: 533

Обсуждение терраформинга

Сообщение Artos » 18 окт 2018, 22:03

Ufnv, большое спасибо за оперативность с новым патчем! Теперь есть чем занять мозги&руки... ;)
Просьба пояснить применение новой функции UFChangePlanetType, а конкретно что/когда нужно использовать в качестве 2-го аргумента "int Reason" при её вызове?
Аватара пользователя
Ufnv
Senior Developer
Сообщения: 1188

Патчи к игре.

Сообщение Ufnv » 18 окт 2018, 22:41

Reason:

0 - Nova
1 - Destroy
2 - Degrade
3 - Upgrade

В какой именно тип делается Upgrade или Degrade, прописывается в PlanType.ini так же как сейчас Nova/Destroy.

Например, Degrade "Exhausted2"
Аватара пользователя
Artos
Frigate
Сообщения: 533

Патчи к игре.

Сообщение Artos » 18 окт 2018, 23:53

Еще раз спасибо за патч и ответ.
Предложение: Может быть стОит внести в файл МодКит'а (const.a) что-то типа:

Код: Выделить всё

// ChangePlanetType [+]added in v1.06g
def const cpNova = 0
def const cpDestroy = 1
def const cpDegrade = 2
def const cpUpgrade = 3
- чтобы не в "голове" держать, а использовать как штатные константы?!
Аватара пользователя
Artos
Frigate
Сообщения: 533

Патчи к игре.

Сообщение Artos » 06 ноя 2018, 09:20

Ufnv, отказывается работать функция userfunc UFChangePlanetType(int Handle, int Reason)
1. Внес необходимые типы для Upgrade или Degrade в файл PlanType.ini (добавив строки сразу после Nova/Destroy);
2. Восстановил планетарную политику TerraformingProject (в простейшем виде);
3. Запускаю политику -> стартует таймер... По окончании запускается функция UFChangePlanetType(PlanetHandle, 3) и ... НИЧЕГО не происходит. Тип планет остается неизменным. Хотя вроде бы и окно подтверждения изменения типа планеты должно появляться, судя по наличию ? Yes_ : No_ внутри функции...

Для проверки попробовал использовать мод "Star System Destroyer", в котором вместо UFDestroyPlanet(PlanetHandle) попробовал использовать UFChangePlanetType(PlanetHandle, 2) или UFChangePlanetType(PlanetHandle, 3) - результат нулевой, т.е. планеты НЕ деградируют и не апгрейдятся. :(
Что делаю не так?

---
Дополнительно вопрос:
Как все же при бомбардировке планет воспользоваться функцией деградации? Ведь нигде в доступных кодах ModKit'а, связанных с бомбардировками, нет доступа к PlanetHandle, чтобы передать этот аргумент в UFChangePlanetType(PlanetHandle, 2).
Аватара пользователя
Artos
Frigate
Сообщения: 533

Обсуждение терраформинга

Сообщение Artos » 14 ноя 2018, 06:00

(отсюда)
Veshnyak писал(а):Источник цитаты Artos писал:
Источник цитаты: Возвращаясь к теме мода терраформинга, то этот процесс предполагает снос всех планетарных строений (кроме кол.модуля) и потерю почти всего населения.


Снос понятно, на месте гор стали моря. Но население... Неожиданный ночной терраформинг без предупреждения? Как минимум свое население должно свалить, они же не идиоты. Можно заставлять игрока увозить всех на транспортах, но кмк это лишний шаг, микроменеджмент пусть идет лесом. Еще как вариант можно оставлять (в смысле пускать в расход, оставлять на планете) только неассимилированных, типа не жалко.
Т.к. пока не починена функция апгрейда планет ( UFChangePlanetType), то не могу сказать точно, будет ли она работать также как функция UFDestroyPlanet, которую пока использую для терраформинга, поменяв в настройках PlanType.ini строку с Destroy на нужный мне тип для трансформации. Или будет работать иначе... Скорее всего будет апгрейдить аналогично, т.е. планета подменяется на девственно чистую с новым типом. Даже приходится заново колонизировать(!).

Veshnyak писал(а):Источник цитаты Artos писал:
Источник цитаты: Терраформинг предполагается двух типов: планетарной политикой и орбитальным модулем.


В чем принципиальное отличие?
Как пока предполагаю и делаю (вкратце):
а) Терраформинг планетарной политикой
1. Игрок принимает планетарную политику, которая требует ежемесячных минеральных ресурсов и почти всей производительности планеты. Предполагается, что вся планета трудится над некими сооружениями/шахтами/...
2. От производительности планеты (обычных молоточков) зависит время требуемое до заключительного этапа терраформинга. Если на планете куча заводов и орб.фабрик - время значительно сокращается. Т.е. работает формула: Требуемое кол-во молотков на весь процесс -(минус) Ежемесячная наработка молотков (с учетом бонусов). Как только все выработается - запускается процесс терраформинга.
3. Перед запуском терраформинга планеты (за месяц) игрок получает предупреждение и... может быть все же сделаю возможность эвакуировать население (кроме чужих расе игрока аборигенов). Игрок может сам решить что порушить/эвакуировать...
4. Сразу после смены типа терраформируемой на ней восстанавливаются все производственные постройки (колонии/заводы/орбиталки). Пока не решил, будут ли восстанавливаться научные постройки и шахты. Вероятно должны оставаться. Гидро- иль морские фермы точно уничтожаются. Разные танки и прочая наземная техника - под нож. Все кол-во населения (расы игрока) восстанавливается на планете. Неассимилированные аборигены пока будут исчезать, т.к. вычислять их кол-во на конкретной планете потребует еще некоторое кол-во строк кода, а хочется опробовать в игре хотя бы без них. ;)
Т.о. игрок получает по сути чистую, но(!) обустроенную планету без (гидро-/морских) ферм, но с новыми запасами минералов и новыми бонусами.

б) Терраформинг орбитальным модулем
Задуман в дополнение к моду "Разрушитель планет", т.е. как способ задействовать в игре "AsteroidBelt" (Пояс астероидов). Т.е. процесс не требует колонизированной планеты, а может производиться над любой планетой (ну может быть за исключением планетоидов).
1. Игроком изучается соотв.технология, которая дает возможность строить летающую терраформирующую платформу (на базе "Боевой платформы") с модулем терраформинга. Затраты и время постройки очень большие - т.е. это и определяет основное время требуемое на подготовку самого процесса терраформирования планет.
2. Построив платформу игрок направляет её к нужной звезде. Платформа должна быть тихоходной, т.е. скорость полета мала.
3. В созвездии игрок выбирает нужную ему планету или пояс астероидов и, имея значительный требуемый запас минералов, запускает процесс.
4. Все, что было на планете уничтожается, точнее исчезает прежняя планета и появляется новая, девственно чистая, с новым типом и новыми свойствами. Игроку остается только её заново колонизировать.
Примечание: Возможно сделаю (если получится), что платформа превращается в колониальный модуль, тем самым колонизируя планету для игрока.
---
Т.о. основное отличие в способах терраформинга:
- а) за счет производства самой же терраформируемой планеты, а значит время для "богатых" на фабрики планет будет значительно меньше чем для "бедных".
- б) за счет орбитального производства какой-то планеты игрока с индустриальной экономикой + запас минеральных ресурсов + время полета до целевой планеты.
Вариант а) по сути готов в черновом варианте и жду починки функции UFDestroyPlanet от Владимира...
Если удастся сделать терраформинг для ИИ-рас (это очень не скоро), то вариант б) может сильно разнообразить игру и борьбу с терр.платформами и/или за терраформируемые планеты. А вариант а) усилит интригу игры, т.к. игроку будет неведомо (как правило) где/что терраформируется у других рас.
Аватара пользователя
Veshnyak
Destroyer
Сообщения: 903

Обсуждение терраформинга

Сообщение Veshnyak » 14 ноя 2018, 11:53

Мне нравиться. Примерно так и представлял.
Только не надо превращать в колониальный модуль платформу. Затраты и время постройки указаны для неё большие - дешевле будет сделать обычный колонизатор.
И еще. Насколько понял - платформа будет строиться долго, сам процесс преобразования быстрый? Он же тоже должен занимать значительное время.
Аватара пользователя
Artos
Frigate
Сообщения: 533

Обсуждение терраформинга

Сообщение Artos » 14 ноя 2018, 13:02

Выше в сообщении ошибся с указанием ошибочной функции, нужно чинить UFChangePlanetType (!), но Владимир что-то молчит...
---
Veshnyak писал(а):Источник цитаты Только не надо превращать в колониальный модуль платформу.
Тут есть заковыка: построив одну платформу игрок может себе кучу планет терраформировать... т.к. пока предполагаю, что основное время на подготовку терраформинга идет именно на постройку платформы, а сам процесс (при нажатии игроком кнопки действия) краток.
Veshnyak писал(а):Источник цитаты платформа будет строиться долго, сам процесс преобразования быстрый?
П сути в кодах нажатие кнопки "Терраформировать планету" просто запускается обработчик события и сам процесс может быть мгновенным. Но можно запустить таймер, по окончанию которого собственно и произойдет "подмена" планеты. Но(!) тут уже не знаю, удастся ли отключить управление платформой от игрока, т.к. он может полететь от планеты дальше терраформировать...
Veshnyak писал(а):Источник цитаты Он же тоже должен занимать значительное время.
Хм, вообще то согласен, но(!) вспоминаем (иль смотрим) фильм "Через тернии к звездам" (~1:45:00 и ~2:17:25), в котором корабль ассенизаторов терраформирует атмосферу планеты по сути за часы. Т.о. пустынные/загрязненные/токсичные могут быстро терраформироваться.
В общем пока ориентируюсь на некий короткий таймер, если не удастся отключить управление платформой от игрока. Если же удастся - то растягивать можно будет сколь душе угодно. Сюда же и затрачиваемые ресурсы можно будет перераспределить.
Аватара пользователя
Veshnyak
Destroyer
Сообщения: 903

Обсуждение терраформинга

Сообщение Veshnyak » 14 ноя 2018, 14:05

Artos писал(а):Источник цитаты Тут есть заковыка: построив одну платформу игрок может себе кучу планет терраформировать...
Ну тогда несколько вариантов
1. Сделать очень дорогую стоимость. Что бы не терраформировали всё подряд.
2. Делать посадку. Платформа создает здание в списке для постройки (или автоматом запускает постройку здания), в нем уже и время и ресурсы, сама исчезает. После окончания "взлетает", появляется корабль, управление отдается игроку обратно. Насколько помню, можно было командами и создать и уничтожить корабль. О, даже не здание, а типа орбитального завода, на орбите. Более логично.
Artos писал(а):Источник цитаты Т.о. пустынные/загрязненные/токсичные могут быстро терраформироваться.
Кстати, кто в кого переделывается?
Аватара пользователя
Artos
Frigate
Сообщения: 533

Обсуждение терраформинга

Сообщение Artos » 14 ноя 2018, 15:08

Veshnyak писал(а):Источник цитаты кто в кого переделывается?
Пока делаю так:
► Показать
Примечание: От типа исходной планеты будет зависеть потребное количество затрат молоточков на процесс терраформирования - т.о. будет и время варьироваться для разных типов планет.
Veshnyak писал(а):Источник цитаты 2. Делать посадку. Платформа создает здание в списке....
Вряд ли такая заморочка с исчезновениями/появлениями летающей платформы и здания будут поняты игроками, да и на астероиды некуда садиться(!) и негде строить! ;) А если захочется терраформировать "чужую" планету? ... ;)

Есть ещё один вариант: Игрок должен найти разбросанные по вселенной контейнеры с созданной когда-то древней расой Прионов платформой терраформинга + некие скрижали с неведомой никому технологией (это уже затянет возможность терраформирования планет как минимум до середины игры). Собрав платформу (аналогично прионовскому кораблю) игроку потребуется отремонтировать её и загрузить много-много минералов, далее разобрать и загрузить в транспорт - можно отправляться к целевой планете. По прибытии, платформа вновь собирается, становясь орбитальной стационарной(!) станцией (что-то типа: смеси орб.верфь + корабль с ремонтным модулем) - вот эта орбиталка с её производительностью и будет терраформировать планету, аналогично варианту а), но с орбиты.
По окончанию терраформирования орбиталку нужно будет вновь разбирать, транспортировать, ремонтировать и загружать ресурсами. Ну и сам ресурс на количество терраформированных планет для платформы можно будет установить в 2...3 штуки, после чего платформа разрушается.
Аватара пользователя
Veshnyak
Destroyer
Сообщения: 903

Обсуждение терраформинга

Сообщение Veshnyak » 14 ноя 2018, 16:20

Горячие, холодные, карликовые и тп думаю лучше деградировать до карликовой, а "nova" сделать до астероидного пояса. Если "=" - это значит ничего не происходит, так?
Artos писал(а):Источник цитаты захочется терраформировать "чужую" планету?
Благотворительность? Или если в худшую сторону, тогда легче просто разрушить
Artos писал(а):Источник цитаты найти разбросанные по вселенной контейнеры с созданной когда-то древней расой Прионов платформой терраформинга
Хороший вариант. Только тогда нужно добавить после сборки платформы и исследование соответствующей технологии, как с Богованами. Чтобы можно было потом свою построить. Ну и "загрузки ресурсами" же нет. А было бы неплохо, кстати. Можно было бы прилетать, высасывать все ресурсы из планеты (одновременно с ухудшением качества планеты) и сваливать домой :)
Аватара пользователя
Lex
Frigate
Сообщения: 530

Обсуждение терраформинга

Сообщение Lex » 14 ноя 2018, 21:30

Artos писал(а):Источник цитаты б) Терраформинг орбитальным модулем

Пока согласен на такой вариант только. Если получится, можно первый попробовать в качестве улучшения второго варианта.
Касательно длительности/условий терраформинга - может, проще сделать счетчик процесса, завязанный на количество терраформирующих платформ на орбите без их ресурсного наполнения? Т.е. нужно несколько платформ разместить и чтобы они были неподвижны (монтируются транспортом после разборки). Потом после окончания процесса перевозятся в другое место. Главное - чтобы жрало энергии тыщ на 50 минимум. Надо бы энергию ввести как ресурс уже.
Тут еще можно разделить процесс технологиями. Например, замороженную планету проще превратить в океанскую, дороже -в землеподобную, еще дороже - в пустыню и т.п. И на каждую такую пару нужна своя технология терраформирования.
Хорошо бы приделать высасыватель ресурсов из планеты, чтобы она уничтожалась и разное количество ресурсов (какие на ней были) давалось бы игроку мгновенно или, лучше, постепенно.