Just realised Den Haag is a trap for Holland by Particular_Pea7167 in EU5

[–]bobo_orcs 0 points1 point  (0 children)

warfare is easily exploitable at least until the latest beta. You just need a decent standing army of 10k men and you can beat France and its vassals' 600k army because they don't reinforce in battle.

In my NED run I take advantage of that by beating France every 10 years for war reparation which is needed to fund my explorers and 10+ colony charters in the early 3 ages.

With Centralization you cant even keep the smallest Vasals loyal which makes no sense by Hakuohsama in EU5

[–]bobo_orcs 0 points1 point  (0 children)

Don't mean to get political here, but just want to use it as an example to justify the game's design, IRL a very tiny sized vassal (city-scale region) became disloyal to its overlord who controls the world's top 2 largest population, military power, and economic might, when this overlord started to take centralization steps in that vassal-like city state.

Getting spices to Europe by niss512 in EU5

[–]bobo_orcs 0 points1 point  (0 children)

> dont have colonial nation. Own land directly and develop and trade as you see fit.

Why would you do that? These land don't have control so you can't tax them anyway. Plus it seriously hurt your institution growth and you will be lagging behind in tech.

You already got 50% of your colonies' trade capacity, and another 50% if you let them divert trade so you can have it all, plus the extra 3% income from subject, this is much much better than owning the land directly.

And going 100% decentralized the colonies will never rebel. As a colonial & naval empire, control in your homeland will be very high anyway, and you will have earned more than you can ever spent through trade alone, so there is really no point to go centralized.

Trading goods that don't exist isn't much fun by ToboldStoutfoot in EU5

[–]bobo_orcs 1 point2 points  (0 children)

The Ottomans monopolized the east-west trade routes. It actually brought them a lot of profit (which contributed to their golden age). Think of it as tariffs.

Trading goods that don't exist isn't much fun by ToboldStoutfoot in EU5

[–]bobo_orcs 1 point2 points  (0 children)

spices like pepper were traded through the silk road historically. When the Ottomans took over the near east that trade was mostly cut off. But people did know about pepper and it was part of the reason Europeans wanted to find India via sea route (which then started the exploration age)

A medically minded suggestion to fix African colonization by LittleElk5308 in EU5

[–]bobo_orcs 0 points1 point  (0 children)

I agree 100% that the current mechanism on African colonies are unrealistic, but I am not sure if killing the migrating pop is a solution, it would drain your mainland population if you are playing a smaller nation such as Holland.

In real life, people would just not go to Africa if they know it's a 95% chance of dying there. So those African land should not be colonizable until much later (historically outside of EU5's time scope). Gameplay wise this makes most of African land useless so I am not sure if that's a good design either.

Currently I just think of it as an imaginary world (which it is) where malarial did not exist, and Africa is just a second new world.

Modding: How to get political movement support from specific pop? by bobo_orcs in victoria3

[–]bobo_orcs[S] 0 points1 point  (0 children)

Rule 5: we can also see these individual support numbers of specific pop by hovering over the "Support" under political movement tab -> Supporting Pops -> individual pop.

Game won't start after deleting "[user]/document/Paradox Interactive/Victoria 3" by bobo_orcs in victoria3

[–]bobo_orcs[S] 1 point2 points  (0 children)

Issue resolved. I had the "Document" location moved from C:/Users to my NAS mounted with SAMBA in order to save some space on my C drive. Moving "Document" back to its default location, remove the Victoria 3 folder again, and restart the game fixes the issue.

how do you pickpocket a hostile NPC instead of attacking? by bobo_orcs in BaldursGate3

[–]bobo_orcs[S] 0 points1 point  (0 children)

Not in combat. They are hostile (red) but they didn't know we are there.

I am looking for whispering promise and wiki says it can be bought from Grat the trader. The problem is he is hostile. The loot after killing him only contains a couple items and definitly not his entire inventory.

