So, I wanted to see if I could replicate the experience orb system of Fable / Fable 2, and for about 20-45 minutes of work, I think I've come pretty close. Obviously there's some fine tuning to be done since the orbs currently only add health, but these are minor changes to the effect in the editor. :) Thought I'd throw up a short video since I think it's kind of cool.
I'm going to continue work on it to create larger orbs, as well as 2 other variations (3 total: general XP, spell/skills XP and melee/general attack XP) They should each have their own color, and will probably add points to a real array, to be spent later on skills/upgrades. :)
Updated Features:
3 types of Orbs: General, Attack and Spell, large and small
Orbs are generated based on type of attack which kills the unit; Melee/Ranged attacks generate red Orbs, Spells generate blue Orbs, and both generate green Orbs
Kills have a 1/6 chance of generating large Orbs
Experience is updated in real time, just above the UI.
Holding Spacebar draws the Orbs towards the unit
Entering within range of the Orbs automatically draws them towards you, for those hectic battles :)
See screenshots below and feel free to download and try the map! Feedback?
I'll post the map when I update... right now I'm making it a little more comprehensive... 6 different orbs, 2 sizes, one for spell experience, one for regular attack experience and one for general experience. And actually for that video, the triggers were extremely simplistic... there was only 3. lol
Trigger 1 handles if a unit dies, create the orb (making sure to have the condition that the dying unit must != orbs).
Trigger 2 handles the keypress down, issue order to orb move towards unit.
Trigger 3 handles the keypress up, issue order stop to orb.
Done. :) Of course there was a bit more Data Editing to make the orbs act like "powerups" but it was all very simple... I just attached the Life +25 powerup effect to the orbs.
I'll post the map when I update... right now I'm making it a little more comprehensive... 6 different orbs, 2 sizes, one for spell experience, one for regular attack experience and one for general experience. And actually for that video, the triggers were extremely simplistic... there was only 3. lol
Trigger 1 handles if a unit dies, create the orb (making sure to have the condition that the dying unit must != orbs).
Trigger 2 handles the keypress down, issue order to orb move towards unit.
Trigger 3 handles the keypress up, issue order stop to orb.
Done. :) Of course there was a bit more Data Editing to make the orbs act like "powerups" but it was all very simple... I just attached the Life +25 powerup effect to the orbs.
Yeah thanks man, I'll credit you in the map if I can make use of it. :)
Hmm so is there a way to have the orbs gravitate to you when you get within range, without triggers? Or is triggers the proper way to do that? Did you make the orb model yourself?
The orbs are what programmer helped with. I duplicated the Sphere unit and changed it's scale and tint depending on what it does (ie: small and large amount of experience, green for general experience, blue for spell experience, red for attack experience).
And that's a brilliant idea, I don't know why I didn't think of it! I'm not sure if that would be possible in the Data Editor, but it seems easy enough in a trigger... if Hero Unit enters within 3.0 range of orb, issue order move towards Hero. Simple!
EDIT: I just created a trigger to do have the orbs gravitate towards the hero when you're within proximity, it looks like this:
Did you also add some kind of light to the model? Seems to illuminate the area around it a bit, kinda like the glass orbs that will be found in Diablo 3 http://www.diablowiki.net/Health_Globe
They are generated somewhat randomly. :) All kills grant experience at this point, as they would in any RPG... therefore all kills drop orbs. However each kill currently has a 1/6 chance of generating a large orb which adds double experience. This can be easily changed. I've also added the "within range" trigger.
Mm yes I know this I just feel it's better to do it === without triggers ===. Looks good :D btw do your things not make it to the center of your unit? Mine are picking up about 0.5 unit away from muh guy. Mm think I figured it out: it was the Auto Cast range on the linked Ability.
Oh sorry I must have skimmed your last post, I'm pretty certain it would be possible to generate Orbs randomly through the Data Editor, unfortunately that's beyond my skillset... check out OneTwo's YouTube page, he might have a tutorial for generating random item drops.
I've set my range to 0.5 to remove the orbs and apply the experience so no, they don't make it to the absolute center, but if you're having trouble with that try messing with the Orbs collision / movement radius.
Final question. Have you gotten it to pick up while following you while your unit is running? Mine seems to stop when he gets near the unit even though Deceleration is 0 and the top speed is much higher. It causes it to sometimes not catch up to the unit.
It would be great if they would accelerate towards you and not just move towards you in a linear motion. I think that can easily be changed in the data editor.
Hey... long time lurker... first time poster (i think)...
I saw this and had to chip in :)
I remember making something (more or less) identical to this in Warcraft 3... using dummy units and the Shadow Fragment model... Damn that was a long time a go... nice work on this, brings back some memories...
I agree with what Pfaeff says... they should accelerate towards you - instead of moving in a linear fashion - it is hard to tell though, the youtube video doesnt give a 100% true representation :)
I used something like MoveDistance = 1, then MoveDistance = MoveDistance + MoveDistance - so it accelerated pretty damn quick...
Hey, I was the guy that responded to your YouTube video. I'll attach my map and show you what I did.
I was goofing off in the editor (you'll see its not a very fun map to play ;) ) and tried to implement this system as smoothly as possible. At first I used triggers, but due to the number of units I had being killed I started to get threading errors. So I moved to a completely triggerless system (contrary to what I said in the YouTube comment, it's been a while since I played with the map)
In my system, there are two units (like yours). The Hero we'll call him, and the Loot. When my Hero kills an enemy, I use the Data editor's Loot function to spawn loot. Loot can spawn an item, unit, etc. In this case it spawns a unit. The percentages are handled with a Loot Set I believe it's called. If I recommend anything at all it's that you remove the spawn orbs triggers and adopt this loot function, that's basically what it's there for. So the dropped loot is fruit in my case and is a separate unit, like yours. It moves to the target, like yours. My fruit has an autocast spell that is guaranteed to cast on the Hero when it is in range. The Effect of this spell is an Issue Order effect that affects the Caster. So when the hero is in range, the fruit casts, and consequently orders itself to Move to the hero. There's probably an easier way to do this but I never looked into it (autocast Move?).
The second part of the system is when the hero "picks up" the fruit. The Hero has a hidden autocast command called pickUp with an autocast range of 0.5. The command is just a damage spell, the hero effectively "kills" the fruit and gets its Kill Resource. You could implement a trigger here to add attribute points or whatever.
In my map you'll notice that most fruit is automatically attracted to the hero... I think just due to the small space and amount of enemies, most enemies that die are within the autocast range. Play around with it, manually place fruit far away to test the ranges. I do like your implementation of the Spacebar attract method. You might be able to set up a validator through triggers that the autocast checks before it Moves toward the hero.
There's definitely room to expand on both of our implementations. You could add a finite life behavior (like the MULE) to the loot so that it expires after X seconds without being picked up.
Feel free to use anything you want, this is basically a learning map I made weeks ago. I've got no problem helping others who have the persistence to actually get their done (unlike myself ;) ) Let me know if you've got any questions I'll check up on this periodically. Good luck!
I wonder if you can tweak it so it can use different options for users to adjust to:
1) Orbs as a item - Unit interact directly to acquire (simply walk into it)
2) Orbs remotely taken - Unit comes within vicinity to acquire
3) Orbs are unit owned when created - Unit(s) that can acquire the orb from the start no matter the distance or interaction. This is a automated one.
Number 3 is where you can have a sniper kill things and the orbs will fly off to him automatically.
Orbs should be allowed to be set to give multiple options:
- Healths
- Shields
- Energy
- Custom (Ammo for guns, batteries/energy for machinery)
- Experience/Currency (It should be used a lot for currency, as it makes sense and works best in RPGs, just have the money flow out so anyone can grab them with option 1 orb type)
You can implement this into team play maps for having orbs be a unit's "resource"...
The unit can gather orbs by killing enemies, and it can pass on orbs to allies. A unit that dies drop all it's orbs.
This function can work in CTF maps, where the goal is to hoard as much orbs as possible, just make it possible for one team to steal another teams' orbs by interacting with the "point" too.
Orbs as experience could work in a cool map idea I just thought up:
Soul Wars - Players control heroes, of which on a map full of hostile mobs, must kill and gather "souls" to powerup... The catch is death reverts you to Lv1 and you drop all your souls at the area. It is PVP and PVE mixed in.
That looks great! When I get some spare time I'll revamp the system to be less trigger-dependent and do it all through Data Editing. I think that would make it a lot less prone to errors and weird glitches.
lol You've got a lot of great ideas here, next time I'm working on the system I'll try to implement these and re-release the map. Maybe I can create inactive functions that just need to be turned on in order for a user to modify the system. ie: an inactive "resources" function which, when turned on, gives resources instead of XP to whomever collects the Orbs (or health, or shields, or energy, etc etc).
Feel free to implement any of those ideas in your own maps though. I'd love to see it on Battle.net :)
So, I wanted to see if I could replicate the experience orb system of Fable / Fable 2, and for about 20-45 minutes of work, I think I've come pretty close. Obviously there's some fine tuning to be done since the orbs currently only add health, but these are minor changes to the effect in the editor. :) Thought I'd throw up a short video since I think it's kind of cool.
I'm going to continue work on it to create larger orbs, as well as 2 other variations (3 total: general XP, spell/skills XP and melee/general attack XP) They should each have their own color, and will probably add points to a real array, to be spent later on skills/upgrades. :)
Updated Features:
See screenshots below and feel free to download and try the map! Feedback?
@QMJ3: Go
I like how this looks, care to post the map? www.speedyshare.com I don't mind if its messay c0de
Look awesome, glad to help you with that.
@crutex: Go
I'll post the map when I update... right now I'm making it a little more comprehensive... 6 different orbs, 2 sizes, one for spell experience, one for regular attack experience and one for general experience. And actually for that video, the triggers were extremely simplistic... there was only 3. lol
Done. :) Of course there was a bit more Data Editing to make the orbs act like "powerups" but it was all very simple... I just attached the Life +25 powerup effect to the orbs.
@progammer: Go
Yeah thanks man, I'll credit you in the map if I can make use of it. :)
Hmm so is there a way to have the orbs gravitate to you when you get within range, without triggers? Or is triggers the proper way to do that? Did you make the orb model yourself?
@crutex: Go
The orbs are what programmer helped with. I duplicated the Sphere unit and changed it's scale and tint depending on what it does (ie: small and large amount of experience, green for general experience, blue for spell experience, red for attack experience).
And that's a brilliant idea, I don't know why I didn't think of it! I'm not sure if that would be possible in the Data Editor, but it seems easy enough in a trigger... if Hero Unit enters within 3.0 range of orb, issue order move towards Hero. Simple!
EDIT: I just created a trigger to do have the orbs gravitate towards the hero when you're within proximity, it looks like this:
@QMJ3: Go
Did you also add some kind of light to the model? Seems to illuminate the area around it a bit, kinda like the glass orbs that will be found in Diablo 3 http://www.diablowiki.net/Health_Globe
@crutex: Go
Nope, that's the sphere model in SC2. I'm using a white team color and changing the tint color of the 3 different types of orbs.
I feel like you could make the units drop them by a chance effect instead of trigger. I am too n00b to figure that out at this point.
@crutex: Go
They are generated somewhat randomly. :) All kills grant experience at this point, as they would in any RPG... therefore all kills drop orbs. However each kill currently has a 1/6 chance of generating a large orb which adds double experience. This can be easily changed. I've also added the "within range" trigger.
Check out the original post for updated video.
@QMJ3: Go
Mm yes I know this I just feel it's better to do it === without triggers ===. Looks good :D btw do your things not make it to the center of your unit? Mine are picking up about 0.5 unit away from muh guy. Mm think I figured it out: it was the Auto Cast range on the linked Ability.
@crutex: Go
Oh sorry I must have skimmed your last post, I'm pretty certain it would be possible to generate Orbs randomly through the Data Editor, unfortunately that's beyond my skillset... check out OneTwo's YouTube page, he might have a tutorial for generating random item drops.
I've set my range to 0.5 to remove the orbs and apply the experience so no, they don't make it to the absolute center, but if you're having trouble with that try messing with the Orbs collision / movement radius.
@QMJ3: Go
Final question. Have you gotten it to pick up while following you while your unit is running? Mine seems to stop when he gets near the unit even though Deceleration is 0 and the top speed is much higher. It causes it to sometimes not catch up to the unit.
@crutex: Go
Nope, I haven't had any issues with that... PM your map, I'll see if I can figure it out.
It would be great if they would accelerate towards you and not just move towards you in a linear motion. I think that can easily be changed in the data editor.
@QMJ3: Go
Oh I see, you are doing all the powerup effects with triggers. :( But thanks for sharing the concept and map :D
Hey... long time lurker... first time poster (i think)...
I saw this and had to chip in :)
I remember making something (more or less) identical to this in Warcraft 3... using dummy units and the Shadow Fragment model... Damn that was a long time a go... nice work on this, brings back some memories...
I agree with what Pfaeff says... they should accelerate towards you - instead of moving in a linear fashion - it is hard to tell though, the youtube video doesnt give a 100% true representation :)
I used something like MoveDistance = 1, then MoveDistance = MoveDistance + MoveDistance - so it accelerated pretty damn quick...
+respect
Hey, I was the guy that responded to your YouTube video. I'll attach my map and show you what I did.
I was goofing off in the editor (you'll see its not a very fun map to play ;) ) and tried to implement this system as smoothly as possible. At first I used triggers, but due to the number of units I had being killed I started to get threading errors. So I moved to a completely triggerless system (contrary to what I said in the YouTube comment, it's been a while since I played with the map)
In my system, there are two units (like yours). The Hero we'll call him, and the Loot. When my Hero kills an enemy, I use the Data editor's Loot function to spawn loot. Loot can spawn an item, unit, etc. In this case it spawns a unit. The percentages are handled with a Loot Set I believe it's called. If I recommend anything at all it's that you remove the spawn orbs triggers and adopt this loot function, that's basically what it's there for. So the dropped loot is fruit in my case and is a separate unit, like yours. It moves to the target, like yours. My fruit has an autocast spell that is guaranteed to cast on the Hero when it is in range. The Effect of this spell is an Issue Order effect that affects the Caster. So when the hero is in range, the fruit casts, and consequently orders itself to Move to the hero. There's probably an easier way to do this but I never looked into it (autocast Move?).
The second part of the system is when the hero "picks up" the fruit. The Hero has a hidden autocast command called pickUp with an autocast range of 0.5. The command is just a damage spell, the hero effectively "kills" the fruit and gets its Kill Resource. You could implement a trigger here to add attribute points or whatever.
In my map you'll notice that most fruit is automatically attracted to the hero... I think just due to the small space and amount of enemies, most enemies that die are within the autocast range. Play around with it, manually place fruit far away to test the ranges. I do like your implementation of the Spacebar attract method. You might be able to set up a validator through triggers that the autocast checks before it Moves toward the hero.
There's definitely room to expand on both of our implementations. You could add a finite life behavior (like the MULE) to the loot so that it expires after X seconds without being picked up.
Feel free to use anything you want, this is basically a learning map I made weeks ago. I've got no problem helping others who have the persistence to actually get their done (unlike myself ;) ) Let me know if you've got any questions I'll check up on this periodically. Good luck!
I wonder if you can tweak it so it can use different options for users to adjust to:
1) Orbs as a item - Unit interact directly to acquire (simply walk into it)
2) Orbs remotely taken - Unit comes within vicinity to acquire
3) Orbs are unit owned when created - Unit(s) that can acquire the orb from the start no matter the distance or interaction. This is a automated one.
Number 3 is where you can have a sniper kill things and the orbs will fly off to him automatically.
Orbs should be allowed to be set to give multiple options:
- Healths
- Shields
- Energy
- Custom (Ammo for guns, batteries/energy for machinery)
- Experience/Currency (It should be used a lot for currency, as it makes sense and works best in RPGs, just have the money flow out so anyone can grab them with option 1 orb type)
You can implement this into team play maps for having orbs be a unit's "resource"...
The unit can gather orbs by killing enemies, and it can pass on orbs to allies. A unit that dies drop all it's orbs.
This function can work in CTF maps, where the goal is to hoard as much orbs as possible, just make it possible for one team to steal another teams' orbs by interacting with the "point" too.
Orbs as experience could work in a cool map idea I just thought up:
Soul Wars - Players control heroes, of which on a map full of hostile mobs, must kill and gather "souls" to powerup... The catch is death reverts you to Lv1 and you drop all your souls at the area. It is PVP and PVE mixed in.
@t1du: Go
That looks great! When I get some spare time I'll revamp the system to be less trigger-dependent and do it all through Data Editing. I think that would make it a lot less prone to errors and weird glitches.
@dra6o0n: Go
lol You've got a lot of great ideas here, next time I'm working on the system I'll try to implement these and re-release the map. Maybe I can create inactive functions that just need to be turned on in order for a user to modify the system. ie: an inactive "resources" function which, when turned on, gives resources instead of XP to whomever collects the Orbs (or health, or shields, or energy, etc etc).
Feel free to implement any of those ideas in your own maps though. I'd love to see it on Battle.net :)