Appearance
question:Обнови информацию об игре: Developer Diary | Nations Thread starterifischer13 Start dateOct 17, 2023 Hello, everyone! Ian Fischer of C Prompt Games here again, this time with our third Developer Diary for Millennia. Today we’re going to talk about Nations. Nation is something of a catch-all for everything controlled by any distinct “player” in the game. Millennia makes you the guiding spirit of a people, in charge of leading them through 10,000 years of human history -- the thing you lead and build with your decisions during the game is your Nation. Regions and Vassals Rob went over some basics of Regions and Vassals in our last Developer Diary, Regions define a big chunk of your Nation. They have territory and population, provide places for Improvements and Capital Buildings to be built, and they are the primary source of the Goods and resources that power everything you do. Vassals are similar to Regions, but they are not directly controlled. Vassals grow on their own, expand borders, build buildings, and so on. They also pay a portion of their income to their Nation, which can make them quite valuable. When you conquer an enemy Capital or use a Settler, you gain a new Vassal. Your Vassals have an Integration level, which describes how much the people there feel like part of your Nation. Vassals you gain by using a Settler need less Integration than Vassals you acquire after your army takes control of the place by force, but Integration in either will slowly increase over time (and a power in the Diplomacy Domain can be used to speed this up). image1.png If you want the Vassal to be a full Region, one that you control directly, you only need to worry about Integration – once you have 100 Integration, you can make the Vassal a Region. However, Vassals also have a Prosperity rating. If you plan to keep a Vassal as a Vassal, you might want to work to increase its Prosperity, as this will make it more productive and increase the value of what it contributes each turn. As Nations grow larger, they require more to maintain cohesion. Each Region in your Nation increases the amount of Culture “spent” to keep it together and also increases the amount of Unrest across the Nation. Hence, depending on your strategy and how you have guided your Nation, you probably want a mix between a number of Regions and a number of Vassals. Minor Nations Another way you might add a Vassal to your Nation is through a Minor Nation. image3.png Minor Nations are larger protected settlements that occupy spaces in the world from the start of a game. They do claim territory, but unlike many borders, anyone can move into and through a Minor Nation’s space. If you have a strong enough military, you can attack and conquer a Minor, which will make it a Vassal in your Nation. Alternatively, you might go the diplomatic route and send an Envoy to convince the Minor to join willingly. Governments One factor that can have a substantial impact on the number of Regions and Vassals best for a Nation is Government. All Nations have a Government, starting with Tribal. In Ages 3, 5, and 8, other options become available. Structurally, Governments are similar to National Spirits – they provide access to a set of Ideals that can be unlocked using Government Domain Points. Unlike National Spirits, they do not stack. You only have one Government at a time and taking a new one replaces the old one. Governments provide a specific Government Building and also define the baseline value of a Capital City. The Capital of a Nation with the Tribal Government, for example, generates 2 Culture per turn (among other things). As a Democratic Republic, the same Capital City would provide 4 Culture per turn. image2.png Governments are designed to guide and support different strategies. As mentioned above, some Nations will benefit more from having a lot of Vassals and a small number of Regions, whereas for others the opposite is true. Governments have a heavy hand in that decision, either by taking a Government that suits your direction so far, or taking a Government and playing to its strengths. If you research a Government into its highest tier, you can “Reform” it, which provides additional Innovation and Culture. Once your current Government is reformed, the ability to select a new form of government via a Peaceful Revolution (a Culture Power) is also unlocked. You can still adopt a new Government if you have not Reformed your current one, but it must be through Violent Revolution in this case. Violent Revolutions come with a non-trivial amount of Chaos, so it is generally better to avoid this route unless you feel you must transition to a new Government right away. During later Ages, Governments take on additional importance through Faction. With Faction, your choice of Government encourages your Nation to favor other Nations with the same Government (and to dislike those with different Governments). At this point, Nations also start competing to advance their Faction (which provides bonuses for all members of the Faction) and to lead their Factions (which provides bonuses for the leader). (The Space Race, which generally dominates Age 8, provides considerable Faction bonuses, especially for the Nation that manages a moon landing.) image5.png Diplomatic Relationships Once they have made contact, Nations have diplomatic standing with one another. There are five diplomatic states: War, Hostilities, Peace, Open Borders, and Alliance. Nations begin “At Peace” with one another and the simplest form of diplomacy is available immediately – you can propose improving your diplomatic state (for example, suggesting going from Peace to Open Borders) or you can declare a move in the other direction (for example, declaring that you’re changing from At Peace to Hostilities). More sophisticated diplomatic options are available if you deploy an Envoy at another Nation. With an Envoy in place, you gain a new set of actions that allow you to adjust your relationship in more specific ways (…like extorting money from weaker neighbors). image4.png A final stage here is achieved if you can afford and get agreement for opening an Embassy. Like the Envoy, an Embassy opens up a new set of diplomatic options. In this case, it allows you to establish Treaties, which reward both sides with ongoing resources. Barbarians Barbarians and their ilk can be thought of as a special kind of “Nation” but they aren’t a true Nation in most respects. In early Ages, Barbarians are a bit of danger in the unknown world. They’re out looking for things to fight or burn down, so you need to take some precautions. They do not expand in the same way that other Nations do, but they will multiply and establish new camps if they are not dealt with. Barbarians advance and become more dangerous with time (and on occasion Barbarian Warlords make an appearance), but their objectives remain mostly the same. There are different hostile groups that operate in a manner similar to the Barbarians but which are unique to the different Variant, Crisis, and Victory Ages. Each of these have slightly different priorities, such as razing improvements, destroying towns, getting into fights with your units, or stealing your cattle. In the Age of Revolution for example, Rebels are a new Barbarian-like threat – if not managed, they can cause Regions to declare independence and break away from a Nation (forming new “splinter” Nations). Thanks! We hope you have enjoyed this look into some of the Nation-related systems of Millennia. We’ll be back on November 2nd to talk about War. If you like what you have seen, please wishlist us!
answer:Этот третий дневник разработчиков от Иэна Фишера из C Prompt Games фокусируется на системах, связанных с нациями (Nations) в игре "Millennia". Вот ключевые моменты, упомянутые в дневнике: 1. **Национальные Особенности (Nation Features)**: - "Нація" є поняттям, що охоплює все, що контролюється будь-яким "гравцем" у грі. - Гравець керує нацією на протязі 10,000 років людської історії. 2. **Регіони та Васали (Regions and Vassals)**: - Регіони - це основна частина нації, і вони визначають території та населення, де можуть будуватися поселення та урядові будівлі і звідки добуваються ресурси. - Васали схожі на регіони, але вони не підпадають під безпосередній контроль. Вони ростуть самі по собі і платять вам частину своїх доходів. - Завойовані столиці ворожих націй або території, освоєні Сідлерами (Settlers), перетворюються на васалів. - Васали мають рівень інтеграції, що відображає, наскільки населення відчуває себе частиною вашої нації. 3. **Малі Нації (Minor Nations)**: - Це більші захищені поселення, які існують на мапі з самого початку гри. - Малі нації можна приєднати до своєї нації як васалів шляхом завоювання або дипломатичним шляхом. 4. **Уряди (Governments)**: - Уряди подібні до Національних Спіритів (National Spirits) - вони надають доступ до набору ідеалів, які можна розблокувати, використовуючи бали домена уряду. - Уряди мають важливий вплив на стратегію нації, сприяючи різним напрямам розвитку, та можуть бути реформовані для отримання додаткових інновацій та культури. 5. **Дипломатичні Відносини (Diplomatic Relationships)**: - Після контакту, нації мають дипломатичний станус одні до одних. - Існує п’ять дипломатичних станів: війна, ворожість, мир, відкриті кордони та альянс. 6. **Варвари та Інші Групи (Barbarians and Others)**: - Вважаються особливою категорією "нації", але не є нацією в повному розумінні. - Варвари є певною загрозою в невідомому світі і можуть становити більше небезпеки з часом. - Є й інші ворожі групи, які діють подібно до варварів, але унікальні для різних вікових криз та прагнень до перемог. Разом з цими системами, в дневнике згадується про додаткові аспекти управління нацією, включаючи культурні витрати, соціальне невдоволення, конкуренцію між фракціями та посилення дипломатичних відносин через введення посольств та укладення договорів. Ця інформація дає гравцям розуміння важливості стратегічного розширення, управління міжнаціональними відносинами та вибору уряду в контексті розвитку їх націй в межах глобальної гри.
question:Is net.ipv4.tcp_reordering set the number of duplicated ACK packets to trigger tcp fast retransmit on Linux?
answer:No, `net.ipv4.tcp_reordering` does not set the number of duplicated ACK packets to trigger TCP fast retransmit on Linux. Instead, `net.ipv4.tcp_reordering` is a sysctl parameter that specifies the maximum number of out-of-order segments that TCP should tolerate before it decides to retransmit a packet, assuming that a packet has been lost or is delayed somewhere in the network. The TCP fast retransmit mechanism is triggered by the receipt of a certain number of duplicate ACKs. This threshold is not directly configurable via a sysctl parameter, but it does correspond to the TCP DupACK threshold, which is typically set to 3. This means when a sender receives three duplicate acknowledgments for the same packet (indicating that subsequent packets have been received), it infers that the packet has been lost and performs a retransmission without waiting for a retransmission timer to expire. The `net.ipv4.tcp_reordering` parameter, on the other hand, affects how aggressively TCP will retransmit when it believes packets are merely reordered rather than lost. A higher value for `tcp_reordering` allows TCP to be more tolerant of packet reordering, which can be beneficial in networks where reordering is common and does not necessarily indicate congestion or packet loss. For example, to change this parameter, you could use the sysctl command like this: ``` sysctl -w net.ipv4.tcp_reordering=<new-value> ``` Please note that you should be careful when tuning these parameters, as they can affect the performance and reliability of TCP connections. The default settings are often good for most typical network scenarios.
question:Is net.ipv4.tcp_reordering for sender? Why to set it if fast retransmit is enabled by default? Can you show the example of how it works?
answer:The `net.ipv4.tcp_reordering` sysctl parameter is indeed for the TCP sender. It specifies the degree of out-of-order packets that the sender allows before it decides that a packet in the sequence has been lost and takes retransmission action. Even though fast retransmit is enabled by default in TCP implementations, the `tcp_reordering` parameter is still relevant. Fast retransmit works on the principle of detecting packet loss early by using duplicate acknowledgments (ACKs) as a hint. However, `net.ipv4.tcp_reordering` caters for a different issue: it's about tolerating packet reordering in the network, which does not necessarily imply loss. In some networks, packets might arrive out of order for a variety of reasons, such as route fluctuations or differential treatment of packets due to varying service levels. When this reordering is mild, it's beneficial not to retransmit too soon so as not to contribute unnecessary load to the network, which can actually exacerbate congestion if present. Here's a simplified example of how `tcp_reordering` works: 1. Imagine TCP has sent packets 1, 2, 3, and 4. 2. Now suppose packet 2 takes a bit longer to travel, and the receiver first gets packets 1, 3, and 4. It cannot acknowledge packet 3 and 4 because packet 2 has not been received, so it sends duplicate ACKs for packet 1. 3. If the sender receives three duplicate ACKs for packet 1, it indicates that at least three packets have been received after packet 1 — that would normally trigger a fast retransmit for packet 2. 4. However, if the sender's `net.ipv4.tcp_reordering` is set to a value higher than 3, it can wait for more out-of-order packets before deciding that packet 2 is lost and retransmitting it. It does this under the assumption that packet 2 is delayed rather than lost. By setting a `tcp_reordering` value that reflects the level of reordering present in the network, the sender can avoid unnecessary retransmissions, which would waste bandwidth and processing resources. But setting it too high could result in longer delays in packet recovery when actual loss occurs. The default value in most Linux distributions is 3, reflecting the DupACK threshold for fast retransmit, and is generally a reasonable default for a wide range of network conditions. Do note that changes to TCP settings should be tested and evaluated in a controlled manner, as they can have broad effects on network performance and reliability.
question:Does it coexist with SACK? answer shortly
answer:Yes, `net.ipv4.tcp_reordering` coexists with Selective Acknowledgment (SACK). SACK is used to indicate precisely which packets have been received successfully, allowing for more efficient loss recovery, while `tcp_reordering` determines the sender's tolerance for packet reordering before assuming a loss and initiating retransmission. SACK enhances the ability to deal with multiple packet losses and reordering within the same window of data.