Staredit Network > Forums > SC1 UMS Theory and Ideas > Topic: Dynamic VHP for multiple, spawned units
Dynamic VHP for multiple, spawned units
Dec 13 2009, 1:59 am
By: Jack
Pages: < 1 2 3 >
 

Dec 13 2009, 11:20 pm CecilSunkure Post #21



Quote from name:zany_001
Cecil, except for the randomized damage dealt, that is pretty similiar to what I have, except you don't need a location for every unit on the map, just a location for every unit within range of the player. If you make the spawns right, you should never exceed the amount of locations used.
Which is exactly what I said. You must not have read my entire post. Kaias said your system uses 21 locations per human player -mine uses an amount equal to the maximum amount of "active" units with VHP being employed.



None.

Dec 13 2009, 11:23 pm Jack Post #22

>be faceless void >mfw I have no face

The 20 is an arbitrary number, it would be number-of-spare-locations divided by players.

Anyway your system would use up too many locations if it's a location for EVERY unit.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Dec 13 2009, 11:26 pm CecilSunkure Post #23



Quote from name:zany_001
The 20 is an arbitrary number, it would be number-of-spare-locations divided by players.

Anyway your system would use up too many locations if it's a location for EVERY unit.
Every unit active. If you will only have 30 units active at once, at max, then you only need 30 locations. This doesn't mean you can only have 30 types of units either, just 30 active at once. I don't really see how a VHP system would need more than 50 active units on screen at once..



None.

Dec 13 2009, 11:29 pm Jack Post #24

>be faceless void >mfw I have no face

Ah, what you mean by active is essentially units within range of the hero. Yeah, the systems are the same. I use as many spare locations as are avaliable same as you.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Dec 14 2009, 12:42 am scwizard Post #25



Kaias, my impression was that it was a clunky and inelegant system as well, but I'm not going to try and demonstrate that without a working prototype in front of me.

This system does work, and it's hard to demonstrate any significant disadvantages it has without actually testing it. Who are you trying to convince? The convince will just waste time arguing with you, since he's too attached to his idea, and people reading the topic will probably think "it's hard to tell how this would work in practice without a concept map demonstrating it", and ignore everyone involved.



None.

Dec 14 2009, 2:14 am Jack Post #26

>be faceless void >mfw I have no face

Let me make this clear: it isn't a finished, polished concept. It doesn't have a proof-of-concept map. I put it up because imagodeo wanted to see it and cecil said to post it, even unfinished, and I thought it might help Madzombie. When I have time I will make a test map and clean up the OP.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Dec 14 2009, 5:35 am Kaias Post #27



Quote from scwizard
Kaias, my impression was that it was a clunky and inelegant system as well, but I'm not going to try and demonstrate that without a working prototype in front of me.

This system does work, and it's hard to demonstrate any significant disadvantages it has without actually testing it. Who are you trying to convince? The convince will just waste time arguing with you, since he's too attached to his idea, and people reading the topic will probably think "it's hard to tell how this would work in practice without a concept map demonstrating it", and ignore everyone involved.
What are you trying to say here?



None.

Dec 14 2009, 5:26 pm Kaias Post #28



Quote from CecilSunkure
Quote from CecilSunkure
Well if you know how to use binary countoffs and single switch randomization, you can rig up a pretty kick ass VHP system with ease.

You could first randomize the hit from one unit to another, and then depending on the amount of the DC that is landed on during randomization, you then divide the base amount of damage from a unit (which you decide the amount of via death counts) by a certain factor with a binary countoff. The resulting quotient could then be the amount of DC's (health) subtracted from the unit being attacked. You could have all this done within a single trigger cycle too. You can also reuse your binary countoffs for all players, to minimize triggering done by the mapper.

Here's an example:

Player 1 tries to hit a Weak Zombie.

Player 1 rolls an attack check with single switch randomization. Let's say the DC parameters for this role are between 0-100. Every increment of DCs (the amount of the increment decided on by the mapper) for this roll will represent a different quality of a successful hit, or even complete miss.

