[EDIT]: System now available to download at the bottom of the post. The attached .rar file comes with a Mod file that can be added as a dependency to your own maps, allowing you to directly import all my data assets into a map. It also comes with a Test Map, which contains my Squad trigger library and an example of squad-based gameplay for you to try. Finally, a Microsoft Word document contains a tutorial to teach you how to make use of my system's data and trigger assets. You need BOTH the Test Map's trigger library AND the mod file contained within the attached RAR file.
[EDIT 2]: WARNING! A recent patch seems to have messed up the squad commands. As it stands, the Augment abilities that are used are only being activated properly for unit commands, not points. For the life of me I have not been able to figure out why beyond it possibly being an editor bug. By all means, try using the system anyway, or check it out to see what I did and how. Perhaps a future patch by Blizzard will resolve the issue. If you see a mistake I made that may have messed up the Augments, feel free to post a fix.
Hey all!
I'm currently working on a side project, which should allow modders to create squad-based gameplay. I managed this back in the day for Warcraft III and the Weekly Trigger Exercise that went on recently reminded me how much fun it was to create the old system. So here I am, trying to recreate a decent system for Starcraft II. The system is currently capable of:
Squads are selected as a group instead of singularly. (data)
Squads live or die as a group. (data)
Squads gain new members while being healed. (triggered)
Squads lose members as they die. (data)
Squads move and attack as a unit. (data)
Squad members will automatically return to their original group if they travel more than 3 range away (data)
Selecting a Squad shows all the kills from each of its members. (data)
Squads will now almost immediately regroup with their original squad. It still looks a little awkward if two squads run directly into one another, but it's much faster than before. (data)
Squads will move faster when trying to catch up to their original squad (if they fall behind). (data)
Squad members will accept direct orders in combat for targeting single enemy targets, unless they are within 1 range of their current adversary (designed so zealots and zerglings won't circle endlessly instead of fighting). (data)
Squads that are made up of two different unit types (Roaches and Hydras, Marines and Marauders, etc;)
Squads can be transported (still some issues with this, see post 16). (triggers and data)
Squads can stop and patrol as a group. (triggers and data)
I'm trying to do as much through the data editor as possible to make it run smoothly on battle.net. While it was tempting to use periodic triggers or 'takes damage' triggers to control health, I decided against it, since it would slow down the game if enough units were present (and could cause 'too many thread' errors in larger battles).
For the purposes of other people incorporating the system into their projects, I'm also trying to lessen the amount of changes needed for each squad type. In other words, I'm trying to avoid things like having (marine) and (zergling) versions of each behavior and effect. I have failed to some degree (some of these alterations were inevitable), but I have managed to limit it.
Current bugs in the system:
Behaviors will not transfer between squad members. This will not be changed, simply because I like that squad members can have varying buffs :).
Shield are not represented through the Squad system. Squad Members may have shields, but the actual squad selection will not keep track of them. I don't feel that this is an issue that needs to be rectified. Each Squad Member having different amounts of shields means that shields will not have to be 0 for the squad as a whole to take damage, so they become almost useless for giving users feedback.
If you have a suggestion or feedback, please post it :).
The Shortfalls of Data
Using primarily data to create this system limits the project in some ways. Data is unable to process variables and has trouble recognizing links between abilities that are currently active and abilities that are STILL active. As such, this system has a few serious flaws. If anybody has ideas as to how to fix any of these problems, please let me know.
1. This system cannot be used like a library. With triggers I could simply create a massive script that requires the user to input nothing more than unit types and numbers. With data, the end users (if there are any) need to understand the basics of the system and manually copy and modify anything that is specific to creating a new squad. This is fine for me (since I understand what I did), but trying to understand somebody else's data editor work can be a nightmare, especially when it is this complex. Once this is working the way I intend, I will probably write a tutorial on how to make your own squads with the system.
2. Limiting the unit orders to data means that occassionally, when a whole group of units get together, you can wind up with unsatisfactory effects. I've tried my best to limit this happening, but you can still get the occassional 2-3 second delay where units attempt to sort themselves into their original groups after running off with another squad.
3. This is the worst and believe me when I say I've tried countless things to try and fix it. I firmly believe there is a way to go about this, but without triggers it's a nightmare to solve. Squads and Squad Members do not share health bars.
I know that last one sounds like a huge deal, but let me explain a little further. When I say 'do not share health bars', I mean doing damage to a zergling will not directly transfer damage to its squad. Instead, health is only lowered when a unit actually dies. So if you have a squad of ten zerglings, which have 1 health each, the squad will still present itself a being full health, even though it's really down to only 10 health. That's an extreme case and unlikely to occur, but you can see the pitfall.
This also has slight issues with life regeneration and healing. Healing a Squad only actually makes a difference if it reaches the interval of it's unit's health. So healing a Zergling squad for less than 35 is the same as healing it 0.
This also means that when you attack a squad, you need to click on a unit in the formation directly, or else your units will simply walk into the other squad without firing.
Why Data?
You might be wondering why I'm using data if it has such horrendous issues. Well, aside from that third issue, the problems really aren't that bad. It's true that you need to understand my data work to see what needs to be copied, but everything that must be copied/modified for a new squad is/will be clearly labelled with a unit name beside it (AKA Zergling or Marine).
Sadly, the issues with triggers would be fewer, but more severe. The game would run perfectly when playing solo, but playing over Battle.net would be slow, unresponsive and buggy. Triggers create new variables, which bog down people's computers with extra (and often unnecessary) data. Data, on the other hand, makes use of variables which are already created automatically when abilities are used (including Move, Attack, etc;).
Triggers are also prone to breaking in SC2 when too many threads are created or are running through conditions simultaneously. Chief offenders for this issue are events related to either units dying, units receiving orders, and units taking damage. All of those would be necessary for a project like this to work via the Trigger Editor.
Finally, using triggers would create massive response delays during combat. Periodic effects would likely need to be implemented in order for the system to work properly and nothing performs worse than periodic timers via triggers except for response times to user commands.
I am working hard to fix the issues above and break free of the typical data limitations. What I've done so far is already beyond what I used to think the boundaries of data were, so I don't doubt I'll find some way to iron out these issues eventually. In the meantime, if you have any suggestions for how to link squad member health to the actual squad health, don't be shy to share. :)
Sweet, glad there's so much fast support :O. I'm working on it as we speak, I'll keep updating the original post as I change things (I won't keep updating the video unless something really major changes).
Update, guys! I managed to improve the system I had before to eliminate alot of the old, annoying bugs. Units are now faster to regroup with their original squads, seperate less, don't get caught up while attacking, etc; I've also managed to add in squads that consist of two unit types (a Marauder and 4 Marines being my test unit).
The triggers are now much more flexible and have been inputted into a library (there's only one real trigger for now, but alot of variables and whatnot to assign). A one-line custom action will control all regeneration for your squads.
Data work became slightly more extensive with the assorted squad upgrade though. Secondary units will require a little more work for those creating their own squads.
That depends on how you choose to set it up in the data editor. If every unit in the squad can strafe, then it can do that. If only some of them can, then it won't. It's up to the user to set that.
Yeah, I've actually already started brainstorming for a version of SC2 that's entirely squads. Not sure if I'll ever pursue it. For the time being, I'll just stick to getting the system working :).
I will be uploading the map once its done so people can see how I did it. I will probably have a tutorial that will show you how to create your own squads with the system. For some reason I'm craving seeing a squad made up of 2 SCVs and a Siege Tank :P.
Progress :). I've managed to get transports working satisfactorily. The only downside is that all the squad members will drop at once and I can't seem to get their Unload End animations to work right, but the actual issue of transporting from one place to another has been resolved.
I also did some extra work on getting units to stick with their original groups (even more than before). These two actions have doubled the number of validators and significantly increased the amount of custom behaviors, but at least it works really well now.
[EDIT]: System now available to download at the bottom of the post. The attached .rar file comes with a Mod file that can be added as a dependency to your own maps, allowing you to directly import all my data assets into a map. It also comes with a Test Map, which contains my Squad trigger library and an example of squad-based gameplay for you to try. Finally, a Microsoft Word document contains a tutorial to teach you how to make use of my system's data and trigger assets. You need BOTH the Test Map's trigger library AND the mod file contained within the attached RAR file.
[EDIT 2]: WARNING! A recent patch seems to have messed up the squad commands. As it stands, the Augment abilities that are used are only being activated properly for unit commands, not points. For the life of me I have not been able to figure out why beyond it possibly being an editor bug. By all means, try using the system anyway, or check it out to see what I did and how. Perhaps a future patch by Blizzard will resolve the issue. If you see a mistake I made that may have messed up the Augments, feel free to post a fix.
Hey all!
I'm currently working on a side project, which should allow modders to create squad-based gameplay. I managed this back in the day for Warcraft III and the Weekly Trigger Exercise that went on recently reminded me how much fun it was to create the old system. So here I am, trying to recreate a decent system for Starcraft II. The system is currently capable of:
I'm trying to do as much through the data editor as possible to make it run smoothly on battle.net. While it was tempting to use periodic triggers or 'takes damage' triggers to control health, I decided against it, since it would slow down the game if enough units were present (and could cause 'too many thread' errors in larger battles).
For the purposes of other people incorporating the system into their projects, I'm also trying to lessen the amount of changes needed for each squad type. In other words, I'm trying to avoid things like having (marine) and (zergling) versions of each behavior and effect. I have failed to some degree (some of these alterations were inevitable), but I have managed to limit it.
Current bugs in the system:
If you have a suggestion or feedback, please post it :).
The Shortfalls of Data
Using primarily data to create this system limits the project in some ways. Data is unable to process variables and has trouble recognizing links between abilities that are currently active and abilities that are STILL active. As such, this system has a few serious flaws. If anybody has ideas as to how to fix any of these problems, please let me know.
1. This system cannot be used like a library. With triggers I could simply create a massive script that requires the user to input nothing more than unit types and numbers. With data, the end users (if there are any) need to understand the basics of the system and manually copy and modify anything that is specific to creating a new squad. This is fine for me (since I understand what I did), but trying to understand somebody else's data editor work can be a nightmare, especially when it is this complex. Once this is working the way I intend, I will probably write a tutorial on how to make your own squads with the system.
2. Limiting the unit orders to data means that occassionally, when a whole group of units get together, you can wind up with unsatisfactory effects. I've tried my best to limit this happening, but you can still get the occassional 2-3 second delay where units attempt to sort themselves into their original groups after running off with another squad.
3. This is the worst and believe me when I say I've tried countless things to try and fix it. I firmly believe there is a way to go about this, but without triggers it's a nightmare to solve. Squads and Squad Members do not share health bars.
I know that last one sounds like a huge deal, but let me explain a little further. When I say 'do not share health bars', I mean doing damage to a zergling will not directly transfer damage to its squad. Instead, health is only lowered when a unit actually dies. So if you have a squad of ten zerglings, which have 1 health each, the squad will still present itself a being full health, even though it's really down to only 10 health. That's an extreme case and unlikely to occur, but you can see the pitfall.
This also has slight issues with life regeneration and healing. Healing a Squad only actually makes a difference if it reaches the interval of it's unit's health. So healing a Zergling squad for less than 35 is the same as healing it 0.
This also means that when you attack a squad, you need to click on a unit in the formation directly, or else your units will simply walk into the other squad without firing.
Why Data?
You might be wondering why I'm using data if it has such horrendous issues. Well, aside from that third issue, the problems really aren't that bad. It's true that you need to understand my data work to see what needs to be copied, but everything that must be copied/modified for a new squad is/will be clearly labelled with a unit name beside it (AKA Zergling or Marine).
Sadly, the issues with triggers would be fewer, but more severe. The game would run perfectly when playing solo, but playing over Battle.net would be slow, unresponsive and buggy. Triggers create new variables, which bog down people's computers with extra (and often unnecessary) data. Data, on the other hand, makes use of variables which are already created automatically when abilities are used (including Move, Attack, etc;).
Triggers are also prone to breaking in SC2 when too many threads are created or are running through conditions simultaneously. Chief offenders for this issue are events related to either units dying, units receiving orders, and units taking damage. All of those would be necessary for a project like this to work via the Trigger Editor.
Finally, using triggers would create massive response delays during combat. Periodic effects would likely need to be implemented in order for the system to work properly and nothing performs worse than periodic timers via triggers except for response times to user commands.
I am working hard to fix the issues above and break free of the typical data limitations. What I've done so far is already beyond what I used to think the boundaries of data were, so I don't doubt I'll find some way to iron out these issues eventually. In the meantime, if you have any suggestions for how to link squad member health to the actual squad health, don't be shy to share. :)
Waw ! :)
I've been thinking about something like that since Warcraft 3 too ^^
But couldn't achieve to do it properly !
I'm really waiting for something like this.
You get all my support ^^
Well, what is missing is formation. Allow the troops to form formations of all sorts of shapes similarly to Total War.
Epic.
Great, feels just like w40k Dawn of war II !
Sweet, glad there's so much fast support :O. I'm working on it as we speak, I'll keep updating the original post as I change things (I won't keep updating the video unless something really major changes).
omg my brain exploded! this is insanity! Keep going for sure!
Update, guys! I managed to improve the system I had before to eliminate alot of the old, annoying bugs. Units are now faster to regroup with their original squads, seperate less, don't get caught up while attacking, etc; I've also managed to add in squads that consist of two unit types (a Marauder and 4 Marines being my test unit).
The triggers are now much more flexible and have been inputted into a library (there's only one real trigger for now, but alot of variables and whatnot to assign). A one-line custom action will control all regeneration for your squads.
Data work became slightly more extensive with the assorted squad upgrade though. Secondary units will require a little more work for those creating their own squads.
Works with strafing attacking units? or do they feel the need to regroup almost immediately when they go into attacking pattern.
@wingednosering: Go
Keep up the good work;p.
@raydude714: Go
That depends on how you choose to set it up in the data editor. If every unit in the squad can strafe, then it can do that. If only some of them can, then it won't. It's up to the user to set that.
@EternalWraith: Go
Thanks.
Looks excellent.
Now someone should make a squad-based rts map.
@wingednosering: Go
Finally registered. After lurking for some time.
Just wanted to say this system looks awesome. Will you be making a tutorial of some sort, or making your data work availible for download?
Edit Apparently registered a long time ago...
@s3rius: Go
Yeah, I've actually already started brainstorming for a version of SC2 that's entirely squads. Not sure if I'll ever pursue it. For the time being, I'll just stick to getting the system working :).
@Crunchzor: Go
I will be uploading the map once its done so people can see how I did it. I will probably have a tutorial that will show you how to create your own squads with the system. For some reason I'm craving seeing a squad made up of 2 SCVs and a Siege Tank :P.
@wingednosering: Go
The old Team Fortress map from SC1 had some cool combinations for squads. If anyone remembers.
Progress :). I've managed to get transports working satisfactorily. The only downside is that all the squad members will drop at once and I can't seem to get their Unload End animations to work right, but the actual issue of transporting from one place to another has been resolved.
I also did some extra work on getting units to stick with their original groups (even more than before). These two actions have doubled the number of validators and significantly increased the amount of custom behaviors, but at least it works really well now.
@wingednosering: Go
I have tried creating my own squad system, but failed miserly. Kudos on a great system! I can't wait for a tutorial.
The system can now be downloaded. Let me know if you guys find any issues with the system or instruction document.