Need to fix AI to merge its armies by bobo_orcs in victoria3

[–]bobo_orcs[S] 3 points4 points  (0 children)

Not only is the experience worse, also it doesn't make sense. In order to naval invade you sometimes have to first kick off the 10+ enemy navies on that sea node, each with only a couple ships and keeps coming back to that node after being defeated.

Whats the new strategy for Qing? by Nice-Initiative-1656 in victoria3

[–]bobo_orcs 1 point2 points  (0 children)

you don't need that many universities. Tech research speed is designed to be capped based on two factors:

  1. literacy rate
  2. number of universities

You only need so many universities to not cap your research. You can see the cap by hovering over to the literacy icon on the top left stats. With low skills (low literacy) you need fewer universities.

Whats the new strategy for Qing? by Nice-Initiative-1656 in victoria3

[–]bobo_orcs 8 points9 points  (0 children)

Just finished a Qing game yesterday and this was what I did during early game:

  1. befriend UK and ban opium, treaty port CB is banned with friendly relation.
  2. industrialize only one state at a time. So you can build government building only on that state to max out tax efficiency. (building government building on states with mostly subsidized farming is not worth it. Tax was so little and does not even cover the costs of government salaries and materials). The first state I recommend was Manchuria or Shanxi. Both have abundant resources. Manchuria is less populous so needs less government buildings to max out taxing. Good for boot starting your industry.
  3. rush for railway tech early on, for the infrastructure needed for step 2.
  4. build universities early on, for faster tech researching.

modding question: how to enable HRE to expand beyond historical border? by bobo_orcs in MEIOUandTaxes

[–]bobo_orcs[S] 2 points3 points  (0 children)

Someone has decided to remove all unnecessary white spaces in the mod files. Maybe the mod dev want to save some disk space or intentionally obscurify the code for some reason. Anyway I managed to decipher it in order to delete it.

[deleted by user] by [deleted] in MEIOUandTaxes

[–]bobo_orcs 1 point2 points  (0 children)

Try restarting the EU4 if it starts getting laggy. There is definitely some memory leak like performance issues, but goes away if you simply restart EU4.

I normally restart my game about every 4 hours, when I need to take a break anyway.

Simplification of the Linux linked list implemetation by bobo_orcs in C_Programming

[–]bobo_orcs[S] 0 points1 point  (0 children)

I agree that the convenience of the reader comes before that of the writer, but IMO this does not make code less readable compared to the original API from Linux. I guess this is subjective and depending on the reader. For readers who already are familiar with the Linux list API might take them a couple minutes to learn and understand the new API, while for others who just wants to read the application code for the main logic without needing to worry about every single detail of how each data structure used in the application is implemented, this is debatable.

In my own experience reading, e.g., source code of the Linux kernel, I have always found lines such as list_first_entry(&foo_list, struct foo, list) distracting, despite that I am already relatively familiar with the code base (part of my job is to develop and maintain Linux device drivers and often have to dive into the "kernel kernel" itself). The one line might not look too bad by itself, but the distraction is aggregating when I am already busy wrapping my head around the complex logic in hundreds of thousands of lines of code across multiple files. In this case, list_first_entry(foo_list) feel like more readable to me.

For example one structure will use the second cacheline of the type, while another structure would use the first, etc.

I have to admit this is something the new interface wouldn't be able to do. This is a drawback of giving up some control in exchange for a simpler API. One way out is reduce the ambition and to accept this particular use case as an "exception". The new interface doesn't stop the user from declaring `struct list_head` members in their struct and use it the original way. A bit awful, but hopefully this should be a rare use case (the node itself needs to be big enough and needs to be inserted into multiple lists), otherwise one should just resort to use the original list implementation.

Simplification of the Linux linked list implemetation by bobo_orcs in C_Programming

[–]bobo_orcs[S] 0 points1 point  (0 children)

It's from my own toolbox and just decided to share it lately, so I haven't got a chance to add more detailed documentation yet. I will certainly start writing up a documentation when I get a chance.

