Ambrosia Garden Archive
    • Movement in combat


      It's come to my attention that coldstone was origionally planned to use turn-based combat. Then, it was switched to real-time. I can't really tell which I'd rather use at a few certain points of significance, but most of the time I love Coldstone's battle system just how it is. However, when you're in some special duel, it just doesn't seem as exiting when your opponent just rushes at you and swings a weapon over and over again.

      Instead, it would be nice to have a few enemies that moved around a spesific path or pattern, and did certain attacks on a sort of script. Such as, a guard that walks north on a castle wall to a certain point, then turns around and goes south, but if he sees a player, he would run to the player and attack.

      Or, a 'boss' enemy that would move to the player, attack, step back, cast some big spell that damages all allies, then move farther back and summon some allies to it's side, then repeat the process.

      Or, a normal enemy that will walk around randomly with somewhat of an inclination to walk twords the player (but not chase him/her outright) and will attack once if it comes close enough twords the player, then spend a few seconds moving around again.

      Looking back on games like the seiken densetsu series, terranigma, and other games that used real-time combat, these are the kinds of things that you would see in battles.

      ------------------

    • you may be able to do many of these things with npc control. For instance, for your guard idea, you could have 2 NPCs, both are on the "try to reach specific cell" command. On "target reached", create an event that deletes him and replaces him with another NPC that looks the same, but has to go to a different map cell, or the one that the other NPC started on. Follow me? If you make him hostile and give him a line of sight of say, 7, I am pretty sure he will attack the player if he gets into 7 movement tiles of the NPC. As for your boss, you could do many of these thing by re-creating the npc, however, the question of health comes along, but if you are flexible, you can work around this. For instance, have him attack the player, and at a certain time, move the NPC to a far-off location where the p(layer cant see or reach him (I think you can do this...) and create a passive NPC that goes to a specific cell, at target reached, make a snazzy looking spell and create a couple o mini-hims, have him stay there until you kill all the mini-hims, then remove him and move the hostile one back in the same place. Now i havent researched and some of this stuff might not work so dont get too excited. Hope I helped. Peace out.

      ------------------
      I'm not laughing at you,
      I'm laughing with you in
      mind

    • Sorry for posting another one but I couldn't fit it in with an edit (or at least I was too lazy). Instead of moving the boss NPC away and replacing him with a passive one, you could make the boss NPC have only a small amount of health, but when he dies, replace as needed, do what i said above with the summoning, and once all the creatures are dead, create a new one instead of moving him back. If you wanted to get even more complicated, you could make the monster (the summoning one) be a hostile NPC with a line of sight of 0, and if the player kills him before he reaches his spot, you interrupt his summoning and he just replaces with the attacking one. Oh, and have an event that, if he dies a certain amount of times, (depending on how much health and damage you give him) you win the battle, so it's almost like you wore him down and killed him.

      ------------------
      I'm not laughing at you,
      I'm laughing with you in
      mind

    • No, no, no....

      these are good suggestions, but in response to a poorly worded idea.

      My intention is to have the curent "run at 'em, and bash!" battle system replaced with something a little bit more elaborateĀ—as coldstone isn't nearly up to speed with most games in that respect.

      Well, so much for examples....

      Preferably, here would be some options in determining an NPC's battle behavior, seen in a dialogue box that would replace the batlte scripts list.

      =====================================

      -Passive/agressive
      choice between the two. If passive, then everything below would be grayed out.

      -Agression%
      a percentage value; the chance of the NPC running at the player for a single swing, after which it would contiue walking around without attacking. This would be calculated every time a character enters an NPC's line of sight.

      -----------------------------------------------------------

      -Atack movement speed
      walking speed changed to this when it is attacking

      -Run at HP%
      self explanitory, run away from player when the HP reaches that value. non-fighters caught in the battle would probably have this set at 99 or 100. This would be calculated every time the NPC would attack.

      -Block%
      also self explanitory, the NPC's chance of blocking when attacked. This would be calculated every time the NPC is attacked.

      -----------------------------------------------------------

      -Melee/ranged/combo
      a selection between the three. If melee, then all range options would be grayed out.

      -Range distance
      If I remember right (I havent used coldstone since before I entered that 4-month depression) there was a script that uses both ranged attacks and melee. This would be the distance at which it used ranged weapons.

      -Range%
      The chance of using a ranged weapon instead of standing passively or continuing to move twords the player (this would be used to reduce the amount of incoming projectiles.) This would be calculated every time an NPC would make a ranged attack.

      -----------------------------------------------------------

      -Player%
      This would be the percent chance of attacking the player instead of the nearest ally. In a large battle with allies and enemies, this would be used to allow the player 'sneak in' to an area without having to worry too much about the enemies, or to make them 'single out' the player. This would be calculated every time the player enters an NPC's line of sight.

      -Magic%
      This would be the percent chance of an NPC using a magic ability. This would be used to preserve a few of an NPC's spells for later in the battle, rather than using every thing up ASAP. This would be calculated every time an NPC intends to use a spell.

      -Magic Delay
      This would be the amout of time that an NPC takes to cast a spell. This would be used to make a mage that would be extremely powerful in battle, if it can be protected for long enough to cast a spell. Or, to have a 'spell' be some instant ability that works as soon as it is used.

      -Time until magic
      This would be the time between magic spells used in battle. This would be used to have an uber-wizard that rapidly casts some significant spell, a back-row magic user that hurls large fireballs at the enemy every few miniutes, or to make some fighter-mage who only uses magic once every ten seconds or so. (which would be good for significant boss-enemies)

      =====================================

      Basically, this would be a built-in script editor. Though I'm assuming that Beenox intended to add something anyway, they may not have the time to do so. However, it is my opinion that a battle system script editor would be a very worthy use of their time spent on adding stuff to Coldstone.

      ------------------

      (This message has been edited by Sage Aro (edited 08-20-2002).)

    • Or, I'd like to add that there should be some sort of movement path for some of the more significant enemies. This would work kind of like an applescript or basic, and have an NPC follow a list of instructions in order. Such as:

      <NOT ATTACKING>
      1 Move to X: 58, Y: 12
      2 Move to X: 58, Y: 28
      3 Move to X: 58, Y: 20
      4 GO TO 1

      <ATTACKING>
      1 Move to X: 58, Y: 12
      2 Move to X: 58, Y: 28
      3 Move to X: 58, Y: 20
      4 Normal attack
      5 Move to X: 58, Y: 12
      6 Move to X: 58, Y: 28
      7 Move to X: 58, Y: 20
      8 Use Magic spell: fireball
      9 Add 1 to gb_global
      10 If gb_global <3, then GO TO 1
      11 Switch animation to "boss monster inside shell"
      12 block all attacks
      13 Wait for 10 seconds
      14 Set gb_global at 0
      15 Switch animation to "boss monster normal"
      16 GO TO 1

      ------------------

      (This message has been edited by Sage Aro (edited 08-20-2002).)

    • Quote

      Originally posted by Sage Aro:
      **
      -Passive/agressive
      choice between the two. If passive, then everything below would be grayed out.
      **

      -----------------------------------------------------------------------------------------------------------------

      To make an NPC passive, just set it's health to 0.

      -----------------------------------------------------------------------------------------------------------------
      -Agression%
      a percentage value; the chance of the NPC running at the player for a single swing, after which it would contiue walking around without attacking. This would be calculated every time a character enters an NPC's line of sight.
      -----------------------------------------------------------------------------------------------------------------

      You can't exaclty make him walk around again, but changing his attack delay would make him attack slower or faster.

      -----------------------------------------------------------------------------------------------------------------
      -Atack movement speed
      walking speed changed to this when it is attacking
      -----------------------------------------------------------------------------------------------------------------

      A clunky solution to this would be to put an event in the "target proximity" section that would replace the npc with a faster one when in the line of sight.

      -----------------------------------------------------------------------------------------------------------------
      -Run at HP%
      self explanitory, run away from player when the HP reaches that value. non-fighters caught in the battle would probably have this set at 99 or 100. This would be calculated every time the NPC would attack.
      -----------------------------------------------------------------------------------------------------------------

      This is done with the "morale" section, wichh, when the npc recieves a set amount of damage, he will flee.

      -----------------------------------------------------------------------------------------------------------------
      -Block%
      also self explanitory, the NPC's chance of blocking when attacked. This would be calculated every time the NPC is attacked.
      -----------------------------------------------------------------------------------------------------------------

      An NPC's dexterity gives it a chance to dodge an attack, not necessarily block, but dodging is pretty much a sufficient substitute.

      -----------------------------------------------------------------------------------------------------------------
      -Range distance
      If I remember right (I havent used coldstone since before I entered that 4-month depression) there was a script that uses both ranged attacks and melee. This would be the distance at which it used ranged weapons.
      -----------------------------------------------------------------------------------------------------------------

      this could be done by making a weapon that the NPC uses, and have it use a specific range, this would make the NPC attack at that range (if I understood correctly)

      -----------------------------------------------------------------------------------------------------------------
      -Magic Delay
      This would be the amout of time that an NPC takes to cast a spell. This would be used to make a mage that would be extremely powerful in battle, if it can be protected for long enough to cast a spell. Or, to have a 'spell' be some instant ability that works as soon as it is used.
      -----------------------------------------------------------------------------------------------------------------

      well, I haven't had experience using NPCs that cast spells, but I'm guessing that the attack delay would make him wait to cast a spell, if you wanted, you could do something like:
      1st NPC: has the supershield (fake) spell. at use, make the spell change to a different NPC.
      2nd NPC: upon creating the 2nd NPC, use the spell wizard to cast supershield (the real one) on him, and he attacks with fireballs.
      3rd NPC: At the removal of the spell, this NPC would be vulnerable, make him cast a dummy spell that uses up all of his mana, (it's just a timer), that lasts for as long as you want him to be vulnerable. He can do melle attacks or cast more fireballs.
      1st NPC: when the dummy spell wears out (move NPC #3 to a different cell, or use the alternate method, this one contains the NPCs real health), it all starts over till he's dead

      now this is all speculation, because I have never used NPCs with spells.

      -----------------------------------------------------------------------------------------------------------------
      -Time until magic
      This would be the time between magic spells used in battle. This would be used to have an uber-wizard that rapidly casts some significant spell, a back-row magic user that hurls large fireballs at the enemy every few miniutes, or to make some fighter-mage who only uses magic once every ten seconds or so. (which would be good for significant boss-enemies)
      -----------------------------------------------------------------------------------------------------------------

      Use the attack delay, and instead of spells, make him use a ranged weapon that has the fireball graphic. ( I say use a weapon, again, because I have never used the NPC with spells, so you may be able to use spells, but I'm just being safe)

      -----------------------------------------------------------------------------------------------------------------

      As for your code, many people love coldstone, because they can create games, without using code or script. Now I can use code and I know BASICs, but I'm just the kind of person who would rather use coldstone than type away with some script. Although, It's not a bad Idea for people who can use script, actually now that I think about it I would use it, but my point still stands.

      Also, It seems many of these things are for your game alone, for instance, i would really never use the agression percent in my game, but hey, I'm just speaking for myself.

      I meant none of this offensiveley in any way, just trying to help.

      ------------------
      I'm not laughing at you,
      I'm laughing with you in
      mind

    • I actually like Sage Aro's monster AI scripting thing. I don't want my monsters to rush up and bash my hero either. Also, if you set an NPC's Agression% to zero, you can have a townperson that can be killed, if you wanted to be evil for a change ;), or wanted an invasion scenerio where the player had to defend people from an invading army. You can also build parties by creating allies that follow the player.

      And about the NPC movement scripting; it doesn't have to be like code. You can just have a kind of scripting thing that would look like, I imagin, the animation window that lists all the images. There's be two sets, one for attacking and one for not attacking. You'd have one of those "+" buttons that you'd click and it would ask for what kind of action you want ("Move to X <BLANK>, Y <BLANK>," Event <Set event here>," and "Action (Set the NPC to do an action like Attack, Block, or Cast Spell, and set the spell you want, though this could be done with a spell wizard in Event)." This would essencially be like the flags in the animation editor. You'd also mark an action and set a flag below that to loop to the marked action.

      ------------------
      Someone give me a funny signature! PLEASE!