Project 7

Decompression

What I did

This was the most educational and fun project I did. At the beginning I worked on setting up the visual scripting inside our newly built editor inside our own engine. Building the nodes from the ground up, the common nodes with the looping nodes, the game nodes with getting the host and its children, the positions etc.

The AI behaviours was of three types, a charging and leaping enemy, a mostly stationary enemy shooting bullets at the player with a surprise if the player gets to close (Starts to use a shotgun instead of single fire shots) and finally the flying enemy that shoots a lot of bullets and dodge often.

AI Behaviour Tree

But the most time I spent on was the AI nodes, I challenge myself on doing a behaviour tree with the visual scripting from the ground up. Meaning I needed to code the nodes needed, the decorators, the composites and lastly leaves. And after making the nodes, I also needed to script the AI with the newly built nodes. It was fun and challenging but I’ve learned a lot.


Below is the early stages of the rush enemy or Lillbob as we called him.



During the development of Lillbob’s AI, I needed to communicate a lot with the level designers to make sure Lillbob’s behaviour was good.



Below is an exempel on movement behaviour the level desingers wanted. Less suicide when the player destroys the enviroment. 




I also worked on the other enemies, Dwight (Flying Ranged Enemy) and I.S.A.C (Ranged Enemy)




What I need to develop as time goes on was, exempel the dodge mechanic for Dwight. 

Behaviours Results

It was a challange to develop AI behaviour trees in visual scripting, but It was fun to learn and educational for me.
Had to communicate a lot with the level designers to make sure our vision was possible and working.
There was a time under the project where we had not enough resourses to work on our 5th enemy, that was Blob.
Blob was supposed another flying enemy that shoots and when low HP it would do a suicide attack but was scraped to make time for the other enemies.


In the late stage of development for our project, the level designers thought that I.S.A.C was not special enough. I then helped with a solution and that was a special attack that only happens if the player is close enough to I.S.A.C.


Why Lillbob was on the side ingame, well we had no navmesh in that level yet. So Lillbob had no path to go.

The special attack can be seen in the Trailer. The video above was the development with I.S.A.C’s animations blending and VFX usage.



More about the AI but in visual scripting below.

Diagram on behaviours below

Visual Scripting

I did not only work on AI but also on visual scripting on other fields like an event system or nodes needed for  creating a door.



I needed to communicate a lot with the level designers on what type of nodes they needed and wanted.
In the beginning I mostly put out the basics of nodes, exemple start, while, if and later for each.

But the biggest improvement I did for visual scripting was to introduce timeline node for our scripts. It wastly reduced the needed nodes for simple stuff like doors, platforms and scripted events.

Below is an exempel how much it reduced. It was a door script before and after.


Before                                                                                                                               After