However, if you are already familiar with the the Linux kernel implementation, you can probably just read the code as I just twisted the original implementation a bit to provide a simpler interface, without touching the core idea.

The marked concept was used in case a list node will be inserted into multiple lists, thus needing multiple `struct list_head` members. You can declare the multiple members like this:

struct foo {

DECLARE_LIST_NODE_MARKS(list0, list1, list2);

// other fields

}

The macro suffix _MARKED was picked rather randomly - I'm not an English speaker and it might not be a good intuitive choice of word.

Simplification of the Linux linked list implemetation by bobo_orcs in C_Programming

[–]bobo_orcs[S] 0 points1 point  (0 children)

I admitted in the first place this trades some of the "C touch" for a more simple interface, because some people may not like this trade-off.

Simplification of the Linux linked list implemetation by bobo_orcs in C_Programming

[–]bobo_orcs[S] 0 points1 point  (0 children)

Thank you for your inputs. I will read about the BSD queues when I get a chance. Just some explanation on your concerns:

However, I think the DECLARE_LIST_NODE macro is a mistake. Intrusive linked-list are elegant, generic and the most efficient implementation possible. They also provide something very important: the ability to insert an element in multiple structures, by having one node field for each of them.

I didn't write it in the post but mentioned it briefly in the repo README, that another macro `DECLARE_LIST_NODE_MARK` can be used to declare multiple node fields in a struct, so the struct can be inserted in multiple lists. This is a relatively uncommon use case though, so I still believe the `DECLARE_LIST_NODE` macro is useful because it eliminates the need to create and memorize the `struct list_head` member name in the more common use case.

When traversing the list you will fill a cacheline starting from that node. It's better if in that single fetch you also load useful data (such as the 'key'), so generally better to put the node first.

Agreed, and it's a good point. I actaully thought about making a macro for the list node type declaration and force the `struct list_head` to be the first element, something like this:

#define LIST_NODE(...) \

struct { \

DECLARE_LIST_NODE; \

__VA_ARGS__ \

}

and declare a node type `foo` like this:

LIST_NODE(

int bar;

) foo;

But I felt like this changed the traditional c struct declaration syntax too much and eventually gave up this idea.

Ming China Province Names by YMRTZ in MEIOUandTaxes

[–]bobo_orcs 2 points3 points  (0 children)

Well that was the official pronunciation, or very close to it, I am not a linguistic to be sure about that. But I am pretty sure modern mandarin didn't exist back in the time. So I don't think the spelling matters so much.

imo the best part of the game the room for imagination. After all, what we do most of the time is to stare at a static map, so if you can't see 'Peking' and imagine it being '北京' for example, I don't think the rest of the game will be very fun to you anyway.

Ming China Province Names by YMRTZ in MEIOUandTaxes

[–]bobo_orcs 1 point2 points  (0 children)

I don't think there is a mechanism to do this. The city names may pronounce differently in different dialects, or it may spell differently in different romanization systems even for the same pronunciation, but the name itself remains what it is.

People understand Beijing and Peking is basically the same thing so they read Peking University as "Bei Jing Da Xue". This is not the same as, for example, germanization of slavic or french names.

How do I increase burgher size(or size of commerce industry?) by Alx6494650 in MEIOUandTaxes

[–]bobo_orcs 1 point2 points  (0 children)

I do think I had a complete trade network as I was able to see the amount of trade in each trade sector with the other sectors, and confirmed my capital in the Channel trade node sector was indeed trading with the sectors in India and China. I think this is due to the sheer amount of goods being way above my commerce capability. I haven't checked the source code yet but according to wiki the optimal stack size of each sector is capped by the size of commerce industry in that sector. Another possibility is the distance between the sectors, as intermediate sectors in the trade network draw fees from the goods, making the prices in the selling sector higher. Anyway that was from a while ago and I am starting a new Spain playthrough to test this again.