Tasks Undertaken
Bug Fixes and Functionality Improvements
- Fixed bug with grabbing buttons.
- Fixed AI being stuck when pressed start.
- Fixed the hand grab on the thruster lever.
- Fixed a possible error for slicing.

AI Enhancements
- Added jumping animation to enemy AI.
- Added more jump locations in sandbox and AI level.
- Made new calculation for jumping and backup calculations.
- Added new jumping method using 'Suggest Projectile Velocity Custom Arc'.
- Added a child actor to the player that casts a line down to the floor. The AI will move to the
   location of that cast hit.

Code and Blueprint Optimization
- Cleaned up katana script and code folders.
- Organized blueprints of levers and cleaned up the widget blueprint for setting graphics value.
- Removed C++ class for saving the game due to compile issues.

Model and Animation Additions
- Added katana model to the sword.
- Added child actor to player for AI movement tracking.
- Added material to levers and repositioned buttons and levers in the sandbox.

User Interface and Design Changes
- Improved thruster lever functionality and UI design.
- Changed new main menu design, cleaned hierarchy, added custom checkmark and correct
   hover/press colors.
- Replaced Jura light font with Jura SemiBold.

Game Save and Loading Functionality
- Added get function for current switch angle.
- Added custom event for OnGripped.
- Added class for SaveGame.

Research and Learning
- Researched how to create enemy AI and followed a tutorial series.
- Applied learned methods to create custom enemy behavior.
Double Diamond
In the initial phase, I identified and resolved several issues, including fixing bugs related to button grabbing, addressing the AI getting stuck on start, and rectifying a possible error in the katana slicing blueprint. Simultaneously, I undertook research to create enemy AI, following a tutorial series to gain valuable insights for implementation.

With a clearer understanding of the challenges, I transitioned to organize and optimize the codebase. This involved cleaning up the katana script and code folders, reorganizing blueprints for levers, and optimizing the widget blueprint responsible for setting graphics values. To address compile issues, I decided to remove a C++ class related to game saving that I created for testing the C++ options in Unreal.

Building upon the organized foundation, I focused on enhancing various aspects of the project. I added jumping animations (Figure 1) and more jumping locations to the enemy AI, implemented new calculations and methods for jumping (Figure 2), and introduced a katana model to the sword (Figure 3). Further development efforts included incorporating a child actor to the player for AI movement tracking and refining the visual aspects by adding materials to levers and repositioning buttons in the sandbox.

In the final phase, I concentrated on refining the user experience. Notable improvements included enhancing thruster lever functionality and redesigning the main menu for improved aesthetics and usability (Figure 4). Typography changes were made by replacing the Jura light font with Jura SemiBold. Additionally, I implemented functionalities such as obtaining the current switch angle, custom event handling for gripping, and introducing a SaveGame class to save data better.
This week, I spend most of my time optimizing the katana, jump of the enemy AI, the AI's behavior (tree) in general, and the design of the main menu. Most of the optimization was done by trial and error and logical thinking. Improving the jump was possible by using a function that I saw in a video.

- Tycho Tuitert: General feedback, discussions and help with some of the katana optimization I
   couldn't get right.

- Enemy AI series I started following (watched the first three videos): https://youtube.com/playlist?list=PLNwKK6OwH7eW1n49TW6-FmiZhqRn97cRy&si=nJWIzj_HQSRLRdBh
Reflections and Learning
This week consisted mostly out of optimizations/improvements, implementing a new main menu design, with the start of a new AI system at the end of the week.
Implementing the new design of the main menu was a welcome diversion from my the tasks I was working on. I really like working on creating adaptive and reusable UI (as long as it doesn't take me a whole week). I learned a lot about Unreal's UI system and the use of horizontal and vertical boxes.
Starting a new AI system by following a tutorial was also really fun to do. The videos are long, almost an hour a piece, but enjoyable and full of new things I didn't knew! I plan on following the series a little bit further to gather some more knowledge, especially about inheritance and behavior trees.

Figure 1 - Enemy AI with jumping animation

Figure 2 - New calculation for jumping

Figure 3 - New katana model

Figure 4 - New main menu design

Other projects