Author Topic: Boss scripting  (Read 13519 times)

Xeronkar

  • Posts: 102
  • Boss scripter
    • View Profile
Boss scripting
« on: August 22, 2013, 06:43:55 PM »
Hi everyone !
I'm actually working on some bosses. I already done one caster boss, with some skills like seeker, nova, summon...

In fact, i followed the maps open source by Linaru, but i think i'm missing something, because i'm trying to make another boss, a melee one, but there is any of this skills who work. I can't apply any skill.

Where can i found all the skills who can be added to a boss ?
Or anything about boss scripting ?

Thanks :)
(Yes, i've copyied/paste my post on Steam)
And sorry for my bad english :(

Psyborg

  • Posts: 23
  • Maggot Crusher.
    • View Profile
Re: Boss scripting
« Reply #1 on: August 22, 2013, 07:33:45 PM »
I know the knight has at least one melee atk but not sure how youd see his code.

Thanks for exploring boss programming though...Im going to need to learn it also for my campaign, my bosses are based off of another game and will need specific attacks.

Xeronkar

  • Posts: 102
  • Boss scripter
    • View Profile
Re: Boss scripting
« Reply #2 on: August 22, 2013, 07:40:50 PM »
Yes, but the bosses from the campaign are self typed (behavior="boss-knight"), so i can't type mine with this.

For example, i want a melee boss, with some skills from the boss-knight, and a nova (from a caster).

Maybe i'm missing something ><

KptnKook

  • Posts: 45
  • Immersive or DIE!!!!!
    • View Profile
Re: Boss scripting
« Reply #3 on: August 22, 2013, 07:55:59 PM »
that would be very interesting to know.. i need some few boss-behaviours for trolls etc.

greets.

Xeronkar

  • Posts: 102
  • Boss scripter
    • View Profile
Re: Boss scripting
« Reply #4 on: August 23, 2013, 03:04:25 AM »
I hope Linaru will come here to give us some answers  ;D

KptnKook

  • Posts: 45
  • Immersive or DIE!!!!!
    • View Profile
Re: Boss scripting
« Reply #5 on: August 23, 2013, 12:42:23 PM »
the boss script, which you can edit are in an .xml file with the same name as the character.png.
search for the boss_character.xml in the character folder i believe. there you can edit or delete their skills.

i'm now trying to edit the ground-strikewave of the boss_knight. i would love to edit the lenght of the aoe, but i don't see any editable line for it.

anyone has an idea?

Xeronkar

  • Posts: 102
  • Boss scripter
    • View Profile
Re: Boss scripting
« Reply #6 on: August 23, 2013, 02:34:39 PM »
Yes i already know that. But skills are binded to a type of boss i think. So you can't use a melee skill with a caster boss.

That's normal, but we don't have any list of all skills available for all type of bosses.
That's could be great.

Linaru

  • Moderator
  • Posts: 113
  • That Collectable coin is mine!
    • View Profile
Re: Boss scripting
« Reply #7 on: August 24, 2013, 11:51:04 AM »
i believe the ai is split into 3 at the moment, melee ranged and lich. only liches can use lich skills only meleers can use melee skills.

in theory a skeleton could use and of the boss knights boss skills but can use say the lich summon ability but there are some exceptions. the in which mobs handle ai and ability's is a bit restrictive at the moment,but i believe myran wants to play around and see if he can improve it in the distant future.

my recommendation for creating a custom melee boss is not to focus on skills his skills but to emulate them with scripts. you can play effects on the boss to indicate its about to perform some sort of ability and trigger mobs spawns, throw bombs or maybe some custom dodad work to make floors crumble away a section at a time forcing you closer to the boss.
-----------------------------------------------------------
Stabaddey Stabaddey Zap
-----------------------------------------------------------

Xeronkar

  • Posts: 102
  • Boss scripter
    • View Profile
Re: Boss scripting
« Reply #8 on: August 24, 2013, 01:48:43 PM »
"i believe the ai is split into 3 at the moment, melee ranged and lich"
lich ? caster, no ?
I already done a caster boss, but never tried a lich boss.

After some tests, a caster can use these skills : summon, blink, nova, seeker
But if i change in melee, the game crash.

So, i think skills are binded to a type. But we don't have the list of all skills available for a type :(

So, if we want a really great boss, we have to do it through scripts in game ?
erf :(

Linaru

  • Moderator
  • Posts: 113
  • That Collectable coin is mine!
    • View Profile
Re: Boss scripting
« Reply #9 on: August 24, 2013, 03:07:33 PM »
"i believe the ai is split into 3 at the moment, melee ranged and lich"
lich ? caster, no ?
I already done a caster boss, but never tried a lich boss.

After some tests, a caster can use these skills : summon, blink, nova, seeker
But if i change in melee, the game crash.

So, i think skills are binded to a type. But we don't have the list of all skills available for a type :(

So, if we want a really great boss, we have to do it through scripts in game ?
erf :(

Code: [Select]
<actor behavior="boss-knight">
Code: [Select]
<entry name="whirlwind-dmg"><int>16</int></entry>
<entry name="whirlwind-timer"><int>10000</int></entry>
<entry name="whirlwind-dur"><int>3500</int></entry>
<entry name="whirlwind-range"><float>2.5</float></entry>
<entry name="whirlwind-shard"><string>projectiles/boss_knight_shard.xml</string></entry>
<entry name="whirlwind-shard-spin"><int>32</int></entry>

<entry name="strike-timer"><int>5750</int></entry>
<entry name="strike-dmg"><int>25</int></entry>
<entry name="strike-effect"><string>effects/boss_knight_strike.xml:crack</string></entry>
<entry name="strike-sound"><string>sound/monsters.xml:boss_knight_strike</string></entry>


<entry name="death-snd"><string>sound/monsters.xml:death_boss_knight</string></entry>
<entry name="hit-effect"><string>effects/particles.xml:bone</string></entry>
<entry name="hit-particle"><string>effects/particles.xml:bone-particle</string></entry>
<entry name="corpse"><string>actors/boss_knight/boss_knight_razed.xml</string></entry>


meleer? just mess with the skill settings to make him unique
-----------------------------------------------------------
Stabaddey Stabaddey Zap
-----------------------------------------------------------

Xeronkar

  • Posts: 102
  • Boss scripter
    • View Profile
Re: Boss scripting
« Reply #10 on: August 24, 2013, 03:28:35 PM »
So, we can create any type of boss ?

I'll try it and give my observations.

Another question, are you a member of the dev team of Hammerwatch, Linaru ?
You seem to know a lot of think on this game.

Linaru

  • Moderator
  • Posts: 113
  • That Collectable coin is mine!
    • View Profile
Re: Boss scripting
« Reply #11 on: August 25, 2013, 06:34:45 AM »
So, we can create any type of boss ?

I'll try it and give my observations.

Another question, are you a member of the dev team of Hammerwatch, Linaru ?
You seem to know a lot of think on this game.

no i have just been playing since beta v.03 =3
-----------------------------------------------------------
Stabaddey Stabaddey Zap
-----------------------------------------------------------

Xeronkar

  • Posts: 102
  • Boss scripter
    • View Profile
Re: Boss scripting
« Reply #12 on: August 25, 2013, 01:15:31 PM »
So, i tried to create my own boss with my own behavior.

But now, the boss doesn't move, doesn't attack, and die with one single hit ><

If skills aren't compatible with the behavior, i think it cause some problems.

I really want lot of skills, and setting them through the editor is really tedious and annoying...
I'm searching in the assets if i can find a table, with all behaviors or all skills. So i could edit this table and add my own skills.

If someone have this... =3

prophet

  • Posts: 21
  • Invader
    • View Profile
    • My Steam Workshop
Re: Boss scripting
« Reply #13 on: November 15, 2014, 06:14:42 AM »
Hello!

Bosses are hardcoded in the engine, so there is no reason to use any bosses in the game if not to use one of their attacks (if I remember well enough, Act 2's boss_knight's strike and Act 3's boss_lich's tele-strike). Everything else can be recreated with either scripts or composites.

  • First set the behavior to composite

Quote
<actor behavior="composite">

  • Then set the type of movement, wich will dictate how actively the AI will aproach the player.

Melee gets as close as possible before executing a skill.

Quote
         <dictionary name="movement">
            <string name="type">melee</string>
            <float name="speed">1</float>
         </dictionary>

Ranged is more passive, getting close just enough to cast a skill.

Quote
         <dictionary name="movement">
            <string name="type">ranged</string>
            <float name="speed">1</float>
            <float name="range">1</float>
         </dictionary>

Passive stays still.

Quote
         <dictionary name="movement">
            <string name="type">passive</string>
            <bool name="set-dir">true</bool>
         </dictionary>

  • And in the end, add the skills
(here is a topic with a list of all skills avaiable - also read comments for other ones that were missed by the op).

**
P.S.:

Let me give you all an advice:

The most important thing to note before making a nice enemy is to imagine how the player will act when facing the enemy.

Let me give you an example:
In my mod, HammerSouls, the boss "Trolling Noobs" is a composite set as melee but casting spew. This creates a totally different aproach to the mechanics, where the player is used to expect casters to cast a skill from 3 units away rather than 0 units, wich is how close this boss gets to the player before casting spew - this makes most players take damage from 2 units, and since it's a spew, they take way more damage if they flee in a straight line.
« Last Edit: November 15, 2014, 06:27:56 AM by prophet »