Staredit Network > Forums > SC1 UMS Theory and Ideas > Topic: Single Player RPGs and Equipment
Single Player RPGs and Equipment
Jul 26 2011, 9:00 pm
By: Sacrieur  

Jul 26 2011, 9:00 pm Sacrieur Post #1

Still Napping

Single player maps have made a special mark with the use of EUDs. They have become well-polished products with the capacity for lots of features, skirting around most of the issues found in creating mutliplayer maps. However, even with EUDs, a problem still remains in creating weapons and armors that can be unequipped and equipped.

Using StarCraft's regular upgrading system is fruitless, since one cannot undo an upgrade, or change its value for every unit. Instead, I propose a new system to deal with this problem.

The only thing that changes when one upgrades weapons is to make damage less, requiring fewer hits to kill a particular enemy. But what if, instead of increasing the damage of the hero, we decreased the HP of the enemy? The effect would be virtually the same.

The same concept can be applied to armor. We simply increase the hero's HP.

At a glance, this seems anti-intuitive, but it ultimately leads to a more controlled system. You may increase and decrease it entirely locally, or even control individual creature's strengths using LIDs. Such creates a number of useful applications in any RPG endeavor:

Armor
Weapon
Hexing
Abjuration
Enchantment
Poisons

Just to name a few.

Possible Problems

Particular issues arise when connecting this with StarCraft's built-in spells and effects. Damage types may screw the system if you're looking for only damage reduction, and spells such as medic's heal and psi storm can also seemingly ruin the effect, depending on the particular style of system sought. But nonetheless it adds usefulness.



None.

Jul 26 2011, 9:03 pm Dem0n Post #2

ᕕ( ᐛ )ᕗ

I don't see how the armor thing would work. What if, let's say, the hp of the player's unit is 200/3000 at level 1. He gets attacked an enemy and then has 180/3000. What if he finds armor and equips it at that hp instead of the full 100% for that level? You can't really increase their hp accordingly without basically healing them back to 100%.




Jul 26 2011, 9:04 pm Raitaki Post #3



Yes, it's quite a good idea....But I think it's better to use rapidly-recharging shields to simulate armor...Amount of shield points = amount of damage reducted :3c The same can be done with weapon damage....if it's possible for EUDs to give all units shieds.



None.

Jul 26 2011, 9:05 pm Sacrieur Post #4

Still Napping

Quote from name:Dem0nS1ayer
I don't see how the armor thing would work. What if, let's say, the hp of the player's unit is 200/3000 at level 1. He gets attacked an enemy and then has 180/3000. What if he finds armor and equips it at that hp instead of the full 100% for that level? You can't really increase their hp accordingly without basically healing them back to 100%.

Don't forget this is a single player map, so EUD detection of HP, or scarab detection, is an option.

Quote from Raitaki
Yes, it's quite a good idea....But I think it's better to use rapidly-recharging shields to simulate armor...Amount of shield points = amount of damage reducted :3c The same can be done with weapon damage....if it's possible for EUDs to give all units shieds.

It's true, this can be used, but multiple attacks can override the shields and cause more damage than was required at first. That could be used as interesting side-effect though.



None.

Jul 26 2011, 9:15 pm CecilSunkure Post #5



Have you considered spawning enemies with different HP values? For example you can rig a DC equipment system to handle virtual equipping/unequipping, and then spawn enemies with varying HP values depending on your weapon. You can also use a design workaround in an RPG without the use of equippable weapons having to directly affect the armor/attack upgrades. For example in my RPG you can equip weapons, but they just kill other units with the use of wraith shots, reavers, etc. I also have very rare "Augments" that give you a mineral to upgrade armor or attack, but those are not commonly equipped like weapons are.



None.

Jul 26 2011, 9:21 pm FoxWolf1 Post #6



