About the Project

This project was developed during my second year of university and was my first introduction to Unreal Engine. It features a large spider boss within a cave environment. The fight consists of the spider shooting web projectiles at you, the player must return these projectiles by swinging a bat meaning they need to time their swings or risk taking damage themselves.

  • Simplistic boss AI system.
  • Different stages based on the boss' health.
  • Features Inverse Kinematics (IK) for the spider feet.

Development

This project was my first experience with Unreal Engine which meant I lot of the development process involved learning and familiarising myself with Unreal Engine. I learnt how programmers can use blueprints as well as C++ to quickly develop new classes and mechanics. While my focus was primarily on C++ I used blueprints to create a few smaller features as well as an Inverse Kinematics system for the spider's feet.

Despite my lack of knowledge in Unreal the hardest part of this project for me was the Inverse Kinematics system. I had never created an IK system before and it took a lot of trial and error to get the spider's feet to move correctly as opposed to clipping through the floor or flying into the air. I ended up using a combination of IK bones and animation blueprints to get the desired effect. This also involved doing my own 3D modelling in blender both to create the spider and rig it. This was a new process to me however I enjoyed the creative process of modelling, less so the process of rigging.

The actual boss fight was a lot of fun to create, since the spider had IK the actual movement was incredibly simple, it was just a case of moving the spiders position around the player. The more difficult part was creating the web projectiles, I did this by creating a projectile class that would spawn at the spiders location, then through the use of unreals projectile movement component gave the web a homing effect that disables after a few seconds. This combination of components allows for a projectile that can not only be dodged but also returned to the spider through the use of a sphere cast from the player camera. After syncing up the enemy and players health with UI the final addition I made was to add different stages to the boss, to make the fight get harder as you progress. At each stage 4 things happen:

  • The spider's projectile speed is increased.
  • The spider's movement speed is increased.
  • The spider's firerate is increased.
  • The spider's projectiles progressively stop arching, decreasing the time the player has to react.

What I Learnt

  • How to use Unreal Engine's terrain system, lighting systems, etc.
  • 3D sculpting / modelling and rigging in Blender.
  • Working with blueprints in Unreal and creating Inverse Kinematics systems.
  • Working in Unreal Engine with C++ to create simple AI systems and player movement.

Screenshots