JaniTerror is a group collaborative project made in Unreal Engine 5.2 from scratch. We were given a bland framework, except we needed to source or create assets, blueprints, and levels.
Our group consisted of two artists, two 3D modellers, and five programmers. No one in our group specialised in designing, so we had to improvise and take charge in fields that we were not comfortable with.
I helped with programming, level designing, setting up assets, sourcing sounds, bug fixing, and a little lighting. We had to individually document our development with the project.
Obtained 80% out of 100% on my assignment grade.
Source project total file size: 10.01GB.
As I was not able to get in touch with the group, I did not contribute to the group's project within the first few days.
This week, I polished the puzzles I am in charge of in this project. The first puzzle is the pressure plates, where the player is required to solve a puzzle to block off enemies that will be going after them. If they do not solve this puzzle, they will be punished accordingly.
I also need to make a conveyor belt and a function to spawn random objects from what is supposedly a 3D printer, which can be used to get a part for a mannequin.
Yesterday, I managed to make a "generator" puzzle, which will be converted into a power box that needs fuses. So far, the functionality of that works after polishing and fixing the bugs. During this time, I was introduced to the Blueprint Interface for the first time, and it was interesting to learn about the purpose of a BP Interface.
Applying that knowledge, I have added a torch to a level that works perfectly fine. But I have come across a roadblock. As no animation goes for the player while equipping a torch, the default animation makes the torch redundant as the torch would be facing downwards. After a discussion between the group leader and the group supervisor, they agreed to circumvent this issue by giving the player a head torch (a helmet attached to it directly).
What remains of the puzzle is the randomisation of the fuses. Currently, I have been hit with a ton of confusion and errors within UE, as I cannot seem to get the items randomised properly. I am planning to work on this from today. Hopefully, I can contribute to the HUD by adding a torch meter.
Every mesh used in the videos is simply a placeholder, while the more suitable meshes will be implemented later.
A final note: my group (Group 1) is working with the base framework individually, using their own copy of the project files. So I have written a document for everyone to use to migrate their stuff over to the main project files we will be using in the end, to combine everyone's work together. I will be able to help the process if there are errors or conflicts between assets. I will also assist with various fields within Unreal, like level designing.
During Easter and the start of Week 4, I worked mildly on the project.
The first change I made was to fix the torch duration UI to display the duration of the remaining torch. Before this, the meter was broken, and it did not display the exact duration of the torch. Upon fixing this, I realised that the progress bar (the torch duration meter) has a minimum value of 0.0 and a maximum value of 1.0. So, to make the meter work correctly, the torch value needs to be divided by 100, and that calculated value needs to be assigned to the meter.
Furthermore, I have added batteries that will serve as resource management. The batteries will serve as a resource that the player needs to manage carefully; otherwise, they will be unable to explore the darkness of the level.
For the pressure plates, I have created a camera shake that is used to shake the camera upon stepping on the plate. The shake will occur more aggressively when the puzzle is complete.
The only issue I found was the conveyor belt. If the player were to go onto the conveyor belt, whatever was attached to the player would misalign with the player. It looks as if the character's bone socket would move independently of the character at an accelerated pace. I will try to fix this, but the alternative solutions are not looking too bright.
Finally, I have done that the gas canister (placeholder mesh) will be randomly located depending on the random integer generated by the relevant blueprint.
The video above demonstrates these changes and more.