SevenSpirits
Immortal?
- Joined
- Jul 7, 2007
- Messages
- 512
This is an idea for a mod for BtS. Here's the idea:
Instead of picking your research directly, you choose which things you already know to "focus on". You'll then learn about new techs that are related to those things.
Description
The game represents research and discovery poorly. In reality, you don't plan to discover writing in a couple hundred years. You're just there, existing, and at some point... BAM! You realize that notating things on a physical medium in an organized manner might have a future to it.
The reason the game doesn't simulate this is obvious: it would suck to have no control over your discoveries. I think I've found a reasonable middle ground.
Instead of choosing a specific technology to progress towards, you choose what your researchers should focus on based on what you already have. You can:
Let's take the example of focusing on a tech you know, and let's pick Agriculture as that tech. There would be a set of techs that Agriculture leads to, kind of like "OR" requirements now (the arrows) except weighted. Agriculture might have a strong weight towards Pottery and Animal Husbandry, a weak weight towards Calendar, and some other weights towards other techs. In general, there would be more links in this new system because some of them would be very weak. Now here's how the research works if you focus on Agriculture:
The beakers you produce would be broken into about 5-10 equal chunks. Those chunks would be randomly assigned to techs that agriculture leads to with probability proportional to the weight. So for each chunk, that chunk is much more likely to go towards Pottery than towards Calendar.
What this means is that you are making progress towards multiple techs at once. At some point, one of those techs will be completed, and you'll discover it. You will still have progress towards the other techs.
Naturally, the tech tree would be different. Because players wouldn't see it, it could be more elaborate, with many more links between techs. Also, there would be more techs total. There would be a lot of new, rarer techs that are only linked to weakly by other techs. It would be very unlikely for any given player to discover any given one of these. But over the course of the game, you're likely to get some techs that no one else is likely to ever be able to research. This would make tech trading a lot more interesting, because trading for a tech might be the only way for you to get it! It will also make tech stealing via espionage points a useful weapon for breaking monopolies of selfish tech-discoverers.
Now, other than focusing on a tech you have, there are a couple other options:
Additionally, a player could focus on two areas at once. Then, their research points are split between the two point distribution schemes. This might allow you to say, focus on both Agriculture AND Hunting and be more likely of getting Animal Husbandry first than by choosing either of them alone. There's also the potential to code in different values for certain combinations of choices, although that could get pretty complicated.
Implementation
I haven't implemented anything yet. I'm going to however, and help would be good as well.
I've looked at some of the research-related functions in the DLL and in Python, and I'm not sure if it will require DLL work or not. There's definitely a Python way to interrupt the normal sequence of "ask what player wants to research, then apply commerce to that tech", so it could well be possible we don't need to change the DLL. I am set up to do it though, and I'm a programmer.
For me, I don't think the logic will be the hard part. The algorithm and even data storage is not very complicated. What I don't know how to do is create a screen so that the player can make choices. It would need to show the player's five highest value techs according to some algorithm, plus a button each for the other special options. The player needs to be able to have any 1 or 2 of these selected at a time. Additionally, it might be good to remind the player that they can adjust these values periodically.
Another thing that has to be done is create an AI function to pick which things to emphasize. However, since no human knows yet what a good strategy would be... let's just say the first version of the AI won't be that hard to program.
The other major part of this project is redoing the tech tree. I think we can get away with reusing existing art (i.e. use the Writing icon for a Calligraphy tech, or the Agriculture icon for Advanced Agriculture). However, for this to play well, we need to put quite a bit of thought into deciding which techs lead to which others, and how strongly. Also, we want to add a good number of new, non-critical-to-the-tree but pretty cool techs that do useful things. I think this will take a lot of time, a lot of creativity and maybe a bit of historical knowledge too.
I imagine there will also be some other tweaks to game mechanics, "just because we can" and with the excuse that techs and the tech tree work differently now.
To summarize all that, we need these things done:
Part two I could definitely use help with, and part four will certainly need more than one person. Oh, and I almost forgot part 5:
5) Figuring out what the problems are with this scheme, and coming up with better ways to do it that avoid those problems. Clearly, I need outside assistance on this one.
Any comments, discussion and help is appreciated.*
*Except if you are just complaining that removing tech research choice would ruin the game and isn't worth pursuing. You are obviously not the target audience and I'll kindly refer you to the Strategy forum (which is awesome).
Instead of picking your research directly, you choose which things you already know to "focus on". You'll then learn about new techs that are related to those things.
Description
The game represents research and discovery poorly. In reality, you don't plan to discover writing in a couple hundred years. You're just there, existing, and at some point... BAM! You realize that notating things on a physical medium in an organized manner might have a future to it.
The reason the game doesn't simulate this is obvious: it would suck to have no control over your discoveries. I think I've found a reasonable middle ground.
Instead of choosing a specific technology to progress towards, you choose what your researchers should focus on based on what you already have. You can:
- Focus on a tech you already know (limited to the "best" 5 or so options)
- Focus on what tiles your population is working.
- Focus on what kinds of specialists you have.
- Focus on divine inspiration.
- Just think creatively about anything at all.
Let's take the example of focusing on a tech you know, and let's pick Agriculture as that tech. There would be a set of techs that Agriculture leads to, kind of like "OR" requirements now (the arrows) except weighted. Agriculture might have a strong weight towards Pottery and Animal Husbandry, a weak weight towards Calendar, and some other weights towards other techs. In general, there would be more links in this new system because some of them would be very weak. Now here's how the research works if you focus on Agriculture:
The beakers you produce would be broken into about 5-10 equal chunks. Those chunks would be randomly assigned to techs that agriculture leads to with probability proportional to the weight. So for each chunk, that chunk is much more likely to go towards Pottery than towards Calendar.
What this means is that you are making progress towards multiple techs at once. At some point, one of those techs will be completed, and you'll discover it. You will still have progress towards the other techs.
Naturally, the tech tree would be different. Because players wouldn't see it, it could be more elaborate, with many more links between techs. Also, there would be more techs total. There would be a lot of new, rarer techs that are only linked to weakly by other techs. It would be very unlikely for any given player to discover any given one of these. But over the course of the game, you're likely to get some techs that no one else is likely to ever be able to research. This would make tech trading a lot more interesting, because trading for a tech might be the only way for you to get it! It will also make tech stealing via espionage points a useful weapon for breaking monopolies of selfish tech-discoverers.
Now, other than focusing on a tech you have, there are a couple other options:
- Focusing on what tiles your population is working gives you points towards techs that will help you improve those tiles' output. For example, by working forests, you'll get points towards Bronze Working, and by working river tiles, you'll get points towards Agriculture.
- Focusing on what kinds of specialists you have gives you points towards the kinds of techs great people of that type would give you. Having citizens also gives points towards useful techs. In fact, I would probably make citizens a good way to get some good early techs that are otherwise difficult to get.
- Focusing on divine inspiration gives points towards religious techs. If you already have a religion, it can also give points towards generally awesome techs.
- Just thinking creatively about anything at all is the catch-all option. You'll get points towards a variety of techs, including ones that are otherwise hard to reach, but since the points are so diluted it will take longer before you complete any one of them.
Additionally, a player could focus on two areas at once. Then, their research points are split between the two point distribution schemes. This might allow you to say, focus on both Agriculture AND Hunting and be more likely of getting Animal Husbandry first than by choosing either of them alone. There's also the potential to code in different values for certain combinations of choices, although that could get pretty complicated.
Implementation
I haven't implemented anything yet. I'm going to however, and help would be good as well.
I've looked at some of the research-related functions in the DLL and in Python, and I'm not sure if it will require DLL work or not. There's definitely a Python way to interrupt the normal sequence of "ask what player wants to research, then apply commerce to that tech", so it could well be possible we don't need to change the DLL. I am set up to do it though, and I'm a programmer.
For me, I don't think the logic will be the hard part. The algorithm and even data storage is not very complicated. What I don't know how to do is create a screen so that the player can make choices. It would need to show the player's five highest value techs according to some algorithm, plus a button each for the other special options. The player needs to be able to have any 1 or 2 of these selected at a time. Additionally, it might be good to remind the player that they can adjust these values periodically.
Another thing that has to be done is create an AI function to pick which things to emphasize. However, since no human knows yet what a good strategy would be... let's just say the first version of the AI won't be that hard to program.
The other major part of this project is redoing the tech tree. I think we can get away with reusing existing art (i.e. use the Writing icon for a Calligraphy tech, or the Agriculture icon for Advanced Agriculture). However, for this to play well, we need to put quite a bit of thought into deciding which techs lead to which others, and how strongly. Also, we want to add a good number of new, non-critical-to-the-tree but pretty cool techs that do useful things. I think this will take a lot of time, a lot of creativity and maybe a bit of historical knowledge too.
I imagine there will also be some other tweaks to game mechanics, "just because we can" and with the excuse that techs and the tech tree work differently now.
To summarize all that, we need these things done:
- Logic
- Interface
- AI Logic
- Tech tree redesign
Part two I could definitely use help with, and part four will certainly need more than one person. Oh, and I almost forgot part 5:
5) Figuring out what the problems are with this scheme, and coming up with better ways to do it that avoid those problems. Clearly, I need outside assistance on this one.
Any comments, discussion and help is appreciated.*
*Except if you are just complaining that removing tech research choice would ruin the game and isn't worth pursuing. You are obviously not the target audience and I'll kindly refer you to the Strategy forum (which is awesome).