Tech tree brainstorming

I'd suggest making it so that promotions can be unlocked by techs as well. Was thinking carronades could be represented as a naval promotion, though I suppose a universal ship modifier would work just as well.

Edit: Copper bottoms would be a better one, it appeared late 18th century and was used mostly for the military and a bit for merchants, but wasn't too widespread before after the game's timeframe. So ships getting it on an individual basis would fit.
 
Last edited:
Some great ideas in this thread.

It is clear some forum members are extremely knowledgeable about the period, particularly with regard to military and navy. Personally, I don't care very much about historical accuracy. I like the theme, but I don't really care about the specifics.

I suggest a dedicated modmod thread (an expanded V's tweaks) for the players who would like to see historical accuracy. The official branch can continue to concentrate on gameplay; existing in harmony with an up to date modmod satisfying those who prefer historical accuracy.
 
I suggest that we focus on a tech tree in this thread. There is a lot of talk about navies and while interesting it is kind of off topic and it really should be in a different thread.

It is clear some forum members are extremely knowledgeable about the period, particularly with regard to military and navy. Personally, I don't care very much about historical accuracy. I like the theme, but I don't really care about the specifics.

I suggest a dedicated modmod thread (an expanded V's tweaks) for the players who would like to see historical accuracy. The official branch can continue to concentrate on gameplay; existing in harmony with an up to date modmod satisfying those who prefer historical accuracy.
I fully agree with this. Also if we are to have a modmod, then perhaps we should organize it better and make it work in a git fork. That way the two mods can pull updates from each other. Right now the modmod is disorganized and it will be a nightmare maintain it with updates from WTP. Also since it's not clear what precisely is going on in the modmod, WTP will not be able to add anything even if we end up in a situation where everybody agrees that a specific change is good. I will not go into details on how to make a fork here, but it's possible that I will in another thread or discord.
 
I'm glad to see that this topic finally started. I dreamed about tech tree in WTC for long time. I greatly redesigned tech tree in Medieval Colonization, also with many more other changes (reworked Founding Fathers, civics, and many more) to adjust this mod for my needs, and now I hope sooner than later techs will be added to WTC, to make it more perfect than now.
Theoretically we could have several "Tech Categories":

1. Inventions (unlocked by new Yield Research - 2nd Profession with Expert "Researcher" in Education Buildings)
2. Social Advances (unlocked by new Yield Social Debate - Profession with Expert "Philosopher" in Tavern Buildings)
3. Native Knowledge (no Yield - found in Goodies / First Contact or buyable from Natives - factoring in relations to the Natives for Price)
4. Royal Permissions (unlocked by Yield Culture to be buyable from the King - factoring in the relationship to your King for Price)
...

There are a lot of nice ideas here. I think it will be fine to start with these categories, and adjust later if needed. Even second bullet could be omitted for now and added later if needed, maybe when/if Civics will arrive. If everybody will agree with this start, particular discoveries could be pulled from Imperialism 2 as well as provided by most educated in early American history members. I also can suggest something if will be needed.
 
I
Recently we have been using terms like "tech tree" and "tech progression". The main idea is that not all game content will be available from the start, but rather more and more will be unlocked as the game progresses. Civilization have proven this concept to be valid for gameplay and it makes sense that tanks and planes are included, but not from the start due to starting during the stone age.

The core system
I worked on the tech tree implementation in Medieval Conquest and based on experienced I already wrote some implementation in develop-2.8. It's not a complete copy though because I redesigned away from the time killers regarding code creation and maintenance. Also what I wrote is faster at runtime.

It's designed around the concept of a new xml file called CivEffects. A player can own them and they give bonuses (or penalties). This can be allowing a new unit or profession, but it can be so much else too. Players don't get CivEffects directly. Instead a player gets them by gaining something, which provides a CivEffect, like a trait, civilization, era, founding father etc. That way we can add a feature to one of them and it applies to all. We can then add civics and techs without any code for what they should do when you gain them, just making them give you a CivEffect, meaning they from day one can do everything those other can do.

The CivEffect implementation relies on a cumulative cache system, meaning it's fast and the runtime is constant regardless of if we have 5 or 500 CivEffects in xml. That's better than the BTS implementation of techs. In fact it takes vanilla actions into account like which unit to use for a certain unitclass meaning that alone makes it faster than vanilla.

Tech requirements
We need a way for the player to gain techs. The most common method is to add a tech tree. However "just add a tech tree" doesn't answer how it should work ingame.

If we go for a civ style tech tree, we have the benefits of relying on a concept most players already know. We could make techs have requirements, but rather than techs we could set them to be CivEffects. While techs would be the most common requirement, eras could be interesting to add too. From an engine point of view, it would be a good idea to not restrict meaning by just allowing all CivEffects, somebody can write a trait as requirements in xml without any dll updates.

We should have multiple requirements in some logical and and or setup. Working on lists rather than copying the civ4 system. Also adding the ability to unlock by listing say 5 requirements and say it's unlocked when the player has at least 3. Having a not requirement could also be interesting like an aggressive trait could prevent a certain peaceful tech.

Rather than adding one tech tree, the engine should have a list of tech trees. This way it will support a military tech tree, a trade tech tree, an exploration tech tree and so on. Since they are all CivEffects, they can add requirements of techs on other trees if needed. I'm not saying we should use it, but the engine should support it because ideally it's added now and then it supports all the stuff we need in the future without too much hassle. It's way better now to just think this into the design than to try to add it later because adding a new feature to existing code can be way more time consuming and prone to bugs.

Gaining techs
We need something to unlock the techs on the tech tree. In most cases this is done with research points. The big question is: how should we be able to gain research points?

The research modcomp (used by Medieval Conquest and Colonization 2071) has a research profession, which produces a research yield. Each tech can then set yield requirements like the farming tech will make the researcher create one research for each food spent on research. Not filling out requirements means free like crosses in the sense that they are produced without any input resource.

However the question is if that is the way we want to go. Does that feel like a colonization feeling? Should we be able to gain research points in some other way?

One way that could be interesting would be to have one type of research points for each research screen. We could then have a native techs screen where you gain the research points by trading with the natives or live with them and otherwise interact with them in a friendly manner. Multiple types of research points also means we would support researching one tech on each screen at the same time. I would love to add support for this in the engine.

However it still doesn't answer the main question: how do we gain research points towards stuff like better military units?

What techs can do once gained
Another question is what techs does as in why would a player wants to gain techs. The simple answer is they unlock units, but they can do so much more.

If we take allowUnit as an example, then each CivEffect can have an AllowUnit value for each UnitClass (usually 0). A player then has the allow value, which is all the owned CivEffects added together. If it's larger than 0, then it can be used. This is the BTS approach, except I simplified it for runtime performance and at startup all players gain an autogenerated CivEffect, which adds 1 to everything where no CivEffects has a positive value, meaning if nothing adds the unit, it will be available from the start. Since xml can also contain negative values, it's possible to disable units as well. It's also possible to assign -1 by default meaning you need two +1 CivEffects to unlock, like a specific tech and a specific Civic at the same time. It's a simple concept, but it becomes very flexible with a bit of xml creativity.

This allow system benefits from being implemented already.

The same system applies to buildings, professions, promotions, improvements, civic, yields etc.

As for units, there is also allow immigration meaning a unit has to be allowed as both unit and as immigrant in order to show up on the docks. This allows features such as an FF removing all criminals from the dock (sounds familiar?).

There is also an existing implementation of changes to the count of units on the dock. Right now the dll defaults to 0 while the default CivEffect (in xml) says 4. However we can add a tech, which has +1, in which case the dock will instantly generate a new unit and place it on the dock to give the player one more to choose from. The only upper limit is the screen space in the Europe screen and I have tested this with 15 units. It's capped at 1 unit though, meaning providing negative values will not make the unit count drop below 1.

Free promotions is also implemented in categories: all, specific unit, specific profession, specific UnitCombat. (I think that were the options). The power of adding free promotions should speak for itself.

For other tags we can add to CivEffects, for a start I would say anything, which exist for anything, which provides a CivEffect. This means anything currently possible with traits, civics, FFs and all that.

So what would we realistic use this for. Something like farm lv 1 is available from the start, but it can't upgrade to lv 2 before the plot owner has unlocked the improvement in question.

Pioneers can only build allowed improvements and routes, but it can also need to unlock the build itself, meaning builds without any route or improvement can require research (like drain marsh).

Free building in all colonies (possibly being able to filter based on all/landlocked/port). Making this an otherwise unbuildable building allows adding a building in all colonies, which grants +5% food production or similar. How we can benefit from this depends on what fun features we put into CvBuildingInfo. This can also be something like we currently have from FF as in -X% yield (like tools) needed for building a building.
Other interesting boosts could be a fixed addition of yields/turn, like +2 food.

Looking at what is in M:C, the following could be interesting too:
  • free experience for new units (specific units or all?)
  • pioneer work speed modifier (general and/or specific builds)
  • pioneer can start working after spending all movement points
  • improvement upgrade modifier (might take 40 turns instead of 50)
  • Changes to yield production at the colony plot (like all colonies produce +1 cotton if center plot produces cotton)
  • Europe screens as in say Africa isn't unlocked from turn 1
  • Modify tax related stuff like max tax cap
  • Modify native land prices
  • King's fee for transporting treasure modifier
  • Gold from natives modifier
  • Immigration cross requirement modifier
  • Buy in Europe price modifier
  • Unit heal rate modifier (settings for own team, neutral and enemy owned plots)
  • Unit stats (like movement points) changes for any unit, which might not have a UnitCombat (may or may not be needed)
  • Extra yield from plot if it produces more than a certain amount (like +1 fur for any plot producing at least 6 furs)
  • Modifier for research point requirements (per type of research points, like cost -5%)
  • FF point cost modifiers, specific type and/or all
  • Missionary conversion rate modifier
  • Improvement yield production change (providing we can make the code fast enough)
  • learn time in native settlement modifier
  • Europe travel time changes
We can most likely think of more, but it gives an idea of what CivEffects are able to do or can be made to do. Some of them might be better suited for FFs, traits and otherwise picks for the start of the game, but I included them anyway because right now is about brainstorming for how to build a system, which could be interesting to play.

The Europe travel time could be set for each access region, meaning it would be possible to set for only west or only east. Since CivEffects can also be set for each CvCivilizationInfo, it will make it possible to add players coming from west like China or perhaps Russia. They would then travel home fast towards the west and slow from the east.

We can also split builds and unlock them at different times like we can unlock high end roads for flatlands before a later tech unlocks it for hills and mountains. This would create the interesting scenario where it could be beneficial to use a high quality road to go around the mountains rather than a slow road to cross directly.

Yes I'm aware that some of them might easily become overpowered. That is something to keep in mind.

How do we make this into a working plan?
That's the question. I have written about what techs can do, but it still doesn't answer the two main questions:
  • How do we add techs in a way, which feels balanced?
  • How do we let the player get/research new techs?
Any ideas will be most welcome.
I think that tech progression should be directly tied to the education output of a given settlement, and maybe the education received from native tribes when living among them. There could be a vanilla tech system, in that every turn so much "science" (or something more appropriate to the period) is generated by a settlement like the default 1 hammer produced by every city, but rather towards tech progression. If the player wishes to advance more quickly then they are encouraged to bolster their education system by constructing schoolhouses/colleges/universities, and the education output of each settlement could contribute to the equivalent of the vanilla tech tree.

Additionally, maybe some techs would be related to increasing yields of raw goods from specialists geared towards gathering them, and can exclusively be traded to the player by native civs?
 
One downside to a civ-like tech tree is that is clashes a bit with the game's colonial setting. It would make more sense for innovations to spread from the Old World, rather than arise from research in the colonies.

With that said it could be a lot of fun to allow tech-like progression in a few different ways, using CivEffects. If it's possible to easily repurpose the existing founding father 'points' system (trade, exploration, military, political), and if I understand correctly that this content could be largely implemented in XML, then maybe I'll even give it a shot on a free weekend (I don't mind writing C++ or Python, but an XML-based project sounds like a friendlier introduction)

Administrative development: This is the closest thing I can think of to a linear tech-like 'tree'. A sequence of 'techs' purchased with liberty bells (or political 'points'), to represent the progressive establishment of bureaucracy and institutions in the New World (e.g. "Encomienda system" : bonus productivity from Native slaves and converts); "Currency reform": cost reduction to accelerate production; "Naval patrols": Bonus to merchant vessels when fighting Pirates; "Mandatory education": new colonists receive a specialty)

Technological development: Events set to fire on specific years to unlock new buildings, ship types, etc. (Three deckers, Muskets, agricultural advances)

Industrial development: Instead of a tech tree, the unit and building rosters could be expanded (though I imagine art assets are a limitation), with higher-tier entries requiring unpurchaseable parts (e.g. Tools & Iron to make arquebuses, but "Machined parts" and "Refined Steel" to make muskets). This would in effect create more of a tree-like progression through the game's content
 
One downside to a civ-like tech tree is that is clashes a bit with the game's colonial setting. It would make more sense for innovations to spread from the Old World, rather than arise from research in the colonies.
This is why we are stuck. We all agree that we should have some sort of progression through the game. We also have the implementation in place (partly coded, partly concept). This means what's left is how it should appear to the player.

This means we need to decide what a player should do to progress through time. Era progression? It just happens seemingly randomly. Not good for gameplay. Spreading from the old world might be realistic, but it isn't ideal for gameplay. This means we need to figure out what the player should do to progress through techs.

If it's possible to easily repurpose the existing founding father 'points' system (trade, exploration, military, political), and if I understand correctly that this content could be largely implemented in XML
FPs are defined in xml, but gaining each of them is defined in C++. Founding Fathers exist in the realm of teams and for that reason I have been wondering about adding a yield for research as yields are for each player. Usually there is one player on each team, but you can have multiple players on a team in custom games (particularly multiplayer). We have YIELD_CROSSES to recruit immigrants. Adding YIELD_TECH for research could work the same way, a player collects the production until it meets a threshold and then some action takes place.

Regardless of type of points, it still has the question: how should the player gain the points?

We could make techs require multiple yields, like researching the weaving industry requires 200 tech and 200 cotton. Allowing this to be set up in pure xml would unlock a lot of interesting options. Still doesn't answer how to earn YIELD_TECH.

Allowing events to grant CivEffects to a player and make techs require CivEffects, pure xml can be set up to make an event unlock the ability to research a tech. For instance back to weaving, unlocking the weaver's hut could be done by an event, which triggers once the player has produced X cotton and that unlocks the ability to research weaving.

Industrial development: Instead of a tech tree, the unit and building rosters could be expanded (though I imagine art assets are a limitation), with higher-tier entries requiring unpurchaseable parts (e.g. Tools & Iron to make arquebuses, but "Machined parts" and "Refined Steel" to make muskets). This would in effect create more of a tree-like progression through the game's content
While it sounds interesting, but it also sounds AI hostile.

maybe I'll even give it a shot on a free weekend (I don't mind writing C++ or Python, but an XML-based project sounds like a friendlier introduction)
I would highly recommend joining in on the modding academy this weekend. That would be the friendliest introduction. Also we can always use more team members, who are willing to contribute with new features.
 
We could make techs require multiple yields, ...

Sounds perfectly fine for me. :thumbsup:
It is absolutely logical for gameplay and immersive.

Still doesn't answer how to earn YIELD_TECH

I have given suggestions a dozen times already. :mischief:
I was simply never really given an answer. :dunno:

This is probably the easiest one to implement (for aspect Yield "Tech"):
(There are much more aspects that would need to be combined of course.)

Call it "Yield Knowledge" and have it gained in School Buildings (and Upgrades) by Multiple Professions ber Building a Profession "Progressive Thinker" (or whatever you want to call it).
It is the easiest way to do it in terms of effort and also easy to teach AI. And it will be easy to understand for Players as well..

----

The difficult issue is not the technical sytem in terms of XML config, DLL and Python.
The difficult issue is to actual fill it with enough suitable and immersive "Techs".

----

Why invent a new System if we already have one that works perfectly for generating Yields.
 
Last edited:
As for me I disagree with that idea/ concept to block most of the existing things, like ships, and bond it`s apperance to tech/ direct action by colonial (players).
Colonies have minimal effect in most advancement.

1. Many simple should have a timescale to appear: meaning in turns/ date/ era.
That maybe can done by expanding Erainfos.xml

Like galleon can be aviable just after 50+ turns, or after 1525-1550 AD. Or first appear for just Spain, and aviable for anybody else later.
Same for other ship types, move their apperance more close to the historical reality.
Which off course will have the disadvantage some will appear too late, or in some case player wins before they can appear, so then some reality must be sacrificed for gameplay reasons. :sad:

The same true for weapons:
In first stages the focus should be on blades, later improved quality of firearms/ cannons can appear as time passes.
Because there are not much UI for new goods this can be represented as:
- Price chages (eg.: at early time blades on common price, later becames cheaper, firearms/ cannons at early era VERY expensive, later becames cheaper).
This needs some new variable in the price system: simply improve/ decrease minimal/ maximal price with the extra variable by era. or elapsed turns, or date scale.
- Certain units which use them only aviable in later dates

Professions:
Relative scarity can be represented for certain professions with existing unitinfos.xml in case of inmigration:
- with low iImmigrationWeight (so they most likely appear only later), but also lesser iImmigrationWeightDecay (don`t make less of them appear).
I already did this in my mod.

As for their price in direct buy (or early buy with crosses) in Europe: new variable which adds an extra price tag for them, like gunsmith +500 gold in era discovery, + 250 in the next, and not affect unit in later eras.

So while I do agree to block some units from early apperance/ limit certain units in early game by highter price/ lesser aviability disagree to do this with techtree/ with anything where player have influence - like research/ techpoints.

Or by any means to offer possibility for the colonies to be much advanced in technology than the European powers.


2. So the techtree/ what can research a colony in conception should be limited to mainly local things, which are most likely not aviable in Europe.

Like techs related to:
- terrains/ covers: like jungle, savannah,
- colonial goods: tobacco, cocoa, coffee, etc...
- colonial only professions: plant/ make finished goods from colonial plants
- relating natives
etc...


3. But there can be another conception on the rear:
How can colonies in a limited manner SUPPORT technological advancement home - eg. for their country/ king.
Which can represent the reality of nations have different approaches/ some developed better than others.
There can be many role for the CivEffects. .
But again: not to became more advanced than the home country, but been roughtly on the same level. Which off course keeps WOI the same difficult, but can offer some small advantages over other kings/ colonial powers/ natives.
 
Sorry guys,

but we have been wildly discussing this concept to death already. :)
(Discussion started 11 years ago in first years of RaR.)

And we could continue discussing about it for another 11 years. :crazyeye:
Talking will not help us because everybody has different ideas and different personal taste anyways.

Somebody needs to start working (by the concept he creates) for this and community will then simply have to take what is created or not take it.
Actually having something created - whatever it is - is better than waiting for another 11 years ...
 
but we have been wildly discussing this concept to death already. :)
(Discussion started 11 years ago in first years of RaR.)

Somebody needs to start working (by the concept he creates) for this and community will then simply have to take what is created or not take it.
Actually having something created - whatever it is - is better than waiting for another 11 years ...

I believe there should be:

1. Some 3 - 5 clear concept. eg. talking/ have some minimal consense
2. Then a wide range vote/ survey which one supported by most members of the community/ make a ranking among the concepts.

Edit:
2.2: Tear it into mosaics: which part need a replacement from another concept.
Like: one concept overall better, but another superior in tech point acquire mechanic.

3. Only then worth to start one, which then can be popular for X% of users.
Where can comethe details...
But to make one is actually needs several people.

Trust me: I did make Galactic Civilization 2 TOA +(un)offical patch techtree expanded to the double of it`s original.
That was about 2 years - while there ALREADY was a concept in the game, just needed to expand that for the different races/ keep some tech as universal.

So disagree with you: there need a supported concept first - talk.
Only after can come to actually start it/ start to make the details (with an ever changing team: at least one for programing, one for ui/ graphic, one for xml).

And for sure just as a submod - what people use or not, for sure many will not - in that we agree.

What is important: to include many possibility.
Like an "engine" for techs, full with dormant posibbilities, which are 0/ none, untill not used.

Then folks can make their own.
 
Last edited:
but we have been wildly discussing this concept to death already. :)
(Discussion started 11 years ago in first years of RaR.)

And we could continue discussing about it for another 11 years. :crazyeye:
Talking will not help us because everybody has different ideas and different personal taste anyways.
Yeah we should likely make decisions on what to do rather than debating and nitpick details.

Tech xml has a list of required yields and how many are required for each. Progress is done in CvPlayer::doTurn (or CvCity::doTurn) where the list of yields produced this turn will be added to progress of the current tech. It will not reduce the produced yields, only "copy the amount". Once current research is done, the player gains the tech and a new one can be picked.

Adding a research yield and research profession is simple and is almost pure xml.

Each tech provides one CivEffect and techs have CivEffects as requirements. This way a tech can have non-tech requirements, such as traits, events... well the list is long. Anything, which can provide a CivEffect.

Possibly complex requirements with AND, OR and NOT.

Bonuses provided by techs are not given by techs, but rather from the CivEffects, which each provide. CivEffects already exist (not used much) and is designed to modify players without slowing down the game. It's very fast and scales very well to huge numbers of CivEffects.

Add some sort of GUI, most likely a new python screen.



I think this is the concept. It's doable and realistic from a programming point of view. This is however only half the issue because the next would be to set it up in xml. That part should also be doable as there are so many options to use from pure xml despite the xml setup not being overly complex.

From a gameplay perspective, production of yields and a progress bar/tech screen is likely the best we can do.

How historically accurate is it? Well if somebody adds xml to research submarines, then not very accurate. However with proper xml it could be decent. As for the old world vs new world research, it's close enough. We are making a game, not a historical simulator. There is a limit to how much we should sacrifice gameplay for historical accuracy. Besides even if we might overdo research in the new world compared to history (and that's a might!), I can't see it as any worse (historically accuracy speaking) than not having unlockable contents and for that reason have 18th century units in 1492.

This is a core concept, which can be expanded. For instance Colonization 2071 has a feature where the research profession has the yield input set in the tech xml. We can add that later if we want, but it's an optional addon, which won't change anything needed to get this up and running.


EDIT:
To be clear: this is LONG TERM plans. Nobody will start on this right away as the first goal right now is to finish the next release.
 
Research tree/ points:
Hunted together some ideas from this thread.

The best approach as I see:
Different trees for different aspects, like a separate:
- military (smallest)
- exploration (mid size)

- native (things in connection with natives - big)
- colonial production (big)
- trade/ tax (mid size)
(In cc. what raystuttgart called "New world techs")

Size of trees:
There should be just minimal in military/ exploration/ any which already in the founding fathers sepree, so like just 3-5 tech of military.

But the big - like in regard of natives can be up to 15-30 tech. As new world techs.

As for tech trees/ techs that is important to NOT make it too much alike with the existing founding fathers eg.: military, exploration, political, etc...

Techtree ui/ graphic:
As for Ui can be anywhere.
Graphic? As for me I am not fond of graphic, if there are simply one bubble for name + one for description that is fine for me (no need for icons).
Like this:
https://steamuserimages-a.akamaihd....237/74598CB962757D2C5E52F5F8C2A140A6747B9E76/

Requirements for techs:
1. Previous tech/ techs on lower level
2. Certain abilities, from traits till chosen effects
3. Nationality
4. In some case: time, like cannot get before...
5. In some case: materials as well, mainly production related techs (overall aviable, colony aviable, production/ turn overall)

Exact techs:
Still not support to limit much of the existing ones by player affected action (research), especially: ship types, units, improvements (except plantatation - that is more colonial, but even there just a better kind, like lev. 3./ extra expansion for lev.1/2).

For me at least the easy approach if there are many new variables implemented, then to find out new techs (or anything else) based on the possible variables not a big deal.
But for that need to collect all existing/ newly implemented ones into a list, like:
https://ck2.paradoxwikis.com/Modifiers

So my thinking often with an example:
There should be +1 food on settlement plot, what tech can make it real?

As for (new) techs:
Mostly should grant something NEW, and not to limit existing units/ features.
New world techs.
And yeah some can come from natives/ goody huts/ ruins as well.

Tech trade:
Put it to limits: just new world techs between colonies.
But natives are happy to sale theirs if like you, or you can sale the one you have to another tribes.


Techpoints:
- new Yields for sure.

Mixed approach:
Different tech trees (partly) with different points, but also there one universal (joker) type which can be used on any untill a limit, like 50% can be that, and 50% (at least) the special one.

As for Ui they can be after the already existing points production for founding fathers.


Acquire techponts:
Similar systems, like the founding fathers.
Points comes from:
- actions
- building completion
- building operation (base, or workers)
- population (overall/ most populus cities)
Well never did check the exact system for the points which grant the founding fathers.

Beyond techpoints:
That is a good idea for some tech to need materials (+gold) for them as well near the techpoints.


Time (for research):
Even if all techpoints are aviable there should be some time to actualy complete the reseach, some 1 - 5 turns. Price in TPand gold when it starts, price in materials when completed.

But possible simulteous research in the different techtrees.
 
Last edited:
Once current research is done, the player gains the tech and a new one can be picked.

Is that mean multiple techs (on probably different tech trees) cannot be researched in the same time?

Each tech provides one CivEffect

But one CivEffect can provide multiple modifiers (positive or negative)? Just like the leader/ national skills?
Hope so, assumed that, but no longer sure. :confused:

Possibly complex requirements with AND, OR and NOT.

NOR, NAND (at least one true)
 
Is that mean multiple techs (on probably different tech trees) cannot be researched in the same time?
Good question. Should research be one at a time, one for each tech tree or like FreeOrion where the player can make a queue and it will fill research from the top?

I will need to think about that one.

Different trees for different aspects, like a separate:
Multiple trees... :think:

NOR, NAND (at least one true)
While we are at it, why not add "at least X from this group", like 3 out of 5?

Primary requirement is to make an xml interface, which doesn't require an engineering degree to understand. It should also be fairly doable to explain to the player ingame.

Most likely the design would be:
PHP:
<req>
  <reqGroup>
    <required>
       <CivEffect>A</CivEffect>
       <CivEffect>B</CivEffect>
    </required>
    <NOT>
       <CivEffect>C</CivEffect>
    </NOT>
  </reqGroup>
  <reqGroup>
    <required>
      <CivEffect>A</CivEffect>
      <CivEffect>B</CivEffect>
      <CivEffect>D</CivEffect>
    </required>
  <reqGroup>
</req>
Tech can be researched if one or more reqGroup is matched. It contains a list of required (has to have all of them) as well as an optional NOT (can't research if this is owned).
The example then becomes must have "A and B, but not C" or "A and B and D".
In more normal human terms, that becomes "must have A and B and if player has C, D is also required".

This isn't decided, but it would be my best guess right now for a solution, which considers ease of use vs xml flexibility vs programming difficulty.

It's possible that there could be an optional required list where it just lists required. That would make the xml look way nicer and in most cases it will likely cover what is needed. In fact that would likely be the way to start and then add the rest later if needed. Just plan ahead and have one function to test if a tech can be researched. This way only two functions would need to be updated to add the complex system (xml reading and can research).
 
Sure, the more the happier. :)

I would love to join, however, a 'free weekend' is still past my theoretical horizon for the next few weeks; if you all have a second session in the future, I will try to make that one. I do appreciate the effort you all take to educate newcomers

While it sounds interesting, but it also sounds AI hostile.

AI issues have me most concerned, yeah. I am personally tempted to let the AI outrageously cheat to plug gaps, but I realize this isn't a very popular idea.

Regardless of type of points, it still has the question: how should the player gain the points?

For what it's worth, I think a good approach could involve investing in education buildings, and making luxury goods available on the domestic market to foster an educated middle class (craftsmen, then professionals and engineers. Implemented as an untradeable city yield used in special buildings, or in some other way). These citizens could fill precious administrative roles, work highly productive building, act as officers and army inspectors, become religious leaders, and so on. Points could be earned through those activities and spent on corresponding perks (CivEffects) making the player chose where to focus this limited resource; alternatively, progress could simply take the form of being able to do more things by virtue of having more of those people, without there needing to be explicit perks to purchase or a tech tree.

Sadly, I am fairly sure this would obliterate the AI, so I don't know if something like this is the right approach given the engine. Fortunately, there is ample inspiration to be drawn from that historical period, that I'm not too worried about letting go of particular ideas.

To give one example of a different approach enabled by the setting: The first phase of colonization in the Americas can be defined with respect to interactions with the natives: subjugation (e.g. Spanish conquests), trade (Fur trade in Canada), and proselytism / forced conversions (basically... everywhere). Population in the European settlements grew very slowly through the 16 century; the sustained immigration that we associate with the region and which the game portrays took place much later. To capture a sense of progression unique to the setting, we could for instance develop unique perks, professions and abilities differentiating the colonist 'units' of each time period: In the 16th century, they were adventurers, missionaries, and traders. By the 18th century, adventurers were largely replaced by homesteaders (seeking to cultivate the abundant land), fur traders by investors and large companies, and missionaries by pilgrims fleeing religious strife in Europe. I wonder if the immigration mechanic could be a main driver of evolving gameplay through different ages. It could also keep the field of possibilities sufficiently narrow (within a specific time-frame), so that the AI may be easier to shepherd along. The point being, I'm sure the setting can accommodate many different approaches, and I'm excited to see what ends up being possible to implement thanks to yall's work on e.g. the Events and CivEffects systems.

While we're on the general topic of choices and progression, we all seem to agree that it would be nice to represent societal/technical change over time. I would also point out there is plenty of spatial/cultural variation worth capturing too, like the immense differences in the economic and social model of the 13 colonies compared with New Spain. On one side you have native enslavement, the ruthless extraction of resources for the European market, and a highly stratified society (building 'wide'?); on the other, you have a developing consumer market with a growing 'middle class' (building 'tall'?). I guess the Southern Colonies would be somewhere in between those extremes. Since you've already done the hard work of implementing civics in Medieval Conquests, that could be a slightly lower hanging fruit.

Bonuses provided by techs are not given by techs, but rather from the CivEffects, which each provide. CivEffects already exist (not used much) and is designed to modify players without slowing down the game. It's very fast and scales very well to huge numbers of CivEffects.

Really cool! Really excited to find out more about what this can implement.
 
Last edited:
While we are at it, why not add "at least X from this group", like 3 out of 5?

That would be wonderful.
But for some reason I never seen that in any game. Instead seen for example 3 OR table after each other. :crazyeye:

Hmm - this way clear:

<req>
# <reqGroup> - why needs groups? - sorry not used to it
<required>
<OR>
<OR>
<AND>
#(or AND = { ---
# }
# I used to for the = {}
<
CivEffect>A</CivEffect>
<
CivEffect>B</CivEffect>
</AND>
<
NOT>
<
CivEffect>C</CivEffect>
</
NOT>
</OR>

<OR>
<AND>
<CivEffect>A</CivEffect>
<CivEffect>B</CivEffect>
<CivEffect>D</CivEffect>

</AND>
</OR>
</OR>
</required>
</
req>

So groups can replace the multiple OR lines, and make x from y path.

Still wonder why not seen before.

as well as an optional NOT (can't research if this is owned).

To use some pre-triggers maybe?
already_have = 1
is_tradeable = 0
is_nation = 18
And then do not check any following data for that tech - friendly for cpu.

It's possible that there could be an optional required list where it just lists required.

Suppose in most cases that will be a simple 2-5 ine AND / OR list, not some 20-30 line long.
 
Last edited:
Here are some possible early techs for a military/religious build (I'm not sure about giving slavery a much more prominent role). I'm putting them out there to start a discussion on the kinds of effects, flavor and power level we think would be appropriate for tech/perks

Miserere: Can no longer attack converted native settlements. Military victories may cause nearby native settlements to convert.
Deus Vult: Preachers and missionaries produce +2/+3/+4 swords in chapels/churches/abbayes
Encomienda: Military victories against natives always award a slave (edit: well, maybe not *always*)
Santiago!: Defeating braves heals units. Does not affect mounted braves, or armed braves.
Mit'a: Additional yields for miner and prospector slaves (yikes?)
Holy Orders: Successfully converting a native settlement has a chance to spawn a new missionary in the capital.
Royal inquisitors: Missions are much more difficult to remove with foreign missionaries
Exploit divisions: Military victories against a native empire have a chance to grant a Brave unit to the player
 
To give one example of a different approach enabled by the setting: The first phase of colonization in the Americas can be defined with respect to interactions with the natives: subjugation (e.g. Spanish conquests), trade (Fur trade in Canada), and proselytism / forced conversions (basically... everywhere). Population in the European settlements grew very slowly through the 16 century, and the sustained immigration that we associate with the region (and represented in game) took place much later. To capture a sense of progression through the setting, we could for instance focus on developing the perks, professions and abilities of colonist units in each time period: In the 16th century, they were adventurers, missionaries, and traders. By the 18th century, adventurers were largely replaced by homesteaders (seeking to cultivate the abundant land), fur traders by investors and large companies, and missionaries by pilgrims fleeing religious strife in Europe. I wonder if the immigration mechanic could be a main driver of evolving gameplay through different ages. It could also keep the field of possibilities sufficiently narrow (within a specific time-frame), so that the AI may be easier to shepherd along. The point being, I'm sure the setting can accommodate many different approaches, and I'm excited to see what ends up being possible to implement thanks to yall's work on e.g. the Events and CivEffects systems.

Fine by history.
Far less good for tech.

But I can imagine this like:
Era (century) specific decision.

Like choose your approach at game start: subjugation, trade, conversion.

And choose similarly in all eras.
Can be made like the event system (or civilisations/ leaders - but able to choose always).
 
Top Bottom