I assume this system is intended for a map with real-time combat, since turn-based combat systems have a wide variety of options available for increasing the amount of damage done. That being the case, how, exactly, do you plan to implement reduction and re-increasing of enemy HP when equipment changes are made or buffs/debuffs are applied? If you do it using a "Set HP" action, everything will heal every time the hero's damage changes, unless you are keeping track of each and every monster's HP with individual EUD triggers combined with locations (so that the map's triggers will know which HP number, read from memory, corresponds to which monster) and then have additional triggers to calculate what the monster's hit points should be set to from each starting amount and then set that HP amount for the correct monster. If you do it with a direct damage system, the situation gets even worse, since you need to keep track of each monster's HP just to make sure the DDS doesn't blow it away if it's already hurt. And then you're left with the question of how to heal them, if you're not using Set HP, and the player's damage decreases, in a practical, non-gameplay-interrupting, non-unit-type-restricting way...

Most RPGs feature not only a fairly large number of monsters, but also systems that create additional units over the course of the game...meaning the map's EUD triggers won't know what they're looking at, since a created unit can be in different places in the unit node depending on what has and hasn't been created and/or killed. It's simply not practical to use HP detection EUDs on a large scale; yet, without tracking the HP of the monsters, screwy things happen to combat as the player's damage changes.



None.

Jul 26 2011, 9:35 pm TiKels Post #7



Why would you need a location to keep track of units?

The system sort of implies that you aren't going to be fighting 100 units at any given time, and moreover, i think it would actually be better to have "markers" or "chips" of some sort represent other units until they reach vision range (or just not have them exist at all), that way you can keep better track of what is actually able to fight. In an rpg setting, you could have it end up only dealing with a maximum of like 4-6 units at a time if you do it right. You, of course, would need to be careful about everything you do, though.

If i understand my EUDs correctly one could just do "add 237489237" or whatever the number would be to alter the health of the units you'd be fighting.

It seems like you're trying to apply this concept to a pre-existing rpg in your mind, something with massive amounts of units (like crash rpg or something). THAT would be a hecktic mess to deal with, yes, but with ample planning and thought this system is a lot more practical than you seem to think.



"If a topic that clearly interest noone needs to be closed to underline the "we don't want this here" message, is up to debate."

-NudeRaider

Jul 26 2011, 9:51 pm Sacrieur Post #8

Still Napping

From what I know of big RPGs, pre-placing most enemies is simply a bad practice. Any good RPG system I've played with required that the area's units were created after the hero entered the area, and removed after the hero left it.

That's how Elder Scrolls and Zelda get away with such big worlds.



None.

Jul 26 2011, 10:27 pm poison_us Post #9

Back* from the grave

Quote from name:Dem0nS1ayer
I don't see how the armor thing would work. What if, let's say, the hp of the player's unit is 200/3000 at level 1. He gets attacked an enemy and then has 180/3000. What if he finds armor and equips it at that hp instead of the full 100% for that level? You can't really increase their hp accordingly without basically healing them back to 100%.
Make them return to town to equip armor. They've got to have a place to unload other gear, else you'd potentially give your enemies a nice piece of armor, right?





Jul 26 2011, 11:01 pm CecilSunkure Post #10



Quote from poison_us
Quote from name:Dem0nS1ayer
I don't see how the armor thing would work. What if, let's say, the hp of the player's unit is 200/3000 at level 1. He gets attacked an enemy and then has 180/3000. What if he finds armor and equips it at that hp instead of the full 100% for that level? You can't really increase their hp accordingly without basically healing them back to 100%.
Make them return to town to equip armor. They've got to have a place to unload other gear, else you'd potentially give your enemies a nice piece of armor, right?
Yup, you'll make design decisions with knowledge of the game's limitations.



None.

Jul 26 2011, 11:16 pm Sacrieur Post #11

Still Napping

Quote from poison_us
Quote from name:Dem0nS1ayer
I don't see how the armor thing would work. What if, let's say, the hp of the player's unit is 200/3000 at level 1. He gets attacked an enemy and then has 180/3000. What if he finds armor and equips it at that hp instead of the full 100% for that level? You can't really increase their hp accordingly without basically healing them back to 100%.
Make them return to town to equip armor. They've got to have a place to unload other gear, else you'd potentially give your enemies a nice piece of armor, right?

As mentioned by Tikels, editing HP isn't really all that hard with EUDs. But donning armor should take some time, so you may see the appeal of donning armor outside of battle.



None.

Jul 26 2011, 11:36 pm FoxWolf1 Post #12



Yeah, but if you're going to use an enabling mod to allow EUD actions, you could just change the player's unit's weapons with those actions, Innovation Defense-style.

The thing with EUDs to get information about units, or modify information about units, when you don't know "in advance" that much about the unit, is that EUDs apply to a unit not based on where it is on the map, but where it is in Starcraft itself
program-ly (rather than geographically). If the units are not preplaced or created in a completely predictable order (which they won't be, since they can die or be caused to spawn at different times in virtually any RPG design), you don't know where in SC's memory you want your EUDs to look or change for them to apply to that particular unit. If the units are pre-placed, and there are relatively few of them, then you can track them with locations to preserve the information of which unit on the map corresponds to which unit in the memory: so, for instance, if an EUD detects that the HP for a particular unit in memory is X, and units are supposed to explode with some sounds (or something) when their HP is that amount, the location that has been tracking that unit since the beginning can then tell the triggers, "Okay, the one the EUD condition detected is this one." Likewise, for an action, you need a way of knowing that this one in the memory is the one that has just triggered the non-EUD condition (such as being close to the player) that causes the EUD action to execute.

Either way, we are talking about a major limitation on your map's design...




None.

Jul 27 2011, 12:24 am TiKels Post #13



Quote
the location that has been tracking that unit since the beginning can then tell the triggers, "Okay, the one the EUD condition detected is this one."
Or the eud can just detect when the unit loses the HP. You still have not really said why the location is necessary. What does the location exactly do? I think the idea is to predictably spawn and record units, not just spam units and say "the system won't work for this, see?" That was the analogy I made with crash rpg.

Quote
Likewise, for an action, you need a way of knowing that this one in the memory is the one that has just triggered the non-EUD condition (such as being close to the player) that causes the EUD action to execute.
How would having a location around a unit let you know it's a certain one in the code? I was really only thinking about the armor/health/etc changes rather than poisons or hexing or whatever.

I think this is a cool idea but it's not quite... useful enough for what you'd be required to do. Honestly you'd just be better off changing DAMAGE values (or upgrades) rather than health ;o with eud actions. The only advantage this applies over that is that it'd work better with multiple units controlled by the original player in some cases.



"If a topic that clearly interest noone needs to be closed to underline the "we don't want this here" message, is up to debate."

-NudeRaider

Jul 27 2011, 12:41 am Roy Post #14

An artist's depiction of an Extended Unit Death

Quote from TiKels
Or the eud can just detect when the unit loses the HP. You still have not really said why the location is necessary.
How do you find the unit when it loses HP? You can't center a location on a unit without some form of reference such as a location always following the unit (unless you're using EUD actions, where you can get the unit's coordinates and move a location so it matches). If this unit is not unique, there is no way to do a unique action on this unit when it loses HP.

Quote from TiKels
How would having a location around a unit let you know it's a certain one in the code?
By keeping track of a specific unit from the beginning of the game, you know its EUD address and you have a location that is specific to the unit. When the EUD address is affected in some way, you know that the unit affected is under a specific location, since you've kept track of it for the duration of the map. For example, if Unit X had a location L following it, then when Unit X's health changes, you know that Unit X can be found using location L.




Jul 27 2011, 2:45 am Sacrieur Post #15

Still Napping

Quote from Roy
Quote from TiKels
Or the eud can just detect when the unit loses the HP. You still have not really said why the location is necessary.
How do you find the unit when it loses HP? You can't center a location on a unit without some form of reference such as a location always following the unit (unless you're using EUD actions, where you can get the unit's coordinates and move a location so it matches). If this unit is not unique, there is no way to do a unique action on this unit when it loses HP.

Oh really?

Quote
By keeping track of a specific unit from the beginning of the game, you know its EUD address and you have a location that is specific to the unit. When the EUD address is affected in some way, you know that the unit affected is under a specific location, since you've kept track of it for the duration of the map. For example, if Unit X had a location L following it, then when Unit X's health changes, you know that Unit X can be found using location L.

We can't simply create the unit on the spot, track it with LID, and then change its memory addresses? I doubt there will be more than one hundred LIDs in use at once. Emmm..

Quote from Fox
The thing with EUDs to get information about units, or modify information about units, when you don't know "in advance" that much about the unit, is that EUDs apply to a unit not based on where it is on the map, but where it is in Starcraft itself
program-ly (rather than geographically). If the units are not preplaced or created in a completely predictable order (which they won't be, since they can die or be caused to spawn at different times in virtually any RPG design), you don't know where in SC's memory you want your EUDs to look or change for them to apply to that particular unit. If the units are pre-placed, and there are relatively few of them, then you can track them with locations to preserve the information of which unit on the map corresponds to which unit in the memory: so, for instance, if an EUD detects that the HP for a particular unit in memory is X, and units are supposed to explode with some sounds (or something) when their HP is that amount, the location that has been tracking that unit since the beginning can then tell the triggers, "Okay, the one the EUD condition detected is this one." Likewise, for an action, you need a way of knowing that this one in the memory is the one that has just triggered the non-EUD condition (such as being close to the player) that causes the EUD action to execute.

So I can't have a general EUD command saying, "increase HP for all X unit at location Y by 10 points"? Not expecting this to be easy to accomplish, just wondering if it were possible or even undetermined.

Post has been edited 1 time(s), last time on Jul 27 2011, 2:53 am by Sacrieur.



None.

Jul 27 2011, 3:52 am Roy Post #16

An artist's depiction of an Extended Unit Death

Quote from Sacrieur
Quote from Roy
Quote from TiKels
Or the eud can just detect when the unit loses the HP. You still have not really said why the location is necessary.
How do you find the unit when it loses HP? You can't center a location on a unit without some form of reference such as a location always following the unit (unless you're using EUD actions, where you can get the unit's coordinates and move a location so it matches). If this unit is not unique, there is no way to do a unique action on this unit when it loses HP.

Oh really?
Yes really. In that thread, you are uniquely identifying a unit by locking a location on it, as I referenced in my second sentence. Perhaps my wording was a bit off when I was saying a unit is not unique; I wasn't referring to the unit type.

Quote from Sacrieur
We can't simply create the unit on the spot, track it with LID, and then change its memory addresses? I doubt there will be more than one hundred LIDs in use at once. Emmm..
Good luck finding the unit in memory. Unless it is created in a predictable pattern (i.e. no unit construction between the beginning of the game and when you create the unit), it's near impossible to obtain a unit's ID mid-game. A much better an easier solution would be to have a preplaced unit isolated somewhere until you wanted to use it.

Quote from Sacrieur
So I can't have a general EUD command saying, "increase HP for all X unit at location Y by 10 points"? Not expecting this to be easy to accomplish, just wondering if it were possible or even undetermined.
It's possible in a brute-force sense. You would have to check if the unit is in location Y (verifying it is the same unit by the following location or other identification; essentially you would check if unit X was in both location Y and location Z, where Z is the location following the unit). Then you create this trigger for each unit on which you want to apply this.




Jul 27 2011, 5:26 am poison_us Post #17

Back* from the grave

Quote from Sacrieur
Quote from poison_us
Quote from name:Dem0nS1ayer
I don't see how the armor thing would work. What if, let's say, the hp of the player's unit is 200/3000 at level 1. He gets attacked an enemy and then has 180/3000. What if he finds armor and equips it at that hp instead of the full 100% for that level? You can't really increase their hp accordingly without basically healing them back to 100%.
Make them return to town to equip armor. They've got to have a place to unload other gear, else you'd potentially give your enemies a nice piece of armor, right?

As mentioned by Tikels, editing HP isn't really all that hard with EUDs. But donning armor should take some time, so you may see the appeal of donning armor outside of battle.
That's not what I read...I read that Dem0n was worried that a player donning equipment with low health would see themselves heal unnaturally high, like a knight with severe injuries replacing his plate mail with chain mail and suddenly being able to take thousands of arrows to the chest, where one would've killed him before*. What I was saying is that EUD actions could be completely avoided by making you require to head to town, instead of detecting your current hp, armor, and then modifying your hp to reflect the new armor + pre-existing damage.

*





Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[01:05 am]
Vrael -- I won't stand for people going around saying things like im not a total madman
[01:05 am]
Vrael -- that's better
[12:39 am]
NudeRaider -- can confirm, Vrael is a total madman
[10:18 pm]
Vrael -- who says I'm not a total madman?
[2024-5-03. : 2:26 pm]
UndeadStar -- Vrael, since the ad messages get removed, you look like a total madman for someone that come late
[2024-5-02. : 1:19 pm]
Vrael -- IM GONNA MANUFACTURE SOME SPORTBALL EQUIPMENT WHERE THE SUN DONT SHINE BOY
[2024-5-02. : 1:35 am]
Ultraviolet -- Vrael
Vrael shouted: NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
Gonna put deez sportballs in your mouth
[2024-5-01. : 1:24 pm]
Vrael -- NEED SOME SPORTBALL> WE GOT YOUR SPORTBALL EQUIPMENT MANUFACTURING
[2024-4-30. : 5:08 pm]
Oh_Man -- https://youtu.be/lGxUOgfmUCQ
[2024-4-30. : 7:43 am]
NudeRaider -- Vrael
Vrael shouted: if you're gonna link that shit at least link some quality shit: https://www.youtube.com/watch?v=uUV3KvnvT-w
Yeah I'm not a big fan of Westernhagen either, Fanta vier much better! But they didn't drop the lyrics that fit the situation. Farty: Ich bin wieder hier; nobody: in meinem Revier; Me: war nie wirklich weg
Please log in to shout.


Members Online: Ultraviolet