Spite: The Summoning

“A powerful demonic presence has been summoned in the catacombs of an old town. You, the cleric, must descend deeper to the source of the evil and use your divine magic to vanquish the demons that have emerged.”

You play as a Cleric trying to get rid of the demons that are terroricing the city.

What I worked on

Rare Enemy – Chonker:

I first worked on the Rare Enemy we called Chonker. Chonker is a big enemy that is based on a Butcher design. Chonkers do a lot of damage and evern kill small enemies that get hit by it.

Movement:

What I first did was work on the movement on a Navmesh and just movement in general towards the player where the AI chases you.
This is shown in the video.

Animations:

After that I worked on adding the animations I got and making sure they worked in the engine.

After that I worked on adding the animations I got and making sure they worked in the engine.

Attack:

When movement was done and animations worked i started wotking on attacking and doing damage to the player.
For this I worked very closely with Ozzy Johelsson because he was working on the player and the small enemy called Imp.

I did the math for when the player should take damake and Ozzy took that and wrote the code for the player taking damage and decreasing the health.

The damage area looks as follows in the image. I used rays and did cross and dot product with the player position to see if the player is between the two rays.
If the player is in the attack range and between the rays then do damage to the player.

The red lines show the attack area for a attack

The red lines show the attack area for a attack

The damage area looks as follows in the image. I used rays and did cross and dot product with the player position to see if the player is between the two rays.
If the player is in the attack range and between the rays then do damage to the player.

I struggled quite a bit while working on the Chonker. I had not made any AI before and so it was all new. I had alot of help from Ozzy however who I could ask for help if anything since he had worked with AI previously.

Boss:

Animations:

With the boss I started by implementing the animations. The animations was the basis for everything with the boss. The attacks and everything is based on the animations and the timing so it was important for me to implement the boss animations.

The boss attacks were interesting to implement because of the limited resources I had with our Engine.
We didnt have any physics or collision boxes or anything I could use for the attacks, so I used the same system I used for the Conker; Rays.

The boss attacks were interesting to implement because of the limited resources I had with our Engine.
We didnt have any physics or collision boxes or anything I could use for the attacks, so I used the same system I used for the Conker; Rays.

In the video one can see the debug lines I used for the attack. Luckily the Boss attacks were very linear and so having the attacks like this wokred pretty well. There are some flaws with the boss attacks because they are so animation heavy. There are some places in the boss arena where you can stand and the boss can never hit you with the normal attacks.

The boss does have 3 stages: attack stage, summoning stage and fire spiral stage.
The video shows the fire attack using the particle emitter we have in the Engine.

The fires get a random position in the bosses forward direction with a spread. There are 10 fires that spawn and they spawn at different frequencies and last different amont of times.
The damage from the fires comes from a sphere “collider” where I just take the position and check if the player is in range of that position.

What I am most proud of

I am proud of just how much I learned and that I decided to switch to gameplay programming. I was originally going to be a tools programmer and work more on Borealis (our editor) but since we only had one game play programmer and a lot of things to do gameplay wise I switched to help.

I am really proud that I switched because then I got to experience what I actually enjoy making . Before working on Spite I didnt like gameplay programming because of my other project “Fortune Fiasco” I found it very stressful and hard to work durring that project but working on Spite changed my mind and now AI is one of my favourite areas in programming.

What I learned

I learned a lot about making AI and came up with new ways to work with AI and make it better. I realized that I find AI fun to work with. I also realized more that having a good group and teamwork can change everything with a project. Everything can feel awful if your group does not communicate or if the group dynamic is not good. Luckily I have a very nice group.
We can all learn more about communication and have better communication but it is something we will learn as we go.