22.07.2007, 07:21:06
Well, I got teams of multiple loaded transports to work right, but so far only if they are carrying infantry. It was from the first method I wrote about, using "shell" teams and the Change Team command. It works just like how I wrote it, but using infantry instead of tanks. I also think I got it to work once using terror drones as the passengers, but I'm not sure about that. I need to figure out what's different between infantry and vehicles that's causing the vehicle loaded transports to freak out when grouped, but allowing the infantry loaded ones to work fine. I've tested it with allied and soviet hovercraft, flak tracks, ifvs, blackhawk transport choppers and battle fortresses, all of them have worked perfect except for the blackhawks occasionally trying to land on top of each other or getting distracted from their mission, but the landings can be fixed with a Scatter command and I'm sure the attention to mission can be fixed through TeamType properties. I tested it up to 3 loaded transports with both the blackhawks and battle fortresses and it all still worked fine, so I think you can group as many as you want through this method. I've also been able to load a flak track that was loaded with engineers onto a hovercraft using this, but when it does the Unload(8,n) command it unloads both at the same time, so it won't work perfect for everything without some tweaking.
The Change Team command seems to have a lot of potential, and a lot of unique features that let you do some really cool stuff. I'm still figuring out exactly how it works, like how the teams and their properties are managed when you use it. Some things I've noticed, but not totally confirmed yet are
- Units that have been changed from one team to another seem to keep some or all of their original TeamType properties. I saw this using the blackhawks, where the final team that they were in had "Transports Return To Origin" on, and the first team of the group had "LooseRecruit" on, and only the last two of the transports returned to base after unloading.
- AI units that are in transports are considered to no longer exist by the AI
- When given a Change Team command the original team is considered gone, thereby removing it from the count of it's Max=n property. This presents some problems when making the triggers for the first team in a chain, because it will always change out of that team, causing it to never max out, which causes a team creation loop that jams up production with it constantly recreating the first team. This might not be a problem when there's other triggers going off, or by messing with the teams Priority= tag, but for now I've just gotten around it by basing the trigger off of the number of transports, so it only fires when there's less than one transport, and the first team stops that condition when it's created.
Some ideas that could probably be done using Change Team
- "Transports on Request": by placing a Change Team command at the end of a script you could probably get a team to use it and the transport only if it was unable to complete some of the commands before it. An example would be a script to move to and attack something in an enemy base, usually ending in either destruction of the team or the base, but if the base was unreachable it would skip those lines and Change Teams, with it's new script either having a new mission, or the same one with a transport added to the TaskForce and transport commands in the script. This could possibly be looped/shelled to handle more units than could fit into one transport. Getting the joined transports to work with vehicles would really work good with this.
- "Conditional Reinforcements": by having a team "re-join" itself after a mission it would cause the missing units to be replaced and veteran units to remain active. This would be different than the regular "Annoyance=" or "Whiner=" properties because some members of the team would have to survive up to the Change Team command for the team to be rebuilt.
- "Special Missions for Veterans": this would cause remaining units of a team to go on a different mission after they finished their first script. You would probably do this after a mission where they are expected to get a lot of easy kills or do a lot of high value damage, by just putting a Change Team or maybe Change Script command at the end of their first script. Change Team would be used if you wanted to add some units to the group, or maybe change some properties, and maybe cause the original team to be replaced. Change Script would just work for the units you have, and would not cause as much chance of a replacement team being formed. One idea for this is to put units in Guard Area for a while to guard the base and increase veterancy, then after that time limit is up they'd go on a new mission.
- "Dummy Teams to Change TeamType Properties": These would just be teams with certain properties and a script, but no TaskForce, so no new units are created.
- "Various Rushes and Chrono / Iron Curtain Attacks": By combining a group of loaded transports you can have a fast moving and protected invasion force, and by using the Regroup/Gather command I'm pretty sure you could Chronoshift or Iron Curtain up to 4 loaded hovercraft, which could carry 48 troops into the middle of a base safely. The Chronoshift attack would be especially effective if the base only had perimeter defenses, but making a trigger based on that might be difficult. Another special attack could be a group of loaded blackhawk transport choppers that flew in fast when the power was low or some type of air defense was under a certain quantity. This would probably work best with "AvoidThreats=yes" and having it be pre-built somehow.
I still need to figure out if teams can have empty TaskForces and still be used for their properties and scripts, and figure out what happens when units join a team where they aren't a part of the TaskForce. I'm hoping they just join the team and all the new units are created and there's no problems, because that would work great with the "requestable transports" idea.
Some other stuff I've been working on is getting a better understanding of some of the AI tags in the rules file. Most of these were lightly tested by changing them around some and doing a "harder or easier" test against Deezire's Deevious AI file.
The simplest ones to change to make the AI more effective were:
"BaseBias=" - Changing this from the default '2' up to '50' was highly effective at improving the response to threats against the AI's base
"BaseDefenseDelay=" - Reducing this to '0' seems to help response time
Two that caused some interesting results were by increasing "AutocreateTime=" and decreasing "FillEarliestTeamProbability=". I'm thinking that if the AI has plenty of triggers, and they're setup to handle most of the conditions of the battle, then actually increasing the delay time between autocreated teams could improve the general AI response by not jamming up production with as many autocreated teams. I haven't yet totally figured out "FillEarliestTeamProbability=", but I am thinking by lowering it from '100' that the "Priority=" tag for the TeamType, or some other logic is used to help determine unit production order rather than a simple queue. I think when I lowered it that the AI stuck to teams that were more likely to be effective, but reduced it's variety of attacks some, but more testing needs to be done. I might need to comment back out the AIGenerals stuff in case it's overriding any of the changes I'm testing. Also when lowering "TeamDelays=" it seemed to help to raise "AutocreateTime" so the AI didn't go mad trying to build 1000 different teams in 5 minutes.
The other tags I'm still trying to figure out are:
"AITriggerTrackRecordCoefficient=" - It's used with the trigger weighting delta stuff, and the guide says something like its for how many previous triggers to keep track of, but it's default is '1' so that doesn't make much sense. Possibly it's for how many previous entry's of each particular trigger to keep track of, but that still doesn't seem right. Changing it seemed to have some effect, but I'm not sure.
"ComputerBaseDefenseResponse=" It's supposed to be for how much the AI "over-responds" to attacks on its base, but "BaseBias=" seems to be much more effective.
"UseMinDefenseRule=" I didn't mess with this, other than leaving it at 'no' like the rulesmd file with Deevious AI has it, but I don't know what all changes it controls.
"AIForcePredictionFudge=" It says it "fudges" the evaluation of your units by this percent to decide the ratio of what kinds of base defenses to build. Does it do this at the start of the game, or continuously throughout ? And what percent seems to work best ?
"AttackDelay=" Is this the delay for any first attack against you, or just the delay for the first Autocreate team being created ?
Well, I searched the Deevious AI file for any "OnTransOnly" tags set to yes in TeamType properties and there weren't any, so I guess that rules out my theory about it using those teams as back ups when land routes are blocked. I think I'll still test that concept myself though. I think using some of the stuff from the Deevious AI as a sort of base and modifying and building from there could make a pretty effective AI pretty quickly, but a lot of my ideas require changing the overall organization and game plan of the AI, so I'm just using it for tests and playing against and to get some ideas. Also there was another modified AI file that I used to have and thought was pretty good, so I'll try to find that again too.
Well, I'm off to try to get those damn hovercraft to work together when loaded with vehicles.
DCoder - Yeah, I think maybe I used to have version 0.65 or version 0.667 that was listed at http://www.cannis.net/forum/index.php?showtopic=3819 . I'm not real sure, It was like 2 years ago that I first downloaded it. I don't know why the selectable scripts aren't working then, I'm almost sure that params.ini file is in there. I'd still take a copy of version 0.65 or 0.667 if you have it, to see if the teamtype properties work better for me. I'm thinking they aren't all showing up because my screen resolution is lower than before, or I used to be using win98 and have winxp now. Also the "jump-to" links with the "used-by" things don't seem to work right. Eh, it'll be nice if I can get it working better, but I'm doing ok for now, and have most of the script #'s memorized.
The Change Team command seems to have a lot of potential, and a lot of unique features that let you do some really cool stuff. I'm still figuring out exactly how it works, like how the teams and their properties are managed when you use it. Some things I've noticed, but not totally confirmed yet are
- Units that have been changed from one team to another seem to keep some or all of their original TeamType properties. I saw this using the blackhawks, where the final team that they were in had "Transports Return To Origin" on, and the first team of the group had "LooseRecruit" on, and only the last two of the transports returned to base after unloading.
- AI units that are in transports are considered to no longer exist by the AI
- When given a Change Team command the original team is considered gone, thereby removing it from the count of it's Max=n property. This presents some problems when making the triggers for the first team in a chain, because it will always change out of that team, causing it to never max out, which causes a team creation loop that jams up production with it constantly recreating the first team. This might not be a problem when there's other triggers going off, or by messing with the teams Priority= tag, but for now I've just gotten around it by basing the trigger off of the number of transports, so it only fires when there's less than one transport, and the first team stops that condition when it's created.
Some ideas that could probably be done using Change Team
- "Transports on Request": by placing a Change Team command at the end of a script you could probably get a team to use it and the transport only if it was unable to complete some of the commands before it. An example would be a script to move to and attack something in an enemy base, usually ending in either destruction of the team or the base, but if the base was unreachable it would skip those lines and Change Teams, with it's new script either having a new mission, or the same one with a transport added to the TaskForce and transport commands in the script. This could possibly be looped/shelled to handle more units than could fit into one transport. Getting the joined transports to work with vehicles would really work good with this.
- "Conditional Reinforcements": by having a team "re-join" itself after a mission it would cause the missing units to be replaced and veteran units to remain active. This would be different than the regular "Annoyance=" or "Whiner=" properties because some members of the team would have to survive up to the Change Team command for the team to be rebuilt.
- "Special Missions for Veterans": this would cause remaining units of a team to go on a different mission after they finished their first script. You would probably do this after a mission where they are expected to get a lot of easy kills or do a lot of high value damage, by just putting a Change Team or maybe Change Script command at the end of their first script. Change Team would be used if you wanted to add some units to the group, or maybe change some properties, and maybe cause the original team to be replaced. Change Script would just work for the units you have, and would not cause as much chance of a replacement team being formed. One idea for this is to put units in Guard Area for a while to guard the base and increase veterancy, then after that time limit is up they'd go on a new mission.
- "Dummy Teams to Change TeamType Properties": These would just be teams with certain properties and a script, but no TaskForce, so no new units are created.
- "Various Rushes and Chrono / Iron Curtain Attacks": By combining a group of loaded transports you can have a fast moving and protected invasion force, and by using the Regroup/Gather command I'm pretty sure you could Chronoshift or Iron Curtain up to 4 loaded hovercraft, which could carry 48 troops into the middle of a base safely. The Chronoshift attack would be especially effective if the base only had perimeter defenses, but making a trigger based on that might be difficult. Another special attack could be a group of loaded blackhawk transport choppers that flew in fast when the power was low or some type of air defense was under a certain quantity. This would probably work best with "AvoidThreats=yes" and having it be pre-built somehow.
I still need to figure out if teams can have empty TaskForces and still be used for their properties and scripts, and figure out what happens when units join a team where they aren't a part of the TaskForce. I'm hoping they just join the team and all the new units are created and there's no problems, because that would work great with the "requestable transports" idea.
Some other stuff I've been working on is getting a better understanding of some of the AI tags in the rules file. Most of these were lightly tested by changing them around some and doing a "harder or easier" test against Deezire's Deevious AI file.
The simplest ones to change to make the AI more effective were:
"BaseBias=" - Changing this from the default '2' up to '50' was highly effective at improving the response to threats against the AI's base
"BaseDefenseDelay=" - Reducing this to '0' seems to help response time
Two that caused some interesting results were by increasing "AutocreateTime=" and decreasing "FillEarliestTeamProbability=". I'm thinking that if the AI has plenty of triggers, and they're setup to handle most of the conditions of the battle, then actually increasing the delay time between autocreated teams could improve the general AI response by not jamming up production with as many autocreated teams. I haven't yet totally figured out "FillEarliestTeamProbability=", but I am thinking by lowering it from '100' that the "Priority=" tag for the TeamType, or some other logic is used to help determine unit production order rather than a simple queue. I think when I lowered it that the AI stuck to teams that were more likely to be effective, but reduced it's variety of attacks some, but more testing needs to be done. I might need to comment back out the AIGenerals stuff in case it's overriding any of the changes I'm testing. Also when lowering "TeamDelays=" it seemed to help to raise "AutocreateTime" so the AI didn't go mad trying to build 1000 different teams in 5 minutes.
The other tags I'm still trying to figure out are:
"AITriggerTrackRecordCoefficient=" - It's used with the trigger weighting delta stuff, and the guide says something like its for how many previous triggers to keep track of, but it's default is '1' so that doesn't make much sense. Possibly it's for how many previous entry's of each particular trigger to keep track of, but that still doesn't seem right. Changing it seemed to have some effect, but I'm not sure.
"ComputerBaseDefenseResponse=" It's supposed to be for how much the AI "over-responds" to attacks on its base, but "BaseBias=" seems to be much more effective.
"UseMinDefenseRule=" I didn't mess with this, other than leaving it at 'no' like the rulesmd file with Deevious AI has it, but I don't know what all changes it controls.
"AIForcePredictionFudge=" It says it "fudges" the evaluation of your units by this percent to decide the ratio of what kinds of base defenses to build. Does it do this at the start of the game, or continuously throughout ? And what percent seems to work best ?
"AttackDelay=" Is this the delay for any first attack against you, or just the delay for the first Autocreate team being created ?
Well, I searched the Deevious AI file for any "OnTransOnly" tags set to yes in TeamType properties and there weren't any, so I guess that rules out my theory about it using those teams as back ups when land routes are blocked. I think I'll still test that concept myself though. I think using some of the stuff from the Deevious AI as a sort of base and modifying and building from there could make a pretty effective AI pretty quickly, but a lot of my ideas require changing the overall organization and game plan of the AI, so I'm just using it for tests and playing against and to get some ideas. Also there was another modified AI file that I used to have and thought was pretty good, so I'll try to find that again too.
Well, I'm off to try to get those damn hovercraft to work together when loaded with vehicles.
DCoder - Yeah, I think maybe I used to have version 0.65 or version 0.667 that was listed at http://www.cannis.net/forum/index.php?showtopic=3819 . I'm not real sure, It was like 2 years ago that I first downloaded it. I don't know why the selectable scripts aren't working then, I'm almost sure that params.ini file is in there. I'd still take a copy of version 0.65 or 0.667 if you have it, to see if the teamtype properties work better for me. I'm thinking they aren't all showing up because my screen resolution is lower than before, or I used to be using win98 and have winxp now. Also the "jump-to" links with the "used-by" things don't seem to work right. Eh, it'll be nice if I can get it working better, but I'm doing ok for now, and have most of the script #'s memorized.