So, formations and more intelligent enemy AI are done. You get bonuses depending on how many allies are nearby and where they are. You also get penalties if you're surrounded by enemies. Haven't implemented AoO yet, but that'll come later.
For now, I'm working on Skills and Magic. I differentiate the two in that skills are abilities that are used with weapons, and are things that any character can get with enough training. Magic, on the other hand, can only be learned either through levelling (and selecting new spells at times), or through in-game methods such as reading the right book/scroll for the right character. For now, I'll be focusing on Skills.
Because weapons don't use the built-in formulas (or anything else for that matter except for equip slots, cost, names, and descriptions) I've been able to do a whole lot more with them. Each weapon falls under a specific category. A bardiche would fall under axes, a dirk would fall under daggers, and so on an so forth. As any character can use any weapon, it's possible for any hero to become proficient with whatever weapon he wants. Kay Berec the warlock specializing in greatswords? No problem. Jaina Fleetfingers the thief/assassin using only whips (kinky...)? Sure thing.
Now, some characters will naturally start with higher level skills in certain weapon types than others. Belor the barbarian will naturally have a higher unarmed skill than feeble and frail little Kay. Jaina and Gayla will both have higher light weapons skills (daggers, swords, throwing weapons) than Tira who specializes more in heavy weapons. They can, however, switch weapons and build experience in those. For each attack, successful or not, made with a weapon, a certain number of points go towards building that weapon skill's level. At certain levels, new skills will be unlocked. A low-level throwing weapon skill, for example, would allow a character to hurl throwing knives at an opponent. Higher levels would allow for farther throws or throws at multiple opponents. A high greatsword level could allow you to target all the enemies around you, or maybe deliver a single crushing blow at the cost of all your AP.
In addition, higher skill levels with weapons will also increase the to-hit and at really high levels, the damage done with weapons. That part will be easy to code. For now though, I'm building up a set of different skills for all the different weapon types. I plan on using the built-in attacks to keep track of all the skills along with their descriptions. I won't, however, be using the target/aiming settings, the damage settings, the cost, etc... Those will be handled by a script that takes care of all the different data types each attack can potentially have.
Well, that's enough for now, cheers!
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
Combat Update
It's been quite a while, but I am not, nor is Legacy, dead. Here are the updates:
Well, enough of that.
tl/dr, here's a video of people fighting:
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
It's been quite a while, but I am not, nor is Legacy, dead. Here are the updates:
- All attacks do damage appropriately and combatants reduced to below 0 HP are removed from combat. There are no resurrections here folks, a combatant that gets knocked out stays out of combat. They'll be back with 1 HP after battle though, but once out, they stay out for the duration of the current battle.
- All 180 or so of the basic, non-magical weapons have been created. They have their own critical chances, weights, damage ratings, etc... Some weapons will have low damage, but high critical chances and multipliers making them good for high AGL characters (AGL influences critical chance). Other weapons do massive damage (greatswords and the sort) but have low critical chance Still, they do enough damage to make up for the low critical chance and when they do hit, they hit for a whole lot more damage.
- Weapons have been divided into different classes and weights. As a character uses a weapon, they get more skill points in it. The higher the skill points, the more abilities they'll be able to use with that weapon class. The game also keeps track of what type of weapons the characters prefer: light, medium, or heavy. Depending on your preference, as you gain experience, you can unlock different skills. For example, if you favor swords, you'll eventually get a skill that allows you to do triple damage with a single strike. Stick with it long enough, and you're guaranteed to get it. On the other hand, if you stick to light swords, you might eventually get a rapid attack that allows you to do multiple attacks in a single round. If you prefer heavy swords though, you can get a beheading skill that allows you to potentially insta-kill. Same goes for other weapons.
- Attacks of opportunity work now. They work differently from d20 though, and are much more simple. If you start off in a threatened square (one adjacent to an enemy) and then move out of the square into a non-threatened square, that enemy gets an attack of opportunity against you. If, however, you move from a threatened square into another square threatened by that character, he doesn't get an AoO against you because you're still paying attention to him, so-to-speak.
- Magic is in the works. Spells have been designed for most of the characters (6 out of the 9 main characters) and a huge spreadsheet has been made for all the different attacks. That spreadsheet then creates a script that I import to store all the spell data (not using the built-in attacks). Once I've got the math and the code working for casting the spells, it'll be on to animating them. Fun times.
Well, enough of that.
tl/dr, here's a video of people fighting:
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
Looks much better than the system you originally had in the game.
On those action bars, I get that green symbolizes the action points the character has left for that turn, but what's red and blue? HP and MP I'm assuming?
I think this is really polished looking, and should make the game more interesting. My only concern is that your video is almost five minutes long, and if every battle is that long, you're gonna have a problem with keeping player interest intact. I hope you have only handfuls of battles instead one in every corridor and around every corner like you did in the last version. If it takes five hours to get through the first level, it's too long.
Not sure if it's actually balanced that way, but be wise about how and when you distribute your battles. It also might not hurt to give players the Deus Ex option, where you can also sneak away from guards (or take alternate routes around them), or use something in the environment to trap them and defeat them. That would actually make it more fun.
Place Obligatory Signature Here
On those action bars, I get that green symbolizes the action points the character has left for that turn, but what's red and blue? HP and MP I'm assuming?
I think this is really polished looking, and should make the game more interesting. My only concern is that your video is almost five minutes long, and if every battle is that long, you're gonna have a problem with keeping player interest intact. I hope you have only handfuls of battles instead one in every corridor and around every corner like you did in the last version. If it takes five hours to get through the first level, it's too long.
Not sure if it's actually balanced that way, but be wise about how and when you distribute your battles. It also might not hurt to give players the Deus Ex option, where you can also sneak away from guards (or take alternate routes around them), or use something in the environment to trap them and defeat them. That would actually make it more fun.
Place Obligatory Signature Here
Combat Update
Action Bars
Red is HP, blue is MP, and green is AP. Hmm, I suppose I should add some little icons beside the bars to make it more obvious what they represent. Expect that in the next update!
Combat Length
Yeah, I've realized that combat can get rather boring as it is now. That's why I plan to do some really extensive balancing to make sure that battles aren't too long. Also, skills and magic haven't been implemented yet, and I hope that those will make things more interesting.
Combat Facing
That's a very good point, they do look rather awkward right now where they don't face the person they're attacking. I'll fix that in the next update.
Hmm... I wonder if I could also set up some attack bonuses/penalties for facing...
Anywho, the main reason for this update: MAGIC!
So this took me ages to get right. First I started out trying to learn the math to draw arcs, that went over my head. Then upon the suggestion of community members, I went to parabolas. Again, figuring that out went over my head. In the end, I went with bezier curves, and that's what I've got in this video.
This only shows one of the spell projectile effects and one of the spell impact effects (path:Arc and effect:Burst respectively). Other projectile effects will include rays, simple caster-to-target projectiles without curves, and perhaps cones. Other impact effects will include explosions, expanding rings, sparkles, etc...
Well, that's it for now, I'll be back soon with more updates!
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
Action Bars
Red is HP, blue is MP, and green is AP. Hmm, I suppose I should add some little icons beside the bars to make it more obvious what they represent. Expect that in the next update!
Combat Length
Yeah, I've realized that combat can get rather boring as it is now. That's why I plan to do some really extensive balancing to make sure that battles aren't too long. Also, skills and magic haven't been implemented yet, and I hope that those will make things more interesting.
Combat Facing
That's a very good point, they do look rather awkward right now where they don't face the person they're attacking. I'll fix that in the next update.
Hmm... I wonder if I could also set up some attack bonuses/penalties for facing...
Anywho, the main reason for this update: MAGIC!
So this took me ages to get right. First I started out trying to learn the math to draw arcs, that went over my head. Then upon the suggestion of community members, I went to parabolas. Again, figuring that out went over my head. In the end, I went with bezier curves, and that's what I've got in this video.
This only shows one of the spell projectile effects and one of the spell impact effects (path:Arc and effect:Burst respectively). Other projectile effects will include rays, simple caster-to-target projectiles without curves, and perhaps cones. Other impact effects will include explosions, expanding rings, sparkles, etc...
Well, that's it for now, I'll be back soon with more updates!
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
Not arcs, not parabolas, no, Bezier curves! Haha. Actually, drawing ellipses is more complicated than it seems. To calculate a parabolic projectile path correctly you need to work in 3D space.
I wonder whether it wouldn't be better to have the projectile move a bit faster (to speed up combat) and I'm so sure it's a good idea to have the camera follow it. Very unusual. Motion sickness?
All these effects should be pretty.
I wonder whether it wouldn't be better to have the projectile move a bit faster (to speed up combat) and I'm so sure it's a good idea to have the camera follow it. Very unusual. Motion sickness?
All these effects should be pretty.
Combat Update
So rays and buffs work. I seem to have forgotten to include buffs in this video, heh.
Main new thing here are status effect icons. Little icons appear by a character's portrait when certain conditions are met. More than one party member nearby? You get a to-hit bonus (The green thingy). More than one enemy nearby? You get a to-hit penalty (The red thingy). Half health or low-health? A half/heart or a near-empty heart (Not quite visible, unfortunately. It shall be remedied though. And there are a whole bunch of other icons, and here they are below:
Each icon is 88 and can be used pretty much anywhere, not just combat. Hopefully, each of the above will be self-explanatory, though sadly, I admit that that's a long shot. For that reason, I'm going to include an in-game legend for these that the player can bring up during combat.
An extension of this is that I can use it for emotion effects (an exclamation mark to show surprise, bubbles to show drunkenness, etc...) by loading the appropriate one up and then parenting it to the appropriate walkabout slice.
Anyways, that's all for now, cheers!
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
So rays and buffs work. I seem to have forgotten to include buffs in this video, heh.
Main new thing here are status effect icons. Little icons appear by a character's portrait when certain conditions are met. More than one party member nearby? You get a to-hit bonus (The green thingy). More than one enemy nearby? You get a to-hit penalty (The red thingy). Half health or low-health? A half/heart or a near-empty heart (Not quite visible, unfortunately. It shall be remedied though. And there are a whole bunch of other icons, and here they are below:
Each icon is 88 and can be used pretty much anywhere, not just combat. Hopefully, each of the above will be self-explanatory, though sadly, I admit that that's a long shot. For that reason, I'm going to include an in-game legend for these that the player can bring up during combat.
An extension of this is that I can use it for emotion effects (an exclamation mark to show surprise, bubbles to show drunkenness, etc...) by loading the appropriate one up and then parenting it to the appropriate walkabout slice.
Anyways, that's all for now, cheers!
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
Harkar Sewers
Depending on who the player chooses to free in the beginning of the game, this is either the first or the second dungeon that the player will go through. Now imagine it populated by rats, slimes, and other creepy crawlies.
A lot of the areas are rather large in terms of floor area, this is to accommodate the large number of weak enemies that will be wandering about. It'll allow the tactics-combat thingy more room to manoeuvre in.
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
Depending on who the player chooses to free in the beginning of the game, this is either the first or the second dungeon that the player will go through. Now imagine it populated by rats, slimes, and other creepy crawlies.
A lot of the areas are rather large in terms of floor area, this is to accommodate the large number of weak enemies that will be wandering about. It'll allow the tactics-combat thingy more room to manoeuvre in.
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
Harkar Barracks Dungeons
Another map. Depending on player actions, this will either be the first dungeon they encounter, or a dungeon that they don't get to until a little after mid-game.
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
Another map. Depending on player actions, this will either be the first dungeon they encounter, or a dungeon that they don't get to until a little after mid-game.
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
BMR wrote:
So this took me ages to get right. First I started out trying to learn the math to draw arcs, that went over my head. Then upon the suggestion of community members, I went to parabolas. Again, figuring that out went over my head. In the end, I went with bezier curves, and that's what I've got in this video.
!
So this took me ages to get right. First I started out trying to learn the math to draw arcs, that went over my head. Then upon the suggestion of community members, I went to parabolas. Again, figuring that out went over my head. In the end, I went with bezier curves, and that's what I've got in this video.
!
Strangely enough I was doing some engineering homework a week ago and I happened upon Bezier Curves in a related wikipedia link. I was actually wondering if anyone used Bezier Curves in the community and was thinking of how it could be implemented in script for animation and such. If you wouldn't mind sharing I'd love to see how you scripted the Beziers curve.
⊕ P E R S O N A L M U S I C: https://open.spotify.com/album/6fEo3fCm5C3XhtFRflfANr
⍠ C O L L A B M U S I C: https://dustpuppets.bandcamp.com/releases
Sure thing, here you go:
That code snippet doesn't include all of the variable declarations and whatnot, as those are part of the script elsewhere. If you have any questions, don't hesitate to ask.
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
Code:
#Create the npc and prime the variables for the bezier curve
#...........................................................
nref := create npc(1, npc x(cref), npc y(cref))
nslc := get npc slice(nref)
pslc := load border sprite(pghc)
set parent(pslc, nslc)
dist := distance(bseX, bseY, tarX, tarY)
slice to front(nslc)
#...........................................................
camera follows npc(nref) #Have the camera follow the projectile
for(ctr, 1, dist, 6) do(
t := ((ctr * 1000) / dist)
curX := ((1000 -- t)^2 * bseX + 2*(1000 -- t) * t * bezX + t^2 * tarX) / 1000000 #\This sets the coordinates for each step based
curY := ((1000 -- t)^2 * bseY + 2*(1000 -- t) * t * bezY + t^2 * tarY) / 1000000 #/on the formula for bezier curves
put npc(nref, curX, curY) #Move the projectile npc to the calculated pixel coordinate
cfrm := get sprite frame(pslc) #\
if(cfrm >= 15) then(cfrm := 0) else(cfrm += 1) # >Make the projectile animate
set sprite frame(pslc, cfrm) #/
wait(1)
)
#Create the npc and prime the variables for the bezier curve
#...........................................................
nref := create npc(1, npc x(cref), npc y(cref))
nslc := get npc slice(nref)
pslc := load border sprite(pghc)
set parent(pslc, nslc)
dist := distance(bseX, bseY, tarX, tarY)
slice to front(nslc)
#...........................................................
camera follows npc(nref) #Have the camera follow the projectile
for(ctr, 1, dist, 6) do(
t := ((ctr * 1000) / dist)
curX := ((1000 -- t)^2 * bseX + 2*(1000 -- t) * t * bezX + t^2 * tarX) / 1000000 #\This sets the coordinates for each step based
curY := ((1000 -- t)^2 * bseY + 2*(1000 -- t) * t * bezY + t^2 * tarY) / 1000000 #/on the formula for bezier curves
put npc(nref, curX, curY) #Move the projectile npc to the calculated pixel coordinate
cfrm := get sprite frame(pslc) #\
if(cfrm >= 15) then(cfrm := 0) else(cfrm += 1) # >Make the projectile animate
set sprite frame(pslc, cfrm) #/
wait(1)
)
That code snippet doesn't include all of the variable declarations and whatnot, as those are part of the script elsewhere. If you have any questions, don't hesitate to ask.
Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl
BMR wrote:
Sure thing, here you go:
That code snippet doesn't include all of the variable declarations and whatnot, as those are part of the script elsewhere. If you have any questions, don't hesitate to ask.
Code:
#Create the npc and prime the variables for the bezier curve
#...........................................................
nref := create npc(1, npc x(cref), npc y(cref))
nslc := get npc slice(nref)
pslc := load border sprite(pghc)
set parent(pslc, nslc)
dist := distance(bseX, bseY, tarX, tarY)
slice to front(nslc)
#...........................................................
camera follows npc(nref) #Have the camera follow the projectile
for(ctr, 1, dist, 6) do(
t := ((ctr * 1000) / dist)
curX := ((1000 -- t)^2 * bseX + 2*(1000 -- t) * t * bezX + t^2 * tarX) / 1000000 #\This sets the coordinates for each step based
curY := ((1000 -- t)^2 * bseY + 2*(1000 -- t) * t * bezY + t^2 * tarY) / 1000000 #/on the formula for bezier curves
put npc(nref, curX, curY) #Move the projectile npc to the calculated pixel coordinate
cfrm := get sprite frame(pslc) #\
if(cfrm >= 15) then(cfrm := 0) else(cfrm += 1) # >Make the projectile animate
set sprite frame(pslc, cfrm) #/
wait(1)
)
#Create the npc and prime the variables for the bezier curve
#...........................................................
nref := create npc(1, npc x(cref), npc y(cref))
nslc := get npc slice(nref)
pslc := load border sprite(pghc)
set parent(pslc, nslc)
dist := distance(bseX, bseY, tarX, tarY)
slice to front(nslc)
#...........................................................
camera follows npc(nref) #Have the camera follow the projectile
for(ctr, 1, dist, 6) do(
t := ((ctr * 1000) / dist)
curX := ((1000 -- t)^2 * bseX + 2*(1000 -- t) * t * bezX + t^2 * tarX) / 1000000 #\This sets the coordinates for each step based
curY := ((1000 -- t)^2 * bseY + 2*(1000 -- t) * t * bezY + t^2 * tarY) / 1000000 #/on the formula for bezier curves
put npc(nref, curX, curY) #Move the projectile npc to the calculated pixel coordinate
cfrm := get sprite frame(pslc) #\
if(cfrm >= 15) then(cfrm := 0) else(cfrm += 1) # >Make the projectile animate
set sprite frame(pslc, cfrm) #/
wait(1)
)
That code snippet doesn't include all of the variable declarations and whatnot, as those are part of the script elsewhere. If you have any questions, don't hesitate to ask.
That's great. Makes sense to me. Kind of wish I had more time to play around with this stuff. I'll bookmark it for later though.
⊕ P E R S O N A L M U S I C: https://open.spotify.com/album/6fEo3fCm5C3XhtFRflfANr
⍠ C O L L A B M U S I C: https://dustpuppets.bandcamp.com/releases



