23.07.2007, 22:25:59
Well, I've tested a few of those ideas, and gotten some of them to work.
"Transports on Request" - This idea worked out, but only under certain conditions. First, you can't have a specific Attack (building number)(46,n) command before the Change Team command, because it will get hung up on it, like it has an inherent Repeat Until Success(49,0) command built in, but by just using a Move to Building (47,n) and general Attack command (0,n), then a Change Team(18,n) command, you can get it to join a team with a transport only if it can't get to where it's going. This helps the AI by not using transports if they aren't needed.
Another thing I learned from testing this is that members of one team can only join another team if they are listed in the second teams TaskForce. This makes it slightly more complicated to have requestable transports, but it also allows the possibility of "probe" teams and better control of the AI's unit production flow.
"Probe Teams" - These are AI teams that are used to probe your defenses, and cause different results depending on which units survive. This is a much more functional way of testing for defenses than using Triggers, because this method tests if the AI's units can survive a light entry into your base, instead of just testing for a specific TechType of defense. A simple example of this would be to just have a tank move to your con yard, then move back to the AI's con yard, then have a Change Team command. If the tank was destroyed it would signal that you had decent defenses and no further attacks of that type would be linked to, but if it survived it would get to the Change Team command, which would cause the creation of a larger force that would go back for more damage. This technique can also be used with more than one unit / type of unit, to test the level of your defenses. This would be done by using the same move to / move back approach, but then having a list of multiple Change Team commands at the end of the script. The Change Team commands would be ordered in a way to determine if the weaker units survived, or if it was only the stronger units. This would then cause different responses depending on which units survived you're defenses. This idea might need special purpose "clone" units to work best, but I'm not sure.
"Clone units" - To help control more of the AI's unit's behaviour than can be done with TeamType properties, special "clone" units for the AI only can be created in the rules file, with slightly different characteristics. Some uses for these are:
- Use them to control production quantities by setting a BuildLimit= on the unit itself, instead of just the Max=n tag in TeamType properties. The best example of these would be with the multiple transport "shell" teams that normally cause a production loop when they change out of the first team that creates the next teams. This way the first transport still exists, and has reached it's BuildLimit, so no more of those teams will be triggered for creation. This allows you to use regular conditions on the triggers for multiple transports, instead of having to use unstable conditions to trigger them, or basing them on the transport units in the teams. I'm thinking the BuildLimit= tag could also help with the "probe" teams, but I need to figure out how that would work.
- For base defense teams make clone units with increased Sight= and GuardRange= values, and set the ToProtect= tag to yes. These could be used to help the AI defend against forces that are gathering outside their base, and be more responsive to attacks on its base defense units. With the regular AI you're allowed to get too close to their base before they start fighting back because they don't realize you're there, this would help correct that.
It would help if I knew how to make units transform from one unit to another, so they could transform back and forth between regular or clone units when needed. Also, can somebody tell me how to make a unit where only the AI can build it ? And can you actually make clone units that display the same name in the game, because I would prefer if the special units weren't detectable ?
Right now I'm looking through the rules file and guides to see what properties would be good to change for mission specific units. I don't want to make any changes that affect the power of the units or balance of the game, just the behaviour of the units in an AI sense. If I'm going to write a full AI I'll need to have a good overall planning structure, with the right trigger weighting probabilities, TeamType Priority= numbers, general rulesmd tags, "linked" triggers, and "shell" teams, but right now I'm just focusing on getting the different special missions and attacks to work, before I put them all together.
DCoder - It was just my screen resolution that was making the editor not work right, when I turned it up it worked fine, but my moniter is too far away to use like that, so I'm just going to deal with it and re-edit the files in notepad.
"Transports on Request" - This idea worked out, but only under certain conditions. First, you can't have a specific Attack (building number)(46,n) command before the Change Team command, because it will get hung up on it, like it has an inherent Repeat Until Success(49,0) command built in, but by just using a Move to Building (47,n) and general Attack command (0,n), then a Change Team(18,n) command, you can get it to join a team with a transport only if it can't get to where it's going. This helps the AI by not using transports if they aren't needed.
Another thing I learned from testing this is that members of one team can only join another team if they are listed in the second teams TaskForce. This makes it slightly more complicated to have requestable transports, but it also allows the possibility of "probe" teams and better control of the AI's unit production flow.
"Probe Teams" - These are AI teams that are used to probe your defenses, and cause different results depending on which units survive. This is a much more functional way of testing for defenses than using Triggers, because this method tests if the AI's units can survive a light entry into your base, instead of just testing for a specific TechType of defense. A simple example of this would be to just have a tank move to your con yard, then move back to the AI's con yard, then have a Change Team command. If the tank was destroyed it would signal that you had decent defenses and no further attacks of that type would be linked to, but if it survived it would get to the Change Team command, which would cause the creation of a larger force that would go back for more damage. This technique can also be used with more than one unit / type of unit, to test the level of your defenses. This would be done by using the same move to / move back approach, but then having a list of multiple Change Team commands at the end of the script. The Change Team commands would be ordered in a way to determine if the weaker units survived, or if it was only the stronger units. This would then cause different responses depending on which units survived you're defenses. This idea might need special purpose "clone" units to work best, but I'm not sure.
"Clone units" - To help control more of the AI's unit's behaviour than can be done with TeamType properties, special "clone" units for the AI only can be created in the rules file, with slightly different characteristics. Some uses for these are:
- Use them to control production quantities by setting a BuildLimit= on the unit itself, instead of just the Max=n tag in TeamType properties. The best example of these would be with the multiple transport "shell" teams that normally cause a production loop when they change out of the first team that creates the next teams. This way the first transport still exists, and has reached it's BuildLimit, so no more of those teams will be triggered for creation. This allows you to use regular conditions on the triggers for multiple transports, instead of having to use unstable conditions to trigger them, or basing them on the transport units in the teams. I'm thinking the BuildLimit= tag could also help with the "probe" teams, but I need to figure out how that would work.
- For base defense teams make clone units with increased Sight= and GuardRange= values, and set the ToProtect= tag to yes. These could be used to help the AI defend against forces that are gathering outside their base, and be more responsive to attacks on its base defense units. With the regular AI you're allowed to get too close to their base before they start fighting back because they don't realize you're there, this would help correct that.
It would help if I knew how to make units transform from one unit to another, so they could transform back and forth between regular or clone units when needed. Also, can somebody tell me how to make a unit where only the AI can build it ? And can you actually make clone units that display the same name in the game, because I would prefer if the special units weren't detectable ?
Right now I'm looking through the rules file and guides to see what properties would be good to change for mission specific units. I don't want to make any changes that affect the power of the units or balance of the game, just the behaviour of the units in an AI sense. If I'm going to write a full AI I'll need to have a good overall planning structure, with the right trigger weighting probabilities, TeamType Priority= numbers, general rulesmd tags, "linked" triggers, and "shell" teams, but right now I'm just focusing on getting the different special missions and attacks to work, before I put them all together.
DCoder - It was just my screen resolution that was making the editor not work right, when I turned it up it worked fine, but my moniter is too far away to use like that, so I'm just going to deal with it and re-edit the files in notepad.