So this means that if the player rolls 0-9 deaths, the hit completely misses. If the player rolls from 10-49 deaths, his base attack amount will be divide by 20. If he rolls from 50-89 deaths, his base attack amount will be divide by 16. If he rolls from 90-100, then his base attack amount will be divided by 14.

Lets say Player 1's unit currently has a base attack damage of 100. He can now inflict either 0 damage (miss), 5 damage, 6 damage, or 7 damage.

You can set up more division amounts if you want, and you can change the base attack amount any way you want for any unit. You can also specify which units are applied to which type of divisions of base attacks.

Then just use a simple system for representing HP with DCs.

But.. If you want to have hordes of zombies, it will get a bit tedious representing VHP for multiple enemies at once. You could try using 1x1 pixel locations constantly being moved over enemies that spawn near the players to employ VHP. You could designate the zergling to represent hit points of a zombie (burrowed), and then cycle through and center locations onto the zerglings every trigger cycle, with use of two different computer types -this way you don't have to mess with giving the actual zombie to different computer players every trigger cycle in order to center locations. Once the locations are set, they should be moved to the zergling that they are currently over as to keep the same locations over their same zombies. From here, you can just have different groups of locations represent different types of zombies; locations 0-9 be weak zombies, 10-19 be normal zombies, 20-29 be strong, etc. Make sure these locations are 1x1 pixel width, so that the locations don't "jump" from one unit to another.

Maybe mix in a couple types of zombies that are always 1 hit kills (so you can have a hordish look to the amounts of enemies without bothering to apply VHP to these 1 hit kill zombies).

Lemme know if any of this was explained poorly.

Pros of this: Any amount of damage can be done by any unit to any unit within a trigger cycle.
This isn't correct. You can make any player do any amount of damage but not any unit, since you don't have any idea which unit did the attacking/killing of the Hero's vhp.



None.

Dec 14 2009, 5:51 pm CecilSunkure Post #29



Quote from Kaias
This isn't correct. You can make any player do any amount of damage but not any unit, since you don't have any idea which unit did the attacking/killing of the Hero's vhp.
Uhm why not? You would have 1 DC paired with each location. The type of DC identifies which location it pertains to, and the number of the DC identifies which type of unit it is. Using this info, you can construct different trigger conditions for different types of units. You could also pair a second DC to each location, used for timing of attacks, or cooldowns.

Say unit A is attacking unit B. Unit A's DC # is 1, and DC A pertains to location 1. Unit B's DC # is 2, and DC B pertains to location 2. With this information, you can tell which location unit type 1 is at, and which location unit type 2 is at. You can also tell what type of unit is at location 1 and 2 by the amount of the DC. The second DC paired with each location would then control attacking cooldowns; you can also specify for a certain amount of this second DC as a "this unit is attacking right now" amount. So then you can use trigger conditions to detect when each unit is cooling down, when each unit is cooled down, and when each unit is attacking.

As for targeting specific units, you can rig the ai to target whichever human player you want, and you can create some sort of death affect over specific units as the attack, and their cooldown begins. You can also, if you want, create some sort of effect over a human player when they take damage.

As for human targetting, you obviously want the humans to be able to choose who they attack. The way you do this would depend more on the game mechanic of the map. If the map is turn-based, you can use an air unit sort of as a "cursor" to cycle over and select enemy units you are battling. If the map is in real-time, then you can still use an air unit cursor if you wish, I think this would be easiest. You can also use auto-targetting, and make certain attacks just hit the closest enemy to you. You can also specify in spell descriptions the area of affect for spells, and just deal splash damage to all enemies within certain areas, like around the character.

You could also use an auto-targetting cursor to cycle over enemy units in real-time for each player to select units to attack, that would require one more burrowed unit under each enemy.

If you have multiple human players, a unit cursor could become "cramped", so that is something you would need to deal with (In real time battles).

Kaias, is there a link to a wiki or tutorial on this stuff I just described? Because the VHP article in the wiki is really rather vague, and doesn't go into details like we have in this topic. Can you think of any other ways for the humans to target specific enemies in real-time?

[Edit]Maybe you could specify different death affects as different player's cursors. Say when player one cycles to a new target, it create/kills a hallu unit over the target (next to the target if the target is an air unit). Maybe to target and cycle over targets, you could center the screen on the unit, for that particular human player.

Post has been edited 1 time(s), last time on Dec 14 2009, 5:58 pm by CecilSunkure.



None.

Dec 14 2009, 5:59 pm Kaias Post #30



Quote from CecilSunkure
Say unit A is attacking unit B. Unit A's DC # is 1, and DC A pertains to location 1. Unit B's DC # is 2, and DC B pertains to location 2. With this information, you can tell which location unit type 1 is at, and which location unit type 2 is at. You can also tell what type of unit is at location 1 and 2 by the amount of the DC. The second DC paired with each location would then control attacking cooldowns; you can also specify for a certain amount of this second DC as a "this unit is attacking right now" amount. So then you can use trigger conditions to detect when each unit is cooling down, when each unit is cooled down, and when each unit is attacking.
So your suggestion is to make every single unit for the player take turns attacking, or at the very least, each unit type?



None.

Dec 14 2009, 6:04 pm CecilSunkure Post #31



Quote from Kaias
Quote from CecilSunkure
Say unit A is attacking unit B. Unit A's DC # is 1, and DC A pertains to location 1. Unit B's DC # is 2, and DC B pertains to location 2. With this information, you can tell which location unit type 1 is at, and which location unit type 2 is at. You can also tell what type of unit is at location 1 and 2 by the amount of the DC. The second DC paired with each location would then control attacking cooldowns; you can also specify for a certain amount of this second DC as a "this unit is attacking right now" amount. So then you can use trigger conditions to detect when each unit is cooling down, when each unit is cooled down, and when each unit is attacking.
So your suggestion is to make every single unit for the player take turns attacking, or at the very least, each unit type?
You would need to allow the human player to cycle through his own party units to attack, whether it be real time or turn-based, unless there are certain human controlled units you want to, as the mapper, make attack at will, where the player has no control over when it attacks, or even let the player specify to make certain units auto-attack (like a summoned monster, or minion).

As for any unit, human controlled, or computer controlled, you can make certain units target other units with randomized ai targetting, or semi-randomized. Say you use a priority randomizer where you randomize a DC from 0-100; there are two different types of units to attack (for simplicity). Anything below 70 attacks the stronger unit, and anything above 71 attacks the weaker unit. You can use this sort of AI targetting for certain human units, and all enemy units. You can also randomize which unit type an computer unit will attack (henchmen, summoned units, or characters), from here you then start another randomizer, which picks a random unit from that specific group.

Is that the answer to what you were asking?

You can make ai controlled units all attack independently from one another by using the second DC paired to each specific location to detect cooling down//attacking//and ready to attack (say DC = 0 is ready to attack, DC = 1-200 is cooling down, and DC = 500 attacking).

[Edit]I can make a concept map after I'm done with my RPG as an example to all this. Actually, I think I will, once I'm done with my RPG.



None.

Dec 14 2009, 6:08 pm Jack Post #32

>be faceless void >mfw I have no face

How would you force the player to only attack one sort of unit without two computers? Or does the targetting only work for AI attacking players?



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Dec 14 2009, 6:10 pm CecilSunkure Post #33



Quote from name:zany_001
How would you force the player to only attack one sort of unit without two computers? Or does the targetting only work for AI attacking players?
I said a long time ago that this requires two different players. I also said that if you include human controlled targeting, you would need another burrowed unit under each unit, one for centering locations every trigger cycle, and one for targeting. Ai controlled units wouldn't need more than 1 location, but each human player that has targeting would need an additional location.

[Edit]You would also need a few more locations for each player owned unit if you want to be able to target the closest enemy unit to the player, or create area of effect spells//attacks, and a couple more for area of effect spells with effects that degrade over distance.



None.

Dec 14 2009, 6:13 pm Jack Post #34

>be faceless void >mfw I have no face

It sounds over-complicated and inelegant with the targetting and cooldown DCs. Plus the burrowed units are annoying as they make the units jitter, although that could look alright with zombies.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Dec 14 2009, 6:15 pm CecilSunkure Post #35



Quote from name:zany_001
It sounds over-complicated and inelegant with the targetting and cooldown DCs. Plus the burrowed units are annoying as they make the units jitter, although that could look alright with zombies.
I find it pretty simple (it's just a lot of simple systems joined together to form a complex system), and I think it's the only way, and the simplest way to all the things I just described. This is how VHP systems are. If you don't want something this elegant or complicated, then you shouldn't use VHP. Burrowed units wouldn't make anything jitter, would they? I've used maps that constantly move burrowed units under moving units, and I couldn't tell any difference in movement, because the burrowed unit wasn't being removed completely from under the walking unit.



None.

Dec 14 2009, 6:20 pm Jack Post #36

>be faceless void >mfw I have no face

I mean, it sounds like it isn't easy to use as a player. Perhaps it would be fine, it's hard to tell without a concept map.

As for burrowed units, constantly moving burrows underneath other ground units slows them down unless you use a timer so it isn't every cycle.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Dec 14 2009, 6:23 pm CecilSunkure Post #37



Quote from name:zany_001
I mean, it sounds like it isn't easy to use as a player. Perhaps it would be fine, it's hard to tell without a concept map.
Oh I see what you mean.

If you use a dropship, you can have 8 buttons to press. I'm sure you could control everything character oriented with a dropship. If you include a text-based menu, you could use a separate dropship for the menu.

8 buttons in a dropship should be well enough. It would take a little time to memorize which click does what, but after you do, things should be pretty smooth. I mean, the first time you used a SNES controller, I'm sure it wasn't exactly easy. That thing had 8 buttons and a D-pad, but you're used to it so it comes easy to you.

[Edit]I'd say I already do this in my RPG. I use two dropships for my user input, and a gateway for conversing with NPC's and such. You need to keep 4 hotkeys, the last one being the character.



None.

Dec 14 2009, 7:15 pm Kaias Post #38



Nothing you're describing, Cecil, is at all cogent or coherent. You're illustrating doing things, not how to do them and from the sound of it your plan would sacrifice much of normal gameplay mechanics, whereas the traditional objective of vHP systems is to seamlessly integrate virtual health into the natural mechanics. I'm afraid if you want your idea to be at all meaningful, you'll have to start from the top; though, don't be overly specific.



None.

Dec 14 2009, 11:18 pm CecilSunkure Post #39



Quote from Kaias
Nothing you're describing, Cecil, is at all cogent or coherent. You're illustrating doing things, not how to do them and from the sound of it your plan would sacrifice much of normal gameplay mechanics, whereas the traditional objective of vHP systems is to seamlessly integrate virtual health into the natural mechanics. I'm afraid if you want your idea to be at all meaningful, you'll have to start from the top; though, don't be overly specific.
Maybe I just did a terrible job at explaining things. Maybe you could point out something specific? I just went through all of "how to" do things, at least, I understood how to do them.

And I honestly don't know what normal VHP systems are if what I described isn't. I already asked for a link to something that is normal, as I can't find anything.

Hmm start from the top.. Allright, well, if you want to have every unit that is in active battle to have representational health, I would start off by making all units invincible. All attacking affects would be shown via death affects.

Now, you need a location over each individual unit, so that you can tell the difference between each unit. In order to constantly update the locations over these units, you need to use burrowed units, under every battle active unit, to use to cycle through and center locations, every trigger cycle.

Now you need a way to directly detect what type of unit is at each location. You can do this by using the actual unit (not the burrowed one) under each location, but what I would rather do, is use deathcounts to represent what type of unit is at each location - this would allow you to create multiple difficulties of enemies with just a single unit type. For example: you could use the zealot to represent greater skeletons, skeletons, and weak skeletons. To be able to tell the difference between what is at each location, you would represent the unit at each location as a DC amount. Say, a 1 is a weak skeleton, 2 is a normal one, and so on.

Now you need a way to tell what that DC amount corresponds to, concerning the centering locations. You do this, by using a seperate DC type for each location. You would assign DC A to location 1, and DC B to location 2, and so on. This way, when you spawn an enemy unit or something at location 3, you would then set DC C to the amount that represents which unit you want to be at location 3. You could use a DC amount of 0 to represent an inactive location.

So far we have a simple system set up to be able to have multiple active units, in battle, able to move freely in real-time.

Now we need to represent each units' VHP. You can do this in the same way you differentiated between unit types; you can assign another different DC to each location, representing unit HP. From here, to setting the actual unit's hp under a location shouldn't need to be outlined.

Now we need a way for these units to apply damage to one another, and a way for these units to have intervals of "cooldowns" between their attacks.

The cooldown is simple to solve, just assign another DC to each location and use that for attacking cooldowns. 0 could represent "ready to attack", and you can use a large amount to set the DC to that represents "this unit is attacking", this large amount should be something a cooldown would never need to be at.

Now for the actual attacking. Once the cooldown for a specific unit is set to 0, assuming this unit needs to be controlled with ai, you can check to see if any are in range with a single large location. If there are enemies nearby, you can randomize which enemy the unit will deal damage to. There needs to be a second burrowed unit under each active and in battle unit, to allow for units to select which unit to deal damage to. The randomizing and enemy detection shouldn't need to be explained.

As for human controlled units, instead of just using a pre-set attack selection system, you probably want to allow the player to choose which enemies to hit. Once a player's character's cooldown is at 0, you could control a cursor to cycle over enemy units, at the player's will, and select which unit to strike. This can be done with 1 button in a dropshop. Here, the player can just choose how to attack, and with what spell, via the dropship. So really, you would be using 1 button for the cursor, and the rest in the dropship would be for casting spells and such, just like any other map. I don't really see what's sacrificial here in terms gameplay (except for maybe over cycling of the button, hitting the cursor cycle button one too many times).

This whole cycling through units thing would be no problem if the battling system was fully turn based, however, because then you could make it so only 1 human unit would be attacking at a time, and this make it so that over-cycling of the cursor wouldn't result in a short loss of time on the human's part.

I'm assuming applying damage to enemies, and actually adding or subtracting health shouldn't need to be explained, as the whole point of me explaining this was just to get my thoughts on representing units HP virtually in real-time, with as little locations as possible.

I hope that was a bit more understandable. I don't foresee a single problem with anything here, except multiple cursors over the same enemy might cause a little confusion at times, and the constantly moving of burrowed units might make walking units look jittery (but I think this will be negligible).



None.

Dec 15 2009, 3:26 am Kaias Post #40



Quote from CecilSunkure
All attacking affects would be shown via death affects.
Ah, the attacking is done virtually as well, rather than each unit actually killing a vHP unit. This makes your system lose much of the natural starcraft mechanics (essentially all of them), and reduces its usefulness. The rest of the internal organs are best left internal.

Quote from CecilSunkure
Now, you need a location over each individual unit, so that you can tell the difference between each unit. In order to constantly update the locations over these units, you need to use burrowed units, under every battle active unit, to use to cycle through and center locations, every trigger cycle.
Why? this seems extremely unnecessary.



None.

Options
Pages: < 1 2 3 >
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[11:45 pm]
ClansAreForGays -- Anyone wanna played Skewed StarCraft?
[2026-4-14. : 12:07 am]
Vrael -- NudeRaider
NudeRaider shouted: Vrael ranting still is though
you're a gentleman and a scholar, thank you
[2026-4-13. : 10:07 pm]
NudeRaider -- ya why phone people when you can just write letters
[2026-4-13. : 9:37 pm]
IskatuMesk -- I have never and will never own a phone
[2026-4-13. : 9:15 pm]
NudeRaider -- Vrael ranting still is though
[2026-4-13. : 9:14 pm]
ClansAreForGays -- anticapitalism isnt edgy anymore
[2026-4-13. : 3:31 pm]
Vrael -- it only costs 50% of my post-tax salary for life and in return I get to also become a drone whose sole purpose is CAPITALISM
[2026-4-13. : 3:30 pm]
Vrael -- pssht, you're still using a phone? I just record 100% of my life using my ElonBrainChip
[2026-4-13. : 2:13 pm]
NudeRaider -- bro I don't go anywhere without my phone to record anything significant
[2026-4-13. : 1:28 pm]
Vrael -- Zoan
Zoan shouted: not if u wer there
id say even if you were there its tricky, human memory can be very faulty
Please log in to shout.


Members Online: Moose