Turn/Date Triggered Technology as a solution for timeline discrepencies?

Kweeky

Little Boat
Joined
Jun 24, 2002
Messages
100
Location
London, UK
I was thinking upon the ever discussed turns/time versus technology advancements (i.e. the annoyance of discovering Gunpowder in 2000 BC.), and I had a bit of a brainwave.

What if as opposed to having technology arrive after X turns of X research, why not restrict all research by date/turns.

The best way I can get this across is through example:

* It's 1301. I have just researched a tech which leads directly to Gunpowder.
* However, I cannot research Gunpowder until a certain date has been reached. So, I have to pool my research elsewhere until I reach the point in the timeline when I can start research on a breakthrough involving Gunpowder (along with other civs who have the prerequisite technology)
* So along comes 1791 (I'm not sure when exactly Gunpowder was invented, but hey), the option to start researching on Gunpowder becomes available.
*1805 and I am the first civ to discover Gunpowder!

So you get the idea.

This I feel would add an interesting twist to research as it would be impossible to blitz through the technology tree without investing in older technologies which you had previously not researched. It'll slow the game down, and allow for greater equality in research across the civilizations.

So how would a modder go about this? Well, my immediate idea is to have an invisible prerequisite technology for every time-triggered research area. So, for example, Gunpowder would have its normal prerequisite techs as well as "GUNPOWDER-1791", so that when 1791 (or the equivelent turn) is reached, all players automatically discover GUNPOWDER-1791 and of course, that allows them to start research on the real tech: Gunpowder.

Either way, I've had limited play with the XML files and all that, so I thought I'd pose it to you guys, the community and see if we can work something from this?! :D

- Kweeky
 
Argh. And I just realised. I joined here in 2002, and I've made a grand total of 2 posts. I must have the lowest active post/time ratio!

1 post every 3 years! Well, until I just made this one. Gah.
 
For RFRE I am working on a timer tech tree. The XML is ready, but the python isn't.

The "invisible/timer" branch can be done by setting <bDisable>1</bDisable> in the techinfos file. Visually it will show up red for every player, and no one will be able to research it.

I used a perl script to generate the timer tech tree. It can be done manually with cut/paste/modify (increment gridX, update names, update prereqtech), but too much repetition for me!

So that was very easy, now for the python part. I just started with python a few days ago.. but take a look at the American Revolution scenario. It is timeline driven, but there is no research at all in it. With that the events (eg gunpower-1791) can be created, but how to give the tech to all players? This doesn't work yet, but it can't be too far off, so...
Code:
		# gives the player iTech ; from PyHelper.py
		#int /*TechTypes*/ eIndex, bool bNewValue, int /*PlayerTypes*/ ePlayer, bool bFirst, bool bAnnounce
		PyPlayer.getTeam().setHasTech( iTechType, True, 0, False, False )
        	CvUtil.pyPrint("got tech from timer")

Be sure to enable logging in the civilization4.ini file, then this sort of thing can be seen in the PythonErr.log:

NameError: global name 'PyPlayer' is not defined
ERR: Python function onEvent failed, module CvEventInterface

For a starting python base I'd go with AIAutoPlay. ctrl+shift+x, enter number of turns and off it goes :)
 
I think that, rather than giving a solid research wall that prevents research, a better approach might be the gradual cheapening of technologies as their "ideal discovery date" gets closer (which I imagine would involve additional python, and probably SDK), but at least you wouldn't have to double the number of tech entries.
There's a couple issues with this that would make it unpleasant in anything but a scenario, tho; for one thing, picking a date for every tech in unmodified civ. A lot of the techs are in places on the tree which either A) only represent european discovery or B) have been optimized for gameplay rather than history. Gunpowder was discovered in China hundreds of years before discovery in Europe (an extremely late but "reasonable" estimate for discovery in a civ sense would probably put gunpowder at 850 in china and 1250 in Europe). Paper processed from wood pulp was discovered by at least 100 AD, and almost certainly earlier, yet on the tech tree its in the middle ages. Also keep in mind that putting that wall in is going to be frustrating for players and unlikely to be fully grasped by the AI. Game elements like Oracle and Liberalism are intended to give a civ a one-shot boost, and it would be unpleasant to have to use that for a cheap tech because the higher ones are "unavailable at this time".
 
The <bDisable>1</bDisable> tag stops players from being able to research the disabled tech, but it does not stop the tech tree. You can just skip the disabled tech, it is no longer used as a prereq for later techs and would not stop players from continueing down the tech tree, it just removes that single tech.

My suggestion would be to keep the idea of a blockade tech, I'd say 1 at the beginning of each Era. Don't disable this tech, instead, give it a really high research cost. That way when people get to the blocking tech they don't have to stop research, they can use their science to keep working toward the next era.

Each of the Era Techs would be set to a game turn that is modified based on the mapsize and/or gamespeed. Now instead of just giving all players the Era Tech on the predetermined turn, you could use the number of research points the civ had put into the Era Tech to give it to them earlyer then the default date.

Just some ideas that came to mind. :)
 
I think it might be more interesting to have random tech progression. You can influence your technology by choosing to focus on military or religion or whatever, but the actual discoveries occur at seeming random, more like it actually happened.
 
Jeckel said:
The <bDisable>1</bDisable> tag stops players from being able to research the disabled tech, but it does not stop the tech tree. You can just skip the disabled tech, it is no longer used as a prereq for later techs and would not stop players from continueing down the tech tree, it just removes that single tech.

My suggestion would be to keep the idea of a blockade tech, I'd say 1 at the beginning of each Era. Don't disable this tech, instead, give it a really high research cost. That way when people get to the blocking tech they don't have to stop research, they can use their science to keep working toward the next era.

Each of the Era Techs would be set to a game turn that is modified based on the mapsize and/or gamespeed. Now instead of just giving all players the Era Tech on the predetermined turn, you could use the number of research points the civ had put into the Era Tech to give it to them earlyer then the default date.

Just some ideas that came to mind. :)

Hrm. A lot of issues around my original idea, it seems! Either way, I like this implementation... Could work, that and the AI could probably handle it too.

Any more modders want to throw in some input?
 
Déja said:
I think it might be more interesting to have random tech progression. You can influence your technology by choosing to focus on military or religion or whatever, but the actual discoveries occur at seeming random, more like it actually happened.
Yes, the old Alpha Centauri tech tree. That would be pretty cool.

On the other hand, I like being able to pick exactly what I need depending on the environment - fishing, mining, husbandry, etc.
 
If anyone can get this to work.... and work in MP this would be a great addition to my mod.... :goodjob:

My problem now is that most civs advance way too fast...while (unless I do special wonders to get free techs) I fall way behind...

I am added the techcost mod but I dont see any significant changes :sad:


I would like it where tech's that already been researched reduce to 50%-75% for the remaining civs...


however he isnt gonna update the mod until he works on the warlords expansion...

I have tried (as suggested here) to add high tech cost but that the AI still gets the tech first... and I still have to research the high tech cost :cry:

I like the idea of time/date related techs where you must be at this year to start researching a particular tech, which will limit the advancement... :goodjob:

this will work well in my mod because I want a more era based battles where you just dont rush to musketman/rifleman and all the pre-gunpowder units are useless... :mischief:
 
Andrew_Jay said:
Yes, the old Alpha Centauri tech tree. That would be pretty cool.

On the other hand, I like being able to pick exactly what I need depending on the environment - fishing, mining, husbandry, etc.

Yeah. This is a tricky issue, because there have been times that innovation has come completely by accident (or was developed, but not used for its most memorable application for centuries, e.g. gunpowder), and there have been other times when the innovation has been a direct result of a guided effort.

Perhaps the trick would be adding a randomness factor. You can 'aim' for a certain tech, but you may discover something completely at random on the way.

It'd be neat to have a tech system that does away with the predictable 5-turns-to-machinery system and instead uses those beakers to calculate a probability that you'll discover the tech that turn. Even if you know what you're after, can you accurately predict that you'll figure it out in 10 years?
 
How about, every turn there is a random chance that the beakers you produce don't go to the tech you are researching. Instead, those beakers are randomly assigned to another tech that has a prereqtech in common. Or alternatively, you could just randomly assign the beakers to any tech that you haven't learned.

Afterall, that small trick you learn in metal forging in the ancient era could be the important technech that you needed to make the future age missle casing. :)
 
I like the idea of distributing tech points. Say, the full value of tech points goes to the chosen tech, and an additional 25-33% of the original value is distributed randomly amongst available techs. This seems like the most sensible to me, since the AI will at least understand what it is currently focused on researching. Existing tech leak mod(s?) could also be incorporated to have a higher chance of giving free beakers to the current tech focus (unless they already do that...)

If its possible to set up 'percentages' for discovery that the AI understands, that would be nice too, but it would be ideally suited for a master of orion sort of setup, where there is a set amount you have to research before you start to get a gradually increasing chance of discovery.

Ensuring that older techs are researched is more appealing to me than preventing newer techs from being researched. Far more annoying to me than a few civs being one or two techs ahead, is AI civs (or a human player using a tech blitz strategy while trading for older techs) failing to research technologies from 2-3 tiers ago, like most "religion-giving" techs and any dead-end techs (mainly in mods). I think that, combined with a tech leak via trade routes mod (already around), and the prevention of 'straight' tech trading anywhere before the modern age (In exchange for 200 gold, the Incans have sent us blueprints and technical diagrams for MEDITATION. Awesome!), that a more distributed and randomized system of research would improve tech progression, make things easier for the AI (Which is completely inept at tech trading and always has been), and replace an inane task for the player (tech brokering) with a more broad and 'sensible' task (diplomacy, to keep those trade routes open with your advanced neighbours).
 
Two ideas:

Economic techs - take into account your environment. If within my city radius there is a Fish and two land-based food resources (say Corn and Wheat), I will be more likely to research Agriculture than Fishing. The same would go for if I have animals around, etc.

Military techs - unit XP contributes beakers towards research (think of how it contributes GP points now). So if you are fighting, you will earn beakers towards Military Tradition, for example.
 
Andrew_Jay said:
Two ideas:

Economic techs - take into account your environment. If within my city radius there is a Fish and two land-based food resources (say Corn and Wheat), I will be more likely to research Agriculture than Fishing. The same would go for if I have animals around, etc.

Military techs - unit XP contributes beakers towards research (think of how it contributes GP points now). So if you are fighting, you will earn beakers towards Military Tradition, for example.
Now that would be a really neat system - where you earn techs based on what you do in the game. You have access to fish - you'll get fishing, you have access to game - you'll get hunting, and so on. Of course, there are some techs that would be difficult to do this with - Pottery for instance. What about Meditation?
 
alms66 said:
Now that would be a really neat system - where you earn techs based on what you do in the game. You have access to fish - you'll get fishing, you have access to game - you'll get hunting, and so on. Of course, there are some techs that would be difficult to do this with - Pottery for instance. What about Meditation?

There is already a mod component which does this.
 
GRM7584 said:
There is already a mod component which does this.
Well, I wasn't aware of that particular mod Comp. It does solve the resource-related tech researching to an extent (though it seems to only make the tech research faster, not what was proposed in the OP and I meant to suggest combining the OP's basic idea with the "research by doing" idea), but that's a small percentage of the techs in the vanilla game, and it still doesn't solve the problem of Meditation...
What do you do in game to "research" that (and other techs like it)?

-Edit-
Opps... it wasn't the OP I meant to combine with - it was your post @ #12...
Basically, if you have access to fish, you chance of discovering fishing would increase, same for game, but again, the Meditation and similar techs problem still stands.
 
Meditation = Incense (of course nobody would have that connected yet with thelopez' modcomp I linked to, but ah well)

It becomes easier if you add a few more resources, as well. Sulfur and Flax come to mind. Researching by doing is a great idea for the ancient age, but completely removing the ability to research techs (replacing it with percentage to discover based on resource connection) sounds rather drastic, especially in regards to the AI. Is it easy to tell the AI that since it wants to prioritize Pottery that it needs to connect to fish? Will the AI still prioritize techs if it is getting zero research?

I think it would be better if the existing system is left in, tech costs are increased, and other factors are implemented, like the modcomp I linked. Another keen idea is having buildings (or units and improvements, to a lesser extent) provide a small, instant one-time bonus to appropriate techs upon construction (with no effect if the techs are already researched or unavailable). Barracks could provide instant beakers towards Monarchy, Military Tradition, and Fascism, for instance (obviously only one of those three will receive points at any given time in the game); whereas a forge would provide points towards Bronze Working, Iron Working, Metal Casting, Steel, etc. (where multiple techs could receive points at the same time). Wonders could provide an additional flavor by dealing out large chunks of tech points, and some wonders might even be exclusive to that effect. Of course, I'd also like to see buildings with <GoldOnCompletion> and <CultureOnCompletion>...I wonder if this has already been done?

Individual units being constructed might add a tiny amount towards various techs...ships provide tiny bonuses to naval techs, troops towards military or political techs, workers towards administrative techs. The same could apply to improvements; both of these options sound unattractive to me, but if it works, I wouldn't mind seeing it somewhere.

And then there is the matter of successful battles...Killing all those wild animals should speed you towards Hunting and Archery, and it might not be a huge stretch to provide 'administrative' techs (feudalism, code of laws, civil service, etc) for killing barbs.

On the flip side of things, I'd kind of like to see events whereby tech can be removed....for instance, if a highly advanced civ is taken out of the game, their neighbours lose X% of tech points from all currently researchable techs, or even techs which have already been discovered (this sounds much more difficult...so I'd stick with the first one). Perhaps you've lost a Holy City, you might lose points towards a religious tech you were researching; or lost a city with Globe Theatre and/or a high culture rating for the time, you might lose points towards a cultural tech. Alternatively (and I'm not sure if its possible) this sort of tech-killing event could drastically increase the cost for some or all researchable techs. The idea would be to simulate Dark Ages, but I doubt it would go over well. I think most players would find it annoying.
 
Back
Top Bottom