The structure on the left hand side, next to the trade wagon is an upgraded administration center. The structure on the right, that looks like an obelisk, is an upgraded monument.
Recent community posts
It's still a way off, but I've been toying with not even doing a tech tree. From a thematic standpoint I don't it really makes sense. When I think of the bronze age, I think of large palace complexes, expansive trade networks, the first laws, and a devastating collapse. The typical progress-through-technology aspect of Civilization and the like don't fit into that image for me.
Instead I'm thinking of something more akin to the Book of Laws from Frostpunk. Instead of a linear progression, you would be able to specialize your empire through laws. Most laws would offer some form of choice and trade-off. Religion, for example, one of the early laws could be a choice between venerating the gods, or venerating the king. The first choice would lead to a stronger priesthood and temples, the other would lead to a stronger king. Forcing the player to choose between options will cause their empires to evolve and specialize, so that one player could end up radically different than another.
Tech trees in games are often used to gradually ramp-up complexity, helping to ease players into the game. The book of laws wouldn't really do that, so I see a separate progression system based on access to items (such as Mudbrick, Wood, Copper). This system would hide items in the UI until the player has gained access to pre-requisite items. For example, at the start of the game the player wouldn't have discovered mudbrick yet, and so wouldn't see the option to build any structure that requires it (i.e. most of them). But they would be able to construct farms or a brickworks. Once they build a brickworks they'll discover Mudbrick, and gain access to more construction items.
This would move players along a chain of items, and increasing complexity. The end-state could involve a dozen items all linked in intricate production chains, requiring long ranged trade. I think this would be a fairly natural way ease new players into the game, without needlessly slowing down to progress for the player, without locking experienced players behind arbitrary gates. It would also fit thematically, mirroring the complex trade networks at the height of the late bronze age.
Thanks for the post!
An easy to implement feature
It's a universal truth that any feature described as "easy to implement" is no such thing. That being said, I'd like to do more with structure adjacency. Like an irrigation system that boosts the output of adjacent farms, or docks that require adjacent water.
a system for multiple structure layers
I'm not sure how multiple structure layers would work from a UI perspective, or how useful it would be. The "building on swamp" case could be handled by having a worker unit that could fill in shallow water(changing it to grass or dirt). Siege engines could also be done without layers, they wouldn't work well as structures to begin with, as structures are assumed to be owned by whoever owns the territory (i.e. the town you're attacking).
there should be a way to set certain resources to be visible only to certain races in the UI
I have a note on the issue tracker around item based progression. The idea behind that is to hide certain things until the player has discovered the items they require. E.x. the player wouldn't see the option to construct a bronze statue until they have discovered bronze. And they wouldn't see the option to construct a bronze smelter until they've discovered tin and copper. This would have the side effect of hiding items that a race can't use. Masklings would never see copper in their UI because they have no way to obtain it.
a quick build bar of some kind to settlements / hold shift to place multiple
That's a good idea, I'll see what I can do.
Thanks for the suggestions!
Masklings will eventually get some sort of advancement, but they're not supposed to be a fully fleshed out race. They fill the role of a goblin or a skeleton, a simple, basic enemy that isn't too threatening. In the future there will be other enemy races, and rival humans who will be much more dangerous.
I'm not sure if Masklings will have boats, depends on how difficult the AI is to write. Sea-born invaders is something that I'd like though, the sea people were a major element of the bronze age collapse.
AI Tribes pick randomly from the available colors, sometimes there just aren't enough to go around.
You shouldn't modify BaseMod. Instead there is a folder called mods. You can zip up the files and put them in there, along with a manifest file. There are two mods distributed with Bronze Age that you can use as examples. You can also distribute the mod zip file. I'd be interested in seeing it myself.
Right now add_element will only add the first descendant. That was the simplest approach from a code standpoint. I could make it able to add multiple, but it doesn't seem like that big an issue to me.
needs_road_access is only used for UI feedback for the player. If a structure has needs_road_access set to true, then you'll see a warning icon in the game if the structure doesn't have a walkable hex (road or empty) adjacent to it.
<available_structure id="human_tm" id="human_wb" id="human_bs" id="human_cm"/>
Duplicate attributes aren't allowed in XML, and due to the way the data mutators are executed that XML file is parsed (and throws an error) for every datafile loaded.
Did I get everything? Thanks for all of the questions, by the way.
Which settlement are you targeting the trade command on? Trade wagons will carry out exports for the settlement you target them at, and bring back exports from any trade destination.
For example, say A is exporting Mudbrick to B.
If you tell a trade wagon to trade for A, it will see the exports to B and carry Mudbrick from A to B.
If you tell a trade wagon to trade for B, it won't see any exports and will patiently wait for something to do.
You can also check the Trade Route itself, and make sure that enough of the right items are set to be exported. If the trade route is set to export 5 copper, then trade wagons will only deliver copper until the target settlement has at least 5.
It's possible to play as masklings with a very small tweak to the data files. TestMod actually does this, so you can enable it if you want to try them out.
Maskling's aren't playable by default, however, because they're pretty boring right now. They don't have any resources to worry about, or anything to trade.
Found the problem, it looks like it's due to the "Not enough housing for migrants" notification being present when saving the world. I'll have a fix in the next patch, in the mean-time you should be able to avoid the problem by adjusting the autosave interval, dismissing any notifications, and/or building more housing.
They may not have any other targets. Their logic is:
- Roll percentage chance to attack the player (based on Hostility).
- Attack the player directly (if possible)
- Pick a random enemy settlement on the same landmass and attack them.
It could be that you're the only viable target for option 2
No, they don't. Try a new world, with a higher hostility setting. Maskling camps in 2.1 will have a higher proportion of warriors, and will attack you more aggressively throughout the game. The higher the Hostility setting, the more likely they are to specifically attack you.
Boats are scheduled for the update after the next (Conquest Update comes out today, Morale Update probably in January, then Boat Update). Bridges will be coming in the Morale Update, but those will be restricted to settlements for now. You'll be able to use them to cross rivers, but not oceans. I'll see about tweaking the "small landmass detector" when picking start locations to give a better warning about islands.
For the disappearing settlers, when you order a settler to settle in a region that already has a settlement they should vanish and join the settlement as 1 population. Are you not getting the population increase in the settlement?
Do you see highlighted hexes on the ground around your admin center? If you click on those you should get a prompt for starting new construction. You should also see a window at the top of the screen with information on your settlement. If you don't, try panning around a bit to focus on the admin center.
You can also try clicking the "World Map" display in the upper right, clicking on the village name on the left hand side, then clicking "Local Map" in the upper right. That will center you directly on the settlement and show the management controls.
Nookkrium made a video on bronze age that might be helpful:
The world generator is based on noise maps (here's an overview) that have values between 0 and 1, there are several maps defined in "wg_noisemaps" in BaseMod.zip. (you can add new ones too). "noise_mapping" maps the values of noise maps to a biome, when the world is generating biomes are picked based on their noise mappings. The biome closest to all of it's "ideal_value"s is chosen.
desert, for example has:
<noise_mapping id="height" ideal_value="0.6" /> <noise_mapping id="rain" ideal_value="0.0" />
That means that an area that's fairly high in elevation and low in rainfall will tend to be desert.
For comparison, grassland has:
<noise_mapping id="height" ideal_value="0.6"/> <noise_mapping id="rain" ideal_value="0.4"/>
Both of these biomes have the same value for height, but different values for rain. If the "rain" noise map has a value of 0.1 in the area, then "desert" will be a better match, and will be picked. If the "rain" noise map has a value of "0.3" in the area, then "grassland" will be a closer match.
The noise mapping you pasted, uses the "oretype" noise map. That noise map controls what type of ore-type resources appear in the ground. This tends to make some areas rich in limestone, and others rich in copper.
Does that all make sense?
I'd like to add an engineer type unit that can build roads and bridges outside of your territory, they'd be a good candidate for long stretches of road inside your settlements as well. They might also be able to flatten mountains given enough time. I've added it to the list, thanks!
Morale is a good idea, games have always bugged me when battles almost always result in the total annihilation of one side. I've been planning on adding it in some capacity in a future update, with Nobles that can boost the morale of nearby troops. Instead of making the Nobles frail, however, I'm thinking they should be strong. The Noble and his guard would be equipped with the best gear money can buy. The Noble could die permanently, however, and would be hard to replace (I really like that Risk/Reward aspect of using generals in Total War).
I'm not sure how to handle logistics. I'm leaning towards an invisible supply line with limited length, encouraging the creating of support outposts which would be easy for the AI to attack.
Player controlled raiders are a good idea, but right now there's nothing for them to steal.
Adding new Resources
This is more of a multi-step process.
- Create a new data file (again with "game_data" at root), and add the resource element: <resource name="My New Resource" />.
- Define the new terrain (this can be in the same data file, or another one): <terrain id="my_new_resource_terrain" image="t_new_resource" cleared_image="t_new_resource" map_image="map_grass" is_walkable="true" is_swimable="false" move_cost="1" resource="My New Resource"/>
- The values of "image" and "cleared_image" should correspond to an image file in the mod.
- The value of "resource" should be the same as the name of your new resource.
- Copy "wg_biomes" into your mod, and add the terrain to whatever biomes you want.
- Zip and load the mod as noted in my previous reply.
Side Note: Thanks for asking these questions, it's made me realize how crummy the ModApi is for modifying data instead of creating new data. I'll work up a better system for this but it will probably be a few weeks.
I really should have gotten around to documenting the XML format, but it's tedious work.
So, you want to add a building/unit to an existing race? "h_r_human" is the race definition. The "available_unit" entries aren't used that much, only for determining what settlers the race can produce. "available_structure" is the more important one, as that populates the list of structures you can place. New units should be added through a structure. The "id" attribute on "available_structure" needs to correspond with the "id" on a "structure_data" element somewhere in the xml files. The actual names of the files are only important for over-writing files through mods, you can name a new XML file whatever you'd like.
Adding a new Structure
- Crate a manifest file for the mod (you can copy and modify manifest.xml in BaseMod.zip)
- Create a new XML file, it should contain "game_data" at the root, then the "structure_data" for your new structure.
- Copy "h_r_human" into your mod, and add a new "available_structure" element, with an "id" matching that of your new structure.
- Create a zip archive (it has to be a zip, not a rar) of the files in the mod.
- Put the zip file in the "mods" folder and load it.
Adding a New Unit
- Follow the same steps as "Adding a new Structure", but don't create the zip archive yet.
- Define the new unit in a new file, with "game_data" at root, and "unit_data" underneath it. "h_u_militia" is a good example to follow.
- In the new structure, add the ability to support the new unit. Look in "h_s_barracks_melee" for an example. You need a "unit_support" element in the "operation" element, with the "unit" attribute matching the "id" of the new unit added in step 2.
- Create and load the zip file, as steps 4 & 5 in "Adding a new structure"
When you build that new structure it will train and support he new unit.
Note: "h_s_barracks_melee", and many of the other structure definition files in BaseMod.zip contain multiple structure definitions. You can do this if you like, I find it handy to keep the entire upgrade chain of a structure type together.
Hopefully this clears things up a little.
The next update will focus more on the economy and city building aspects, and there are future plans for trade and diplomacy with other tribes and empires. Combat will stay a focus, but balanced by other factors. You won't be able to win without some fighting, but through trade and diplomacy you'll be able to win allies among the Masklings and others.
Pottery is a good idea, I think it would fit in nicely with luxuries. It would make Wine a little more involved to produce, which would correspond with it being more effective. The pottery could be consumed as a luxury itself.
What version are you running? 2.0.3 should have some slight performance improvements.
Memory and graphics card are almost certainly not the problem, it's probably the AI scripts. There's some peculiarities around the scripting engine that have been dragging things down. If you press F2 the performance window will appear, with a detailed breakdown of what;s taking so long. I'll try to work in a more comprehensive performance fix into 2.0.4
Hi, thanks for making this. I'm pretty sure that I manage to catch all of the comments and posts scattered about (even though I don't respond to most of them), but a centralized location could be handy.
Why do you want to define custom routes for your units? The pathfinding should be finding the fastest route, already, and it will occasionally need to recalculate the route on the fly (if the path is blocked, for example).
This has come up a few times. It's more feasible in 2.0 than it was in 1.4, but still quite a major undertaking for a one-person operation. I won't rule it out, but it's also not currently planned.
Settlers are spawned at the Administration Center (those tents near the left side), there's no empty space for them to spawn. If you remove one of the structures (like that brickworks) then you should be able to create settlers.
Capturing Maskling settlements is coming in the Conquest Update.
Thanks, I think I found the problem. Looks like a weird corner case around saving right as a unit died. I'll have a fix in 2.0.3, as a temporary workaround try changing (or disabling) the autosave interval from Settings in the main menu.