1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Kerbal Space Program - атомный век

Автор: Helmut · 23 фев 2016 · ·
  1. Не, после того, как ванильная игра изучена, надо все-таки и самому что-то сделать. Ну нравятся мне ядерные силовые установки. Один такой я уже делал, на основе моделей от RoverDude - одного из разрабов игры. Получился винтовой самолет с электрическим приводом винтов. Хороший самолетик получился. Но уже наигрались с ним, надо что-то еще. Будем делать полноценный атомолет с ядерными турбореактивными двигателями. Тем более, что реальные опытные образцы ЯТРД и самолеты с ними были созданы в 60-70-х годах, так что вполне вписывается в общую концепцию и технологический уровень игры.

    Проще всего было бы сделать одноконтурный двигатель. Воздух из воздухозаборников подается в реактор, разогревается и направляется в двигатели. Но меня ж жена заживо сожрет, если буду портить экологию у кавайных зеленых человечков. И не важно, что радиоактивное загрязнение в игре в принципе не предусмотрено. Ну ладно, будем делать двухконтурный, с промежуточным теплоносителем, в качестве которого используем жидкий литий. Создаем файл resources.cfg и задаем два новых ресурса: ColdHeatAgent и HotHeatAgent. Характеристики берем от лития из CommunityResourcePack:
    RESOURCE_DEFINITION
    {
    name = Lithium
    density = 0.00053400000
    flowMode = STAGE_PRIORITY_FLOW
    transfer = PUMP
    isTweakable = true
    isVisible = true
    unitCost = 0.27
    }
    Делаем оба одинаково, с коэффициентом теплового расширения не паримся, раз уж нигде больше в игре не используется.

    Далее, берем новенький реактор от RoverDude и лезем внутрь. Он умеет производить электроэнергию и ксенон. Открываем функцию ModuleResourceConverter. В INPUT_RESOURCE добавляем ColdHeatAgent, в OUTPUT_RESOURCE, соответственно, HotHeatAgent. Ставим им одинаковый Ratio и выставляем DumpExcess = false, чтобы реактор мог работать и без потребителя, по замкнутому циклу. Потом добавляем две новые небольшие емкости для теплоносителя, создаем две функции RESOURCE.

    Да, чтобы все было не так просто, самолет у нас все равно будет с возможностью вертикального взлета и посадки. Так интереснее. Ну, подъемные двигатели берем готовые, с электрическим приводом на вентиляторы. А вот маршевые делаем сами. Копируем стоковый двигатель J-404 "Panther", убираем ему форсажную камеру и немного понижаем мощность, для соответствия реально существовавшим образцам. Также убираем встроенный аккумулятор и емкость для топлива. Вместо них ставим две совсем маленькие емкости для теплоносителя, чтобы был буфер. В функцию ModuleEnginesFX смотрим список PROPELLANT, убираем LiquidFuel и добавляем HotHeatAgent и ElectricCharge. Электричество двигатель тоже должен жрать. Но он же должен не жрать теплоноситель, а остужать его, поэтому добавляем функцию ModuleAlternator для ColdHeatAgent, с таким же Ratio, как и потребление.

    Раз самолет будет с вертикальным взлетом, ему так или иначе нужны газовые рули. А будут они у нас работать на сжатом воздухе. Добавляем еще один новый ресурс - CompressedAir. Копируем стоковый RSC-движок и переводим на потребление сжатого воздуха. Теперь наладим его производство - копируем стоковую мотогондолу, увеличиваем вес и превращаем ее в компрессор. Потребляет IntakeAir и ElectricCharge, выдает CompressedAir, имеет встроенный небольшой баллон.

    С силовой установкой разобрались. Делаем сам самолетик. Маленький. Я сказал, нам нужен маленький самолетик! Он будет в формате Mk2. Но какая-то польза от него должна быть. Боевые самолеты в RSP - изврат, поэтому пусть будет опять научный. с другими идеями в KSP пока небогато. Стоковую лабу в MK2 никак не прикрутить, поэтому копируем пассажирскую кабину, уменьшаем количество пассажиров до 2, немного увеличиваем вес и копируем функционал с лабы. Ставим на самолет.

    Раз самолет атомный, топливные баки не нужны, поэтому составляем фюзеляж из грузовых отсеков. В один устанавливаем реактор, в другой - запихиваем всевозможное научное оборудование. Ставим подъемные и маршевые двигатели, компрессоры и газовые рули. Прилепляем крылья, но пока не заморачиваемся, главная забота сейчас не о них. Долго-долго паримся с балансировкой самолета, чтобы центр тяжести совпадал с центром вертикального импульса тяги.

    Выкатываем самолет на полосу, для начала решаем взлететь по-самолетному, чтобы проверить, может ли оно вообще летать. С аэродинамикой-то мы еще вообще не мудрили, на глазок прилепили крылья, хвост и ПГО. Взлетаем и офигеваем. Самолет ВНЕЗАПНО демонстрирует великолепнейшие летные характеристики. Это, безусловно, лучшее, что у меня когда-либо получалось. Более того, это лучшее из всего, что я видел, скачивая чужие крафты (чтобы посмотреть, как сделано). Даже общепризнанно хитовые из них в управлении ведут себя дубовенько. Собственно, в самой игре аэродинамика еще далека от совершенства. Но в результате у меня получился самолет, на котором реально приятно летать в KSP.

    AxXxB и Skud нравится это.

Комментарии

  1. Helmut
    Черт, надо записать, пока опять не забыл, что rate является абсолютной величиной, а ratio - относительной. Почему-то с толковыми гайдами наблюдается явная проблема и то, что можно использовать оба этих значения, я обнаружил методом тыка, в гайдах приводится в пример только ratio.
  2. Helmut
    Поэкспериментировал еще. Решил не связываться с теплоносителем - литием. Один черт существующий функционал не очень подходит, чтобы правдоподобно изобразить цикл нагрева-остывания. А найти исходники стоковых функций ModuleResourceConverter и ModuleAlternator я так и сне сумел. Думаю, моих знаний Си было бы достаточно, чтобы на их основе сделать собственную подходящую функцию. Чужие функции из других модов уже приходилось редактировать. Вот создать функцию с нуля - это уже явно не сумею.

    В итоге решил использовать уже имеющийся в CommunityResourcePack ресурс ThermalPower. Вполне подходит. Поскольку реактор мы используем из неофициального дополнение от одного из разрабов, мы не будем переделывать его файлы. Чтобы не париться потом при обновлении. А сделаем фикс отдельным файлом.
    Код:
    @PART[USI_Nuke_125]
    {
        @MODULE[ModuleResourceConverter]
        {
            OUTPUT_RESOURCE
            {
                ResourceName = ThermalPower
                Ratio = 100.0
                DumpExcess = true
            }
        }
        RESOURCE
        {
            name = ThermalPower
            amount = 0
            maxAmount = 1
            isTweakable = false
        }
    }
    

    Ресурс для сжатого воздуха оставляем прежним, немного поигравшись с его плотностью, чтобы не выходили совсем уж несуразные числа потребления.
    Код:
    RESOURCE_DEFINITION
    {
      name = CompressedAir
      density = 0.001 
      unitCost = 0
      hsp = 120
      flowMode = STAGE_PRIORITY_FLOW
      transfer = PUMP
      isTweakable = true
    }

    Соответственно, прописываем функционал для газовых рулей
    Код:
    MODULE
    {
      name = ModuleRCS
      thrusterTransformName = RCSthruster
      thrusterPower = 10
      resourceName = CompressedAir
      resourceFlowMode = STAGE_PRIORITY_FLOW
      atmosphereCurve
      {
         key = 0 260
         key = 1 140
         key = 5 0.001
      }
    }

    Допиливаем заодно воздушный компрессор
    Код:
    MODEL
    {
        model = Squad/Parts/Structural/mk1Parts/Nacelle2
    }
    MODULE
    {
        name = ModuleResourceConverter
        ConverterName = Air compressor
        StartActionName = Start compressor
        StopActionName = Stop compressor
        INPUT_RESOURCE
        {
            ResourceName = IntakeAir
            Ratio = 5
        }
        INPUT_RESOURCE
        {
            ResourceName = ElectricCharge
            Ratio = 30
        }
        OUTPUT_RESOURCE
        {
            ResourceName = CompressedAir
            Ratio = 2
            DumpExcess = true
        }
    }
    MODULE
    {
        name = ModuleActiveRadiator
        maxEnergyTransfer = 7500
        overcoolFactor = 0.25
        isCoreRadiator = true
        RESOURCE
        {
            name = ElectricCharge
            rate = 0.025
        }       
    }
    RESOURCE
    {
        name = CompressedAir
        amount = 500
        maxAmount = 500
        isTweakable = false
    }

    Ну и, собственно, подбираем коэффициенты для ЯТРД
    Код:
    PROPELLANT
    {
        name = ThermalPower
        ratio = 25
    }
    PROPELLANT
    {
        name = CompressedAir
        ratio = 1
    }
    PROPELLANT
    {
        name = ElectricCharge
        ratio = 17
        DrawGauge = true
    }
    PROPELLANT
    {
        name = IntakeAir
        ignoreForIsp = True
        ratio = 11.5
    }
Чтобы оставить комментарий просто зарегистрируйтесь и станьте участником!
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление