[INFO] To all people reading that economy is fake - it's not

This forum is the ideal place for all discussion relating to X4. You will also find additional information from developers here.

Moderator: Moderators for English X Forum

User avatar
Morkonan
Posts: 10113
Joined: Sun, 25. Sep 11, 04:33
x3tc

Re: [INFO] To all people reading that economy is fake - it's not

Post by Morkonan »

A quick question(s) on this, not having the chance yet to play it myself:

Does all this "dynamic economy" translate into a more rewarding experience for the player than the X3 "well-faked" economy did?

Is there a danger of this dynamic economy using more resource value in terms of PC/CPU/etc than its actual play-value? (ie: I wonder about the impact of calcs going on in sectors the player has no interest in, yet.)

Are all areas/regions/sectors in the game "live" as well and running their own dynamic simulations that are not yet impacted by the player's actions? (ie: How much is dedicated to things going on outside of the player's "light cone" or, IOW, capability to ever experience?)

Deep questions, I'm sure, since it would take knowing the actual code to answer. Sorry. :)
RodentofDoom
Posts: 407
Joined: Sat, 27. Feb 16, 09:37
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by RodentofDoom »

respaekt wrote: Wed, 5. Dec 18, 22:41
I have to add: For 50$ i would like have a little bit more, Split and Boron should be not a DLC, that includes a bigger universe and bugfixes. But i thrust egosoft, they will make the game as we want it
Sure I read somewhere it's FLC rather than DLC
I could be wrong though.
gschultz
Posts: 45
Joined: Tue, 16. Jul 13, 18:53
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by gschultz »

soundslikerust wrote: Wed, 5. Dec 18, 21:51 There are some "programmers" on steam forums talking about fake economy code. Don't listen to it it's made up. I cant paste all game scripts here but look at the topmost file from economy logic (I had to cut it in half sorry).
There is much much more economy code in game.
Faction Managers logic making goals and sub goals for different factions, planning invasions, reacting, making reconnaissance!, planning staging areas, planning building stations and much more.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<mdscript name="FactionLogic_Economy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
  <cues>

    <!--TODO @Owen - if traffic levels for a station are at a sustained high level, build a dock area-->

    <!--Helper libraries-->

    <library name="UpdateSectorNeighbourTable">
      <actions>
        <assert value="$Faction? and $SectorNeighbourTable?" text="'Variable $Faction or $SectorNeighbourTable not set. [Owen]'" break="1"/>
        <!--TODO @Owen take contested into account-->
        <do_if value="$Faction? and $SectorNeighbourTable?">
          <clear_table table="$SectorNeighbourTable"/>
          <find_sector name="$Sectors" owner="$Faction" multiple="true"/>
          <do_all exact="$Sectors.count" counter="$USNT_i">
            <set_value name="$Neighbours" exact="[]"/>
            <set_value name="$SectorNeighbourTable.{$Sectors.{$USNT_i}}" exact="$Neighbours"/>
            <find_cluster_in_range name="$Clusters" object="$Sectors.{$USNT_i}" maxdistance="1" multiple="true"/>
            <do_all exact="$Clusters.count" counter="$USNT_k">
              <find_sector name="$Neighbours" owner="$Faction" space="$Clusters.{$USNT_k}" multiple="true" append="true"/>
            </do_all>
          </do_all>
        </do_if>
      </actions>
    </library>

    <!--Faction economy library-->
    <library name="Econ_Manager" namespace="this">
      <params>
        <param name="FactionManagerCue"/>
        <param name="Faction"/>
        <param name="DebugChance" default="0"/>
      </params>
      <actions>
        <set_value name="$DebugText" exact="'(' + $Faction.id + ') Econ_Manager - '"/>
        <set_value name="$Reports" exact="table[]"/>

        <!--Table of actions the faction has attemtped to fix economic problems.-->
        <!--Key is by sector, value is the list of actions-->
        <set_value name="$ActionReports" exact="table[]"/>

        <!--Table of sectors within 1 jump of the sector (including itself)-->
        <set_value name="$SectorNeighbourTable" exact="table[]"/>
        <include_actions ref="md.FactionLogic_Economy.UpdateSectorNeighbourTable"/>

        <set_value name="$InsufficientProductsTable" exact="table[]"/>
        <set_value name="$ShortageProductsTable" exact="table[]"/>
        <set_value name="$InsufficientWorkforceTable" exact="table[]"/>
        <set_value name="$ShortageWorkforceTable" exact="table[]"/>
        <set_value name="$InsufficientBuildTable" exact="table[]"/>
        <set_value name="$ShortageBuildTable" exact="table[]"/>

        <!--Aggregated tables have the Ware as key and the value is the aggregated time of all reports for that ware-->
        <set_value name="$AggregatedInsufficientProductsTable" exact="table[]"/>
        <set_value name="$AggregatedShortageProductsTable" exact="table[]"/>
        <set_value name="$AggregatedInsufficientWorkforceTable" exact="table[]"/>
        <set_value name="$AggregatedShortageWorkforceTable" exact="table[]"/>
        <set_value name="$AggregatedInsufficientBuildTable" exact="table[]"/>
        <set_value name="$AggregatedShortageBuildTable" exact="table[]"/>

        <!--Table of sectors which contain ware tables of aggregated report values-->
        <set_value name="$SectorInsufficientProductsTable" exact="table[]"/>
        <set_value name="$SectorShortageProductsTable" exact="table[]"/>
        <set_value name="$SectorInsufficientWorkforceTable" exact="table[]"/>
        <set_value name="$SectorShortageWorkforceTable" exact="table[]"/>
        <set_value name="$SectorInsufficientBuildTable" exact="table[]"/>
        <set_value name="$SectorShortageBuildTable" exact="table[]"/>
      </actions>
      <cues>
        <cue name="RespondToShortageData" instantiate="true">
          <conditions>
            <event_cue_signalled cue="md.FactionLogic_Economy.ShortageDataGenerated"/>
          </conditions>
          <delay min="1s" max="5s"/>
          <actions>
            <signal_cue cue="EvaluateShortages"/>
          </actions>
        </cue>

        <cue name="EvaluateShortages" instantiate="true">
          <conditions>
            <event_cue_signalled/>
            <check_value value="md.FactionLogic_Economy.GenerateShortageData.state == cuestate.waiting"/>
          </conditions>
          <actions>
            <set_value name="$DebugChance" exact="0"/>

            <include_actions ref="md.FactionLogic_Economy.UpdateSectorNeighbourTable"/>

            <do_if value="@md.FactionLogic_Economy.GlobalStorageData.$Reports">
              <set_value name="$OwnerReports" exact="@md.FactionLogic_Economy.GlobalStorageData.$Reports.{$Faction}"/>
              <do_if value="$OwnerReports">
                <clear_table table="$InsufficientProductsTable"/>
                <clear_table table="$ShortageProductsTable"/>
                <clear_table table="$InsufficientWorkforceTable"/>
                <clear_table table="$ShortageWorkforceTable"/>
                <clear_table table="$InsufficientBuildTable"/>
                <clear_table table="$ShortageBuildTable"/>

                <!--Aggregated tables have the Ware as key and the value is the aggregated time of all reports for that ware-->
                <clear_table table="$AggregatedInsufficientProductsTable"/>
                <clear_table table="$AggregatedShortageProductsTable"/>
                <clear_table table="$AggregatedInsufficientWorkforceTable"/>
                <clear_table table="$AggregatedShortageWorkforceTable"/>
                <clear_table table="$AggregatedInsufficientBuildTable"/>
                <clear_table table="$AggregatedShortageBuildTable"/>

                <!--Table of sectors which contain ware tables of aggregated report values-->
                <clear_table table="$SectorInsufficientProductsTable"/>
                <clear_table table="$SectorShortageProductsTable"/>
                <clear_table table="$SectorInsufficientWorkforceTable"/>
                <clear_table table="$SectorShortageWorkforceTable"/>
                <clear_table table="$SectorInsufficientBuildTable"/>
                <clear_table table="$SectorShortageBuildTable"/>

                <set_value name="$TableRef" exact="null"/>
                <set_value name="$TableRefKeys" exact="null"/>
                <set_value name="$ReportKeys" exact="$OwnerReports.keys.list"/>
                <do_all exact="$ReportKeys.count" counter="$i">
                  <set_value name="$Station" exact="$ReportKeys.{$i}"/>
                  <set_value name="$Sector" exact="$Station.sector"/>

                  <!--Insufficient Production Wares-->
                  <do_if value="$OwnerReports.{$Station}.{'$InsufficientProductionWares'}?">
                    <set_value name="$TableRef" exact="$OwnerReports.{$Station}.{'$InsufficientProductionWares'}"/>
                    <set_value name="$TableRefKeys" exact="$TableRef.keys.list"/>
                    <do_all exact="$TableRefKeys.count" counter="$k">
                      <set_value name="$Ware" exact="$TableRefKeys.{$k}"/>
                      <set_value name="$ReportValue" exact="$TableRef.{$Ware}"/>
                      <set_value name="$AggregatedInsufficientProductsTable.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_if value="not $SectorInsufficientProductsTable.{$Sector}?">
                        <set_value name="$SectorInsufficientProductsTable.{$Sector}" exact="table[]"/>
                      </do_if>
                      <set_value name="$SectorInsufficientProductsTable.{$Sector}.{$Ware}" exact="$ReportValue" operation="add"/>
                      <!--Avoid clashes by adding a little to the report value-->
                      <do_while value="$InsufficientProductsTable.{$ReportValue}?">
                        <set_value name="$ReportValue" exact="1" operation="add"/>
                      </do_while>
                      <set_value name="$InsufficientProductsTable.{$ReportValue}" exact="table[{'$Station'} = $Station, {'$Ware'} = $Ware]"/>
                    </do_all>
                  </do_if>

                  <!--Production wares in short supply-->
                  <do_if value="$OwnerReports.{$Station}.{'$ShortageProductionWares'}?">
                    <set_value name="$TableRef" exact="$OwnerReports.{$Station}.{'$ShortageProductionWares'}"/>
                    <set_value name="$TableRefKeys" exact="$TableRef.keys.list"/>
                    <do_all exact="$TableRefKeys.count" counter="$k">
                      <set_value name="$Ware" exact="$TableRefKeys.{$k}"/>
                      <set_value name="$ReportValue" exact="$TableRef.{$Ware}"/>
                      <set_value name="$AggregatedShortageProductsTable.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_if value="not $SectorShortageProductsTable.{$Sector}?">
                        <set_value name="$SectorShortageProductsTable.{$Sector}" exact="table[]"/>
                      </do_if>
                      <set_value name="$SectorShortageProductsTable.{$Sector}.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_while value="$ShortageProductsTable.{$ReportValue}?">
                        <set_value name="$ReportValue" exact="1" operation="add"/>
                      </do_while>
                      <set_value name="$ShortageProductsTable.{$ReportValue}" exact="table[{'$Station'} = $Station, {'$Ware'} = $Ware]"/>
                    </do_all>
                  </do_if>

                  <!--Insufficient Workforce Wares-->
                  <do_if value="$OwnerReports.{$Station}.{'$InsufficientWorkforceWares'}?">
                    <set_value name="$TableRef" exact="$OwnerReports.{$Station}.{'$InsufficientWorkforceWares'}"/>
                    <set_value name="$TableRefKeys" exact="$TableRef.keys.list"/>
                    <do_all exact="$TableRefKeys.count" counter="$k">
                      <set_value name="$Ware" exact="$TableRefKeys.{$k}"/>
                      <set_value name="$ReportValue" exact="$TableRef.{$Ware}"/>
                      <set_value name="$AggregatedInsufficientWorkforceTable.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_if value="not $SectorInsufficientWorkforceTable.{$Sector}?">
                        <set_value name="$SectorInsufficientWorkforceTable.{$Sector}" exact="table[]"/>
                      </do_if>
                      <set_value name="$SectorInsufficientWorkforceTable.{$Sector}.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_while value="$InsufficientWorkforceTable.{$ReportValue}?">
                        <set_value name="$ReportValue" exact="1" operation="add"/>
                      </do_while>
                      <set_value name="$InsufficientWorkforceTable.{$ReportValue}" exact="table[{'$Station'} = $Station, {'$Ware'} = $Ware]"/>
                    </do_all>
                  </do_if>

                  <!--Workforce wares in short supply-->
                  <do_if value="$OwnerReports.{$Station}.{'$ShortageWorkforceWares'}?">
                    <set_value name="$TableRef" exact="$OwnerReports.{$Station}.{'$ShortageWorkforceWares'}"/>
                    <set_value name="$TableRefKeys" exact="$TableRef.keys.list"/>
                    <do_all exact="$TableRefKeys.count" counter="$k">
                      <set_value name="$Ware" exact="$TableRefKeys.{$k}"/>
                      <set_value name="$ReportValue" exact="$TableRef.{$Ware}"/>
                      <set_value name="$AggregatedShortageWorkforceTable.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_if value="not $SectorShortageWorkforceTable.{$Sector}?">
                        <set_value name="$SectorShortageWorkforceTable.{$Sector}" exact="table[]"/>
                      </do_if>
                      <set_value name="$SectorShortageWorkforceTable.{$Sector}.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_while value="$ShortageWorkforceTable.{$ReportValue}?">
                        <set_value name="$ReportValue" exact="1" operation="add"/>
                      </do_while>
                      <set_value name="$ShortageWorkforceTable.{$ReportValue}" exact="table[{'$Station'} = $Station, {'$Ware'} = $Ware]"/>
                    </do_all>
                  </do_if>

                  <!--Insufficient Build Wares-->
                  <do_if value="$OwnerReports.{$Station}.{'$InsufficientBuildWares'}?">
                    <set_value name="$TableRef" exact="$OwnerReports.{$Station}.{'$InsufficientBuildWares'}"/>
                    <set_value name="$TableRefKeys" exact="$TableRef.keys.list"/>
                    <do_all exact="$TableRefKeys.count" counter="$k">
                      <set_value name="$Ware" exact="$TableRefKeys.{$k}"/>
                      <!--treat insufficient build wares as higher priority?-->
                      <!--TODO @Owen move to params-->
                      <set_value name="$ReportValue" exact="$TableRef.{$Ware} * 2"/>
                      <set_value name="$AggregatedInsufficientBuildTable.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_if value="not $SectorInsufficientBuildTable.{$Sector}?">
                        <set_value name="$SectorInsufficientBuildTable.{$Sector}" exact="table[]"/>
                      </do_if>
                      <set_value name="$SectorInsufficientBuildTable.{$Sector}.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_while value="$InsufficientBuildTable.{$ReportValue}?">
                        <set_value name="$ReportValue" exact="1" operation="add"/>
                      </do_while>
                      <set_value name="$InsufficientBuildTable.{$ReportValue}" exact="table[{'$Station'} = $Station, {'$Ware'} = $Ware]"/>
                    </do_all>
                  </do_if>

                  <!--Build wares in short supply-->
                  <do_if value="$OwnerReports.{$Station}.{'$ShortageBuildWares'}?">
                    <set_value name="$TableRef" exact="$OwnerReports.{$Station}.{'$ShortageBuildWares'}"/>
                    <set_value name="$TableRefKeys" exact="$TableRef.keys.list"/>
                    <do_all exact="$TableRefKeys.count" counter="$k">
                      <set_value name="$Ware" exact="$TableRefKeys.{$k}"/>
                      <set_value name="$ReportValue" exact="$TableRef.{$Ware} * 1.5"/>
                      <set_value name="$AggregatedShortageBuildTable.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_if value="not $SectorShortageBuildTable.{$Sector}?">
                        <set_value name="$SectorShortageBuildTable.{$Sector}" exact="table[]"/>
                      </do_if>
                      <set_value name="$SectorShortageBuildTable.{$Sector}.{$Ware}" exact="$ReportValue" operation="add"/>
                      <do_while value="$ShortageBuildTable.{$ReportValue}?">
                        <set_value name="$ReportValue" exact="1" operation="add"/>
                      </do_while>
                      <set_value name="$ShortageBuildTable.{$ReportValue}" exact="table[{'$Station'} = $Station, {'$Ware'} = $Ware]"/>
                    </do_all>
                  </do_if>
                </do_all>

                <do_if value="$DebugChance == 100">
                  <debug_text text="'Insufficient production wares'" context="false"/>
                  <set_value name="$TableRef" exact="$AggregatedInsufficientProductsTable"/>
                  <include_actions ref="AggregatedReportTableHelper"/>

                  <debug_text text="'Production ware shortages'" context="false"/>
                  <set_value name="$TableRef" exact="$AggregatedShortageProductsTable"/>
                  <include_actions ref="AggregatedReportTableHelper"/>

                  <debug_text text="'Insufficient workforce res.'" context="false"/>
                  <set_value name="$TableRef" exact="$AggregatedInsufficientWorkforceTable"/>
                  <include_actions ref="AggregatedReportTableHelper"/>

                  <debug_text text="'Workforce ware shortages'" context="false"/>
                  <set_value name="$TableRef" exact="$AggregatedShortageWorkforceTable"/>
                  <include_actions ref="AggregatedReportTableHelper"/>

                  <debug_text text="'Insufficient build res.'" context="false"/>
                  <set_value name="$TableRef" exact="$AggregatedInsufficientBuildTable"/>
                  <include_actions ref="AggregatedReportTableHelper"/>

                  <debug_text text="'Build ware shortages'" context="false"/>
                  <set_value name="$TableRef" exact="$AggregatedShortageBuildTable"/>
                  <include_actions ref="AggregatedReportTableHelper"/>

                  <set_value name="$TableRef" exact="$InsufficientProductsTable"/>
                  <debug_text text="'Worst insufficient production ware reports (of ' + $TableRef.keys.count + ')'" context="false"/>
                  <set_value name="$DebugReportType" exact="'insufficient'"/>
                  <include_actions ref="SortedReportTableHelper"/>

                  <set_value name="$TableRef" exact="$ShortageProductsTable"/>
                  <debug_text text="'Worst production ware shortage reports (of ' + $TableRef.keys.count + ')'" context="false"/>
                  <set_value name="$DebugReportType" exact="'short'"/>
                  <include_actions ref="SortedReportTableHelper"/>

                  <set_value name="$TableRef" exact="$InsufficientWorkforceTable"/>
                  <debug_text text="'Worst insufficient workforce ware reports (of ' + $TableRef.keys.count + ')'" context="false"/>
                  <set_value name="$DebugReportType" exact="'insufficient'"/>
                  <include_actions ref="SortedReportTableHelper"/>

                  <set_value name="$TableRef" exact="$ShortageWorkforceTable"/>
                  <debug_text text="'Worst workforce ware shortage reports (of ' + $TableRef.keys.count + ')'" context="false"/>
                  <set_value name="$DebugReportType" exact="'short'"/>
                  <include_actions ref="SortedReportTableHelper"/>

                  <set_value name="$TableRef" exact="$InsufficientBuildTable"/>
                  <debug_text text="'Worst insufficient build ware reports (of ' + $TableRef.keys.count + ')'" context="false"/>
                  <set_value name="$DebugReportType" exact="'insufficient'"/>
                  <include_actions ref="SortedReportTableHelper"/>

                  <set_value name="$TableRef" exact="$ShortageBuildTable"/>
                  <debug_text text="'Worst build ware shortage reports (of ' + $TableRef.keys.count + ')'" context="false"/>
                  <set_value name="$DebugReportType" exact="'short'"/>
                  <include_actions ref="SortedReportTableHelper"/>

                  <set_value name="$TableRef" exact="$SectorInsufficientProductsTable"/>
                  <debug_text text="'Aggregated insufficient production ware reports by sector'" context="false"/>
                  <set_value name="$DebugReportType" exact="'insufficient'"/>
                  <include_actions ref="SectorReportTableHelper"/>

                  <set_value name="$TableRef" exact="$SectorShortageProductsTable"/>
                  <debug_text text="'Aggregated production ware shortage reports by sector'" context="false"/>
                  <set_value name="$DebugReportType" exact="'shortage'"/>
                  <include_actions ref="SectorReportTableHelper"/>

                  <set_value name="$TableRef" exact="$SectorInsufficientWorkforceTable"/>
                  <debug_text text="'Aggregated insufficient workforce ware reports by sector'" context="false"/>
                  <set_value name="$DebugReportType" exact="'insufficient'"/>
                  <include_actions ref="SectorReportTableHelper"/>

                  <set_value name="$TableRef" exact="$SectorShortageWorkforceTable"/>
                  <debug_text text="'Aggregated workforce ware shortage reports by sector'" context="false"/>
                  <set_value name="$DebugReportType" exact="'shortage'"/>
                  <include_actions ref="SectorReportTableHelper"/>

                  <set_value name="$TableRef" exact="$SectorInsufficientBuildTable"/>
                  <debug_text text="'Aggregated insufficient build ware reports by sector'" context="false"/>
                  <set_value name="$DebugReportType" exact="'insufficient'"/>
                  <include_actions ref="SectorReportTableHelper"/>

                  <set_value name="$TableRef" exact="$SectorShortageBuildTable"/>
                  <debug_text text="'Aggregated build ware shortage reports by sector'" context="false"/>
                  <set_value name="$DebugReportType" exact="'shortage'"/>
                  <include_actions ref="SectorReportTableHelper"/>
                </do_if>

                <!--Decide which reports to act on-->
                <!--TODO @Owen - move to parameters.xml-->
                <set_value name="$ActionThresholds" exact="table[]"/>
                <set_value name="$ActionThresholds.{'$request_commandeerable_freighter'}" exact="3000"/>
                <set_value name="$ActionThresholds.{'$request_freighter'}"                exact="6000"/>
                <set_value name="$ActionThresholds.{'$request_priority_freighter'}"       exact="11000"/>
                <set_value name="$ActionThresholds.{'$request_production'}"               exact="35000"/>
                <set_value name="$ActionThresholds.{'$request_factory'}"                  exact="65000"/>
                <set_value name="$ActionThresholds.{'$not_viable'}"                       exact="90000"/>
                <set_value name="$ActionThresholdsKeys" exact="$ActionThresholds.keys.sorted"/>

                <set_value name="$InsufficientNeighbourMultiplier" exact="0.2" comment="Factor of which to take neighbouring insufficient resources into account"/>
                <set_value name="$NeighbourActionMultiplier" exact="0.5" comment="Factor of which to take the action score of neighbouring sectors for this ware into account"/>

                <set_value name="$Request_Commandeerable_Freighter_Release_Time" exact="5400s" comment="Time after which the ship will be released"/>

                <set_value name="$Request_Freighter_Spawn_Wait_Time" exact="1000s" comment="Time to allow the freighter to start being placed in a shipyard"/>
                <set_value name="$Request_Freighter_Build_Wait_Time" exact="1000s" comment="Time to allow the freighter to be built by the shipyard after spawning"/>

                <set_value name="$Request_Pri_Freighter_Spawn_Wait_Time" exact="1500s" comment="Time to allow the freighter to start being placed in a shipyard"/>
                <set_value name="$Request_Pri_Freighter_Build_Wait_Time" exact="1500s" comment="Time to allow the freighter to be built by the shipyard after spawning"/>

                <set_value name="$Request_Production_Build_Wait_Time" exact="5h" comment="Time to allow the building to start"/>
                <set_value name="$Request_Production_Build_Timeout"   exact="5h" comment="Time to allow the build to progress before disregarding"/>
                <set_value name="$Request_Production_Working_Timeout" exact="5h" comment="Time to allow the factory to work before disregarding"/>

                <set_value name="$Request_Factory_Build_Wait_Time" exact="15h" comment="Time to allow the building to start, where any module is operational or buildmodule is building"/>
                <set_value name="$Request_Factory_Build_Timeout"   exact="10h" comment="Time to allow the build to progress before disregarding"/>
                <set_value name="$Request_Factory_Working_Timeout" exact="5h" comment="Time to allow the factory to work before disregarding"/>

                <!--Check the exising actions to see if any should be disregarded-->
                <set_value name="$DisregardedActions" exact="[]"/>
                <set_value name="$ActionReportKeys" exact="$ActionReports.keys.list"/>
                <do_all exact="$ActionReportKeys.count" counter="$ARK_i">
                  <set_value name="$ActionReportList" exact="$ActionReports.{$ActionReportKeys.{$ARK_i}}"/>
                  <do_all exact="$ActionReportList.count" counter="$ARL_i" reverse="true">
                    <set_value name="$DisregardAction" exact="false"/>
                    <set_value name="$DisregardReason" exact="'UNKNOWN'" chance="$DebugChance"/>
                    <set_value name="$DisregardObject" exact="null"/>

                    <set_value name="$ActionReport" exact="$ActionReportList.{$ARL_i}"/>
                    <set_value name="$ActionReportDef" exact="$ActionReport.$ActionDef"/>

                    <!--CHECK REQUEST_COMMANDEERABLE_FRIEGHTER ACTION-->
                    <do_if value="$ActionReportDef.$Type == '$request_commandeerable_freighter'">
                      <set_value name="$CommandeeredShip" exact="$ActionReportDef.$Ship"/>
                      <do_if value="$CommandeeredShip.isoperational and $CommandeeredShip.isjobship and not @$ActionReportDef.$Disregard" comment="$ActionReportDef.$Disregard can be set in the action handler itself">
                        <!--Ship is still an existing job ship-->
                        <do_if value="player.age ge $ActionReportDef.$CommandeerTime + $Request_Commandeerable_Freighter_Release_Time">
                          <!--Ship is no longer a requested ship. Disregard action report-->
                          <set_value name="$DisregardAction" exact="true"/>
                          <set_value name="$DisregardReason" exact="'Ship is to be released as a commandeered freighter'" chance="$DebugChance"/>
                          <set_value name="$DisregardObject" exact="$CommandeeredShip"/>
                        </do_if>
                      </do_if>
                      <do_else>
                        <!--Ship is no longer a requested ship. Disregard action report-->
                        <set_value name="$DisregardAction" exact="true"/>
                        <set_value name="$DisregardReason" exact="'Ship is no longer a suitable job ship'" chance="$DebugChance"/>
                        <set_value name="$DisregardObject" exact="$CommandeeredShip"/>
                      </do_else>
                      <remove_value name="$CommandeeredShip"/>
                    </do_if>

                    <!--CHECK REQUEST_FREIGHTER ACTION-->
                    <do_elseif value="$ActionReportDef.$Type == '$request_freighter'">
                      <set_value name="$RequestedShip" exact="$ActionReportDef.$Ship"/>
                      <do_if value="($RequestedShip.exists or $RequestedShip.isoperational) and $RequestedShip.isrequestedjobship">
                        <!--Ship is still an existing requested job ship or is an operational ship waiting to be built somewhere-->
                        <!--TODO @Owen - parameters for things such as how long to wait for requested ships-->
                        <do_if value="not $RequestedShip.exists">
                          <do_if value="$ActionReport.$StartTime lt player.age - $Request_Freighter_Spawn_Wait_Time">
                            <!--DISREGARD-->
                            <!--However, the ship still does not exist and it was requested some time ago. Kill and try something else-->
                            <destroy_object object="$RequestedShip"/>
                            <set_value name="$DisregardAction" exact="true"/>
                            <set_value name="$DisregardReason" exact="'Time elapsed and it never existed'" chance="$DebugChance"/>
                          </do_if>
                        </do_if>
                        <do_elseif value="$RequestedShip.isoperational">
                          <!--TODO @Owen, check if actually doing something. Any trade runs?-->
                          <!--<do_elseif value="$ActionReportDef.$LaunchTime lt xxxxs and the situation is around the same or worse">
                          try another frieghter or a more drastic measure?
                          </do_elseif>-->
                        </do_elseif>
                        <do_elseif value="$RequestedShip.isconstruction">
                          <do_if value="@$ActionReportDef.$SpawnTime lt player.age - $Request_Freighter_Build_Wait_Time">
                            <!--DISREGARD-->
                            <!--Ship has not been built yet-->
                            <!--TODO @Owen. Check state of the build. Is it close to finishing? Allow a bit more time?-->
                            <!--TODO @Owen Recycle-->
                            <destroy_object object="$RequestedShip"/>
                            <set_value name="$DisregardAction" exact="true"/>
                            <set_value name="$DisregardReason" exact="'Ship took too long to finish building'" chance="$DebugChance"/>
                          </do_if>
                        </do_elseif>
                        <do_elseif value="$RequestedShip.iswreck">
                          <!--DISREGARD-->
                          <!--Requested job ship is destroyed-->
                          <set_value name="$DisregardAction" exact="true"/>
                          <set_value name="$DisregardReason" exact="'Ship is destroyed.'" chance="$DebugChance"/>
                          <set_value name="$DisregardObject" exact="$RequestedShip"/>
                        </do_elseif>
                      </do_if>
                      <do_else>
                        <!--Ship is no longer a requested ship. Disregard action report-->
                        <set_value name="$DisregardAction" exact="true"/>
                        <set_value name="$DisregardReason" exact="'Ship is no longer a requested job ship'" chance="$DebugChance"/>
                        <set_value name="$DisregardObject" exact="$RequestedShip"/>
                      </do_else>
                      <remove_value name="$RequestedShip"/>
                    </do_elseif>

                    <!--CHECK REQUEST_PRIORITY_FRIEGHTER ACTION-->
                    <do_elseif value="$ActionReportDef.$Type == '$request_priority_freighter'">
                      <set_value name="$RequestedShip" exact="$ActionReportDef.$Ship"/>
                      <do_if value="($RequestedShip.exists or $RequestedShip.isoperational) and $RequestedShip.isrequestedjobship">
                        <!--Ship is still an existing requested job ship or is an operational ship waiting to be built somewhere-->
                        <!--TODO @Owen - parameters for things such as how long to wait for requested ships-->
                        <do_if value="not $RequestedShip.exists">
                          <do_if value="$ActionReport.$StartTime lt player.age - $Request_Pri_Freighter_Spawn_Wait_Time">
                            <!--DISREGARD-->
                            <!--However, the ship still does not exist and it was requested some time ago. Kill and try something else-->
                            <destroy_object object="$RequestedShip"/>
                            <set_value name="$DisregardAction" exact="true"/>
                            <set_value name="$DisregardReason" exact="'Time elapsed and it never existed'" chance="$DebugChance"/>
                          </do_if>
                        </do_if>
                        <do_elseif value="$RequestedShip.isoperational">
                          <!--TODO @Owen, check if actually doing something. Any trade runs?-->
                          <!--<do_elseif value="$ActionReportDef.$LaunchTime lt xxxxs and the situation is around the same or worse">
                          try another frieghter or a more drastic measure?
                          </do_elseif>-->
                        </do_elseif>
                        <do_elseif value="$RequestedShip.isconstruction">
                          <do_if value="@$ActionReportDef.$SpawnTime lt player.age - $Request_Pri_Freighter_Build_Wait_Time">
                            <!--DISREGARD-->
                            <!--Ship has not been built yet-->
                            <!--TODO @Owen. Check state of the build. Is it close to finishing? Allow a bit more time?-->
                            <!--TODO @Owen Recycle-->
                            <destroy_object object="$RequestedShip"/>
                            <set_value name="$DisregardAction" exact="true"/>
                            <set_value name="$DisregardReason" exact="'Ship took too long to finish building'" chance="$DebugChance"/>
                          </do_if>
                        </do_elseif>
                        <do_elseif value="$RequestedShip.iswreck">
                          <!--DISREGARD-->
                          <!--Requested job ship is destroyed-->
                          <set_value name="$DisregardAction" exact="true"/>
                          <set_value name="$DisregardReason" exact="'Ship is destroyed.'" chance="$DebugChance"/>
                          <set_value name="$DisregardObject" exact="$RequestedShip"/>
                        </do_elseif>
                      </do_if>
                      <do_else>
                        <set_value name="$DisregardAction" exact="true"/>
                        <set_value name="$DisregardReason" exact="'Ship is no longer a requested job ship'" chance="$DebugChance"/>
                        <set_value name="$DisregardObject" exact="$RequestedShip"/>
                      </do_else>
                      <remove_value name="$RequestedShip"/>
                    </do_elseif>

                    <!--CHECK REQUEST_PRODUCTION ACTION-->
                    <do_elseif value="$ActionReportDef.$Type == '$request_production'">
                      <set_value name="$Station" exact="$ActionReportDef.$Station"/>
                      <do_if value="not $Station.exists">
                        <!--DISREGARD-->
                        <!--The station no longer exists-->
                        <set_value name="$DisregardAction" exact="true"/>
                        <set_value name="$DisregardReason" exact="'Station no longer exists'" chance="$DebugChance"/>
                      </do_if>
                      <do_elseif value="@$ActionReportDef.$BuiltTime">
                        <!--All productions were finished-->
                        <!--TODO @Owen check if the factory is actually producing?-->
                        <do_if value="$ActionReportDef.$BuiltTime lt player.age - $Request_Production_Working_Timeout">
                          <!--DISREGARD-->
                          <!--Productions have been complete for some time.-->
                          <set_value name="$DisregardAction" exact="true"/>
                          <set_value name="$DisregardReason" exact="'Factory has had the new productions for ' + $Request_Production_Working_Timeout" chance="$DebugChance"/>
                          <set_value name="$DisregardObject" exact="$Station"/>
                        </do_if>
                      </do_elseif>
                      <do_elseif value="@$ActionReportDef.$StartBuildTime or @$ActionReportDef.$LastBuildTime">
                        <!--Some module has begun construction-->
                        <do_if value="[$ActionReportDef.$StartBuildTime, @$ActionReportDef.$LastBuildTime].max lt player.age - $Request_Production_Build_Timeout">
                          <!--DISREGARD-->
                          <!--Factory has been expanding for a long time.-->
                          <set_value name="$DisregardAction" exact="true"/>
                          <set_value name="$DisregardReason" exact="'Factory has been expanding for ' + $Request_Production_Build_Timeout" chance="$DebugChance"/>
                          <set_value name="$DisregardObject" exact="$Station"/>
                        </do_if>
                      </do_elseif>
                      <do_else>
                        <!--Building has not started yet-->
                        <do_if value="$ActionReport.$StartTime lt player.age - $Request_Production_Build_Wait_Time">
                          <!--DISREGARD-->
                          <!--Construction has not started on the factory for a long time.-->
                          <set_value name="$DisregardAction" exact="true"/>
                          <set_value name="$DisregardReason" exact="'Expansion has not started on factory for' + $Request_Production_Build_Wait_Time" chance="$DebugChance"/>
                          <set_value name="$DisregardObject" exact="$Station"/>
                        </do_if>
                      </do_else>
                      <remove_value name="$Station"/>
                    </do_elseif>

                    <!--CHECK REQUEST_FACTORY ACTION-->
                    <do_elseif value="$ActionReportDef.$Type == '$request_factory'">
                      <set_value name="$Station" exact="$ActionReportDef.$Station"/>
                      <do_if value="not $Station.exists">
                        <!--DISREGARD-->
                        <!--The module did exist, but no longer-->
                        <set_value name="$DisregardAction" exact="true"/>
                        <set_value name="$DisregardReason" exact="'Station no longer exists'" chance="$DebugChance"/>
                      </do_if>
                      <do_elseif value="@$ActionReportDef.$BuiltTime">
                        <!--Build has finished-->
                        <!--TODO @Owen check if the factory is actually producing?-->
                        <do_if value="$ActionReportDef.$BuiltTime lt player.age - $Request_Factory_Working_Timeout">
                          <!--DISREGARD-->
                          <!--Factory has been complete for some time.-->
                          <set_value name="$DisregardAction" exact="true"/>
                          <set_value name="$DisregardReason" exact="'Factory has been working for ' + $Request_Factory_Working_Timeout" chance="$DebugChance"/>
                          <set_value name="$DisregardObject" exact="$Station"/>
                        </do_if>
                      </do_elseif>
                      <do_elseif value="@$ActionReportDef.$StartBuildTime">
                        <!--Build has started-->
                        <do_if value="$ActionReportDef.$StartBuildTime lt player.age - $Request_Factory_Build_Timeout">
                          <!--DISREGARD-->
                          <!--Factory has been building for a long time.-->
                          <set_value name="$DisregardAction" exact="true"/>
                          <set_value name="$DisregardReason" exact="'Factory has been building for ' + $Request_Factory_Build_Timeout" chance="$DebugChance"/>
                          <set_value name="$DisregardObject" exact="$Station"/>
                        </do_if>
                      </do_elseif>
                      <do_else>
                        <!--Building has not started yet-->
                        <do_if value="$ActionReport.$StartTime lt player.age - $Request_Factory_Build_Wait_Time">
                          <!--DISREGARD-->
                          <!--Construction has not started on the factory for a long time.-->
                          <set_value name="$DisregardAction" exact="true"/>
                          <set_value name="$DisregardReason" exact="'Construction has not started on factory for' + $Request_Factory_Build_Timeout" chance="$DebugChance"/>
                          <set_value name="$DisregardObject" exact="$Station"/>
                        </do_if>
                      </do_else>
                      <remove_value name="$Station"/>
                    </do_elseif>
                    <do_else>
                      <assert value="false" text="'Unknown action type ' + $ActionReportDef.$Type + ' [Owen]'" break="1"/>
                    </do_else>

                    <do_if value="$DisregardAction">
                      <debug_text text="'Disregarding action with reason: ' + $DisregardReason + ' Action: ' + $ActionReport" context="false" chance="$DebugChance"/>
                      <do_if value="$DisregardObject and $DisregardObject.isclass.component">
                        <!--.isclass.component check as $DisregardObject may be disconnected and .exists may not work-->
                        <signal_objects object="$DisregardObject" param="'factionlogic_econ_disregard'" param2="$ActionReportDef.$Type"/>
                      </do_if>
                      <append_to_list name="$DisregardedActions" exact="$ActionReportList.{$ARL_i}"/>
                      <remove_value name="$ActionReportList.{$ARL_i}"/>
                    </do_if>
                  </do_all>
                </do_all>
                <remove_value name="$ActionReportKeys"/>

                <!--First, check the insufficient production resources-->
                <!--TODO @Owen - deal with ware shortage tables-->
                <set_value name="$ReportTablesToProcess" exact="[$SectorInsufficientProductsTable, $SectorInsufficientWorkforceTable, $SectorInsufficientBuildTable]"/>
                <do_all exact="$ReportTablesToProcess.count" counter="$h">
                  <set_value name="$TableRef" exact="$ReportTablesToProcess.{$h}"/>
                  <!--TableRef keys are sectors-->
                  <do_if value="$TableRef.keys.count">
                    <set_value name="$TableRefKeys" exact="$TableRef.keys.list"/>
                    <do_all exact="$TableRefKeys.count" counter="$i">
                      <set_value name="$Sector" exact="$TableRefKeys.{$i}"/>
                      <debug_text text="'\n' + $DebugText + 'Checking sector ' + $Sector + ' ' + $Sector.knownname" context="false" chance="$DebugChance"/>
                      <set_value name="$SubTable" exact="$TableRef.{$Sector}"/>
                      <set_value name="$SubTableRefKeys" exact="$SubTable.keys.list"/>
                      <do_all exact="$SubTableRefKeys.count" counter="$k" reverse="true">
                        <set_value name="$Ware" exact="$SubTableRefKeys.{$k}"/>
                        <set_value name="$SectorValue" exact="$SubTable.{$SubTableRefKeys.{$k}}"/>
                        <debug_text text="'Sector ' + $Sector + ' ' + $Sector.knownname + ' has insufficient ware ' + $Ware + ' at value ' + $SectorValue" context="false" chance="$DebugChance"/>

                        <do_if value="$SectorNeighbourTable.{$Sector}?">
                          <set_value name="$NeighbouringSectors" exact="$SectorNeighbourTable.{$Sector}"/>
                        </do_if>
                        <do_else>
                          <!--TODO @Owen decypher the comment below-->
                          <!--TODO @Owen This sector does is not owned by this faction but has stations reporting about wares-->
                          <set_value name="$NeighbouringSectors" exact="[$Sector]"/>
                        </do_else>

                        <!--Check if the neighboring sectors have reports for the same ware. Take them into account but with the $InsufficientNeighbourMultiplier-->
                        <!--TODO @Owen - only if positive?-->
                        <do_all exact="$NeighbouringSectors.count" counter="$sector_i">
                          <set_value name="$NeighbourSector" exact="$NeighbouringSectors.{$sector_i}"/>
                          <do_if value="$NeighbourSector != $Sector and $TableRef.{$NeighbourSector}?">
                            <set_value name="$NeighbourSubTable" exact="$TableRef.{$NeighbourSector}"/>
                            <do_if value="$NeighbourSubTable.{$Ware}?">
                              <set_value name="$SectorValue" exact="$NeighbourSubTable.{$Ware} * $InsufficientNeighbourMultiplier" operation="add"/>
                              <debug_text text="'Neighbouring sector ' + $NeighbourSector + ' ' + $NeighbourSector.knownname + ' also has insufficient ware ' + $Ware + ' to add modified value ' + $NeighbourSubTable.{$Ware} * $InsufficientNeighbourMultiplier + ' for a new value of ' + $SectorValue" context="false" chance="$DebugChance"/>
                            </do_if>
                          </do_if>
                        </do_all>

                        <set_value name="$HighestActionCost" exact="0"/>
                        <set_value name="$HighestDisregardedActionCost" exact="0"/>
                        <do_all exact="$DisregardedActions.count" counter="$o">
                          <do_if value="$DisregardedActions.{$o}.$Sector and $DisregardedActions.{$o}.$Ware == $Ware">
                            <do_if value="$ActionThresholds.{$ActionReportDef.{'$Type'}} gt $HighestDisregardedActionCost">
                              <!--This was a disregarded action for this sector, remember how much worth it had so an action of higher worth can be queued-->
                              <set_value name="$HighestDisregardedActionCost" exact="$ActionThresholds.{$ActionReportDef.$Type}"/>
                              <debug_text text="'Disregarded action had the highest cost so far of ' + $HighestDisregardedActionCost" context="false" chance="$DebugChance"/>
                            </do_if>
                          </do_if>
                        </do_all>

you merely continued on the back of their work.........and i doubt a day later you have got ALL of the info. in the end its about the experience, and many peoples experience aren't there yet. and when x vets point it out, then that should have weight.
Tadas
Posts: 90
Joined: Sun, 2. Dec 18, 03:07
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by Tadas »

Yeah and how do you explain this?

Code: Select all

while game_is_running == true{
	use_real_economy(dont);
	use_fake_economy=true;
}
Checkmate!
Dreez
Posts: 1167
Joined: Tue, 10. Mar 09, 12:50
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by Dreez »

The game was released this friday, it hasn't been out for even one week, give your game some time to establish it's economy...
Consider this... The US has been around for barely 400 years and they still can't get their economy going :lol: .
Of all the things i've lost, i miss my mind the most.
BlackRain
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 7465
Joined: Mon, 15. Dec 03, 18:53
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by BlackRain »

Tadas wrote: Thu, 6. Dec 18, 01:12 Yeah and how do you explain this?

Code: Select all

while game_is_running == true{
	use_real_economy(dont);
	use_fake_economy=true;
}
Checkmate!
No idea what this is but that is supposed to be a checkmate? Is this a joke? How about a little more information, like where did you find that? What is the context, etc.
Tadas
Posts: 90
Joined: Sun, 2. Dec 18, 03:07
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by Tadas »

I was joking, it seems it was only funny for me. I thought it was kind of obvious because of the syntax.
BlackRain
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 7465
Joined: Mon, 15. Dec 03, 18:53
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by BlackRain »

Tadas wrote: Thu, 6. Dec 18, 01:25 I was joking, it seems it was only funny for me. I thought it was kind of obvious because of the syntax.
Sorry lol, I didn't know if you were serious. There are too many crazies around the internet
luci
Posts: 39
Joined: Thu, 21. Nov 13, 23:27

Re: [INFO] To all people reading that economy is fake - it's not

Post by luci »

Morkonan wrote: Thu, 6. Dec 18, 00:22 Is there a danger of this dynamic economy using more resource value in terms of PC/CPU/etc than its actual play-value? (ie: I wonder about the impact of calcs going on in sectors the player has no interest in, yet.)
Without having looked at the actual code nor intending to do so, I would guess that the calculations not seen by the player are merely cost efficient counter variables.
There will be no path finding, no collisions, not even space at all... just some integer plus and minus operations on a data matrix synchronized by a very slow tick. Very hard to design but easy to calculate.

The CPU expensive part comes into play as soon as the player does want to see the data visualized in a nice and colorful universe map.
Then you have to pull data from the matrix and translate it into 3d coordinates to place a a symbol on the screen which does need to follow a certain path which has to be found first.

When the object enters the players 3d environment, the same coordinates from before are being used, but whatever you see in 3d will most likely have no impact at all on the universe calculation, unless you destroy or create something which is needed in further calculations.


So all in all I would guess a fake universe is calculated slightly quicker than a more suffisticated one. Moving ships on fake paths should be equally fast as moving them on real ones and destroying/creating things just results in different but not necessarily more complicated calculations on the underlying data.
Desining a datastructure to feel realistic and fun to play however is probably not easily done.

#atleastthatshowiwoulddoit :wink:
Tadas
Posts: 90
Joined: Sun, 2. Dec 18, 03:07
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by Tadas »

Poe's law in action :)
jasonaerts
Posts: 55
Joined: Sat, 11. Feb 06, 19:40
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by jasonaerts »

Tadas wrote: Thu, 6. Dec 18, 01:12 Yeah and how do you explain this?

Code: Select all

while game_is_running == true{
	use_real_economy(dont);
	use_fake_economy=true;
}
Checkmate!
lol
"Reality is just that part of the imagination we all agree on"
CaptainX4
Posts: 491
Joined: Tue, 4. Dec 18, 16:54

Re: [INFO] To all people reading that economy is fake - it's not

Post by CaptainX4 »

BlackRain wrote: Wed, 5. Dec 18, 23:35
CaptainX4 wrote: Wed, 5. Dec 18, 22:55 well, then it cheats a lot and it definitely cheats the most around the player. the claims in that post have valid base. just look at these pictures:
Spoiler
Show
Image and Image
.
The game is clearly running around the player, you might just havent found that script yet... It might have the base of a simulated economy but it certainly not running based on that.
The economy is real and does not revolve around the player. Of course the player affects things by their actions but everything moves with or without u too
well, did you check the pics in the spoiler? you dont seem to be right... are you sure? just as much as you were sure of no ships spawned? in the sector i am there are 46 stations, in the system my trading ships are, they have the same stations as at the beginning... doesnt that ring a little bell thats something is wrong? and im not doing anything to affect the game, im just watching it running for 2 days now, all my autotrading is happening elsewhere.
BlackRain
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 7465
Joined: Mon, 15. Dec 03, 18:53
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by BlackRain »

CaptainX4 wrote: Thu, 6. Dec 18, 01:32
BlackRain wrote: Wed, 5. Dec 18, 23:35
CaptainX4 wrote: Wed, 5. Dec 18, 22:55 well, then it cheats a lot and it definitely cheats the most around the player. the claims in that post have valid base. just look at these pictures:
Spoiler
Show
Image and Image
.
The game is clearly running around the player, you might just havent found that script yet... It might have the base of a simulated economy but it certainly not running based on that.
The economy is real and does not revolve around the player. Of course the player affects things by their actions but everything moves with or without u too
well, did you check the pics in the spoiler? you dont seem to be right... are you sure? just as much as you were sure of no ships spawned? in the sector i am there are 46 stations, in the system my trading ships are, they have the same stations as at the beginning... doesnt that ring a little bell thats something is wrong? and im not doing anything to affect the game, im just watching it running for 2 days now, all my autotrading is happening elsewhere.
I was right that no ships spawn. I have been saying from the beginning THAT NO SHIPS SPAWN WITH THE EXCEPTION OF the Khaak and some pirates who have no shipyard. Been saying this from the beginning. If you are talking about the time when we got into encounters and I thought I was wrong, I then proved later that I was in fact right. Even encounter ships are built. Those Khaak and pirate ships which spawn (of which there arent that many) have little to no impact on the economy. I have 60 hours in my game and the AI has built tons of stations and I have watched ships get built, etc., I haven't done much at all. The problem is with lack of ships being built because of not enough fighting I guess.

I don't know what your picture is supposed to be showing me. It may be that the AI is building stations closer to the core there because those are important sectors and might have nothing to do with you at all. I haven't looked much into the faction logic yet, but there is a plan behind it all.
Last edited by BlackRain on Thu, 6. Dec 18, 01:40, edited 1 time in total.
User avatar
StoneLegionYT
Posts: 1478
Joined: Fri, 4. Nov 05, 01:18
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by StoneLegionYT »

Clearly Fake!

/s
User avatar
StoneLegionYT
Posts: 1478
Joined: Fri, 4. Nov 05, 01:18
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by StoneLegionYT »

BlackRain wrote: Thu, 6. Dec 18, 01:38
CaptainX4 wrote: Thu, 6. Dec 18, 01:32
BlackRain wrote: Wed, 5. Dec 18, 23:35
The economy is real and does not revolve around the player. Of course the player affects things by their actions but everything moves with or without u too
well, did you check the pics in the spoiler? you dont seem to be right... are you sure? just as much as you were sure of no ships spawned? in the sector i am there are 46 stations, in the system my trading ships are, they have the same stations as at the beginning... doesnt that ring a little bell thats something is wrong? and im not doing anything to affect the game, im just watching it running for 2 days now, all my autotrading is happening elsewhere.
I was right that no ships spawn. I have been saying from the beginning THAT NO SHIPS SPAWN WITH THE EXCEPTION OF the Khaak and some pirates who have no shipyard. Been saying this from the beginning. If you are talking about the time when we got into encounters and I thought I was wrong, I then proved later that I was in fact right. Even encounter ships are built. Those Khaak and pirate ships which spawn (of which there arent that many) have little to no impact on the economy. I have 60 hours in my game and the AI has built tons of stations and I have watched ships get built, etc., I haven't done much at all. The problem is with lack of ships being built because of not enough fighting I guess.
Hey mate. Your a good guy but stick to not replying to these people. I made a thread talking about how X4 MP would not be a MMO / open PVP game, etc and I got all these kids spewing about it being a MMO and how it's all ruined and crap. Honestly it seems that the community has regressed in maturity.
luci
Posts: 39
Joined: Thu, 21. Nov 13, 23:27

Re: [INFO] To all people reading that economy is fake - it's not

Post by luci »

CaptainX4 wrote: Thu, 6. Dec 18, 01:32 and im not doing anything to affect the game, im just watching it running for 2 days now, all my autotrading is happening elsewhere.
They probably just like you very much <3
Love is also simulated in this game. It's awesome!
User avatar
Shuulo
Posts: 1633
Joined: Mon, 14. Apr 08, 17:03
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by Shuulo »

The reason for situations like this on the screenshot can happen is that there is bug currently that is hard to reproduce, it stops all AI ships and everything to work, they just hang in space doing nothing, both friendly and Xenon/khaak ships. After some time they start to vanish, maybe due to some "trash collector" of bugged ships, and new ones are never rebuilt.
It happened to me twice, had to restart the game. currently in my 3rd playthrough 30+ hours in and everything seems normal, just hope I will not have the same bug again.
CaptainX4
Posts: 491
Joined: Tue, 4. Dec 18, 16:54

Re: [INFO] To all people reading that economy is fake - it's not

Post by CaptainX4 »

Morkonan wrote: Thu, 6. Dec 18, 00:22 A quick question(s) on this, not having the chance yet to play it myself:

Does all this "dynamic economy" translate into a more rewarding experience for the player than the X3 "well-faked" economy did?

Is there a danger of this dynamic economy using more resource value in terms of PC/CPU/etc than its actual play-value? (ie: I wonder about the impact of calcs going on in sectors the player has no interest in, yet.)

Are all areas/regions/sectors in the game "live" as well and running their own dynamic simulations that are not yet impacted by the player's actions? (ie: How much is dedicated to things going on outside of the player's "light cone" or, IOW, capability to ever experience?)

Deep questions, I'm sure, since it would take knowing the actual code to answer. Sorry. :)
x3 had the dynamic economy, that would be the ideal..., all stations were trading for themselves all ships exchanged actual wares. there were a few sinks in late iterations but nothing like in xr. x4 tries to go back to the x3 ways of trading actual wares between stations and ships but it seems for whatever reasons its only happening if the player is actually personally there. guessing to save on calculations but utterly unsure.
BlackRain
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 7465
Joined: Mon, 15. Dec 03, 18:53
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by BlackRain »

Shuulo wrote: Thu, 6. Dec 18, 01:44 The reason for situations like this on the screenshot can happen is that there is bug currently that is hard to reproduce, it stops all AI ships and everything to work, they just hang in space doing nothing, both friendly and Xenon/khaak ships. After some time they start to vanish, maybe due to some "trash collector" of bugged ships, and new ones are never rebuilt.
It happened to me twice, had to restart the game. currently in my 3rd playthrough 30+ hours in and everything seems normal, just hope I will not have the same bug again.
I thought there was an expiration but when I checked jobs, the expiration times are actually commented out. There might be something else which kills 'dead' ships or it could be a bug or part of that bug
Last edited by BlackRain on Thu, 6. Dec 18, 01:51, edited 2 times in total.
BlackRain
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 7465
Joined: Mon, 15. Dec 03, 18:53
x4

Re: [INFO] To all people reading that economy is fake - it's not

Post by BlackRain »

CaptainX4 wrote: Thu, 6. Dec 18, 01:47
Morkonan wrote: Thu, 6. Dec 18, 00:22 A quick question(s) on this, not having the chance yet to play it myself:

Does all this "dynamic economy" translate into a more rewarding experience for the player than the X3 "well-faked" economy did?

Is there a danger of this dynamic economy using more resource value in terms of PC/CPU/etc than its actual play-value? (ie: I wonder about the impact of calcs going on in sectors the player has no interest in, yet.)

Are all areas/regions/sectors in the game "live" as well and running their own dynamic simulations that are not yet impacted by the player's actions? (ie: How much is dedicated to things going on outside of the player's "light cone" or, IOW, capability to ever experience?)

Deep questions, I'm sure, since it would take knowing the actual code to answer. Sorry. :)
x3 had the dynamic economy, that would be the ideal..., all stations were trading for themselves all ships exchanged actual wares. there were a few sinks in late iterations but nothing like in xr. x4 tries to go back to the x3 ways of trading actual wares between stations and ships but it seems for whatever reasons its only happening if the player is actually personally there. guessing to save on calculations but utterly unsure.
Wow, I guess you are going to continue to ignore everything that is said and stick to your absurd assumptions, okay. I am really done talking about it now.

Return to “X4: Foundations”