Major Project

NIE WEIQIU / 0360239

Major Project  / Bachelor of Design (HONS) in Creative Media

Major Project 


INSTRUCTIONS



Task 1: Proposal Writing

In this task, we were asked to start developing a concept. Following Mr. Vinod's instructions, we began by determining the subject matter, backstory and narrative style, output format, visual style, mood board references, color scheme, and some concept sketches.

For the first two weeks, I created a PowerPoint presentation to solidify the concept. I included all the finalized idea boards in it.

I have completed the character sketches, background sketches, and assets.

The following PDF file contains the slides for the presentation.


Final year proposal  Link :PPT



After reviewing the proposal, I met with my direct supervisor in person, and we discussed how to create a game, how to make its rules look more like a game, and how to add interest.




After finalizing the plan, I will study and consult on how to create it.

Pickup Functionality

Seed (seed_Box)

Main Component: BoxCollision (Box Collision Box)

Function: Triggers pickup upon collision


When a player (BP_FirstPersonCharacter) enters the collision zone, a corresponding collision event is triggered. This event retrieves the Seed integer variable stored in the player class, increments it, and is activated by pressing the E key on the keyboard. After the event is triggered, the Actor is destroyed. Visually, this is represented as a pickup.


Collision

Main Components: BoxCollision (the box's collision box), Collision Trigger Event

Function: Allows the object's position to float vertically.


Trees Box_0-5

Main Components: BoxCollision (collision box), Niagara Effect, PointLight (point light source)

Function: Allows the object's position to float vertically.


Function: Trigger pickup upon collision


When the player (BP_FirstPersonCharacter) enters the collision zone, a corresponding collision event is triggered. This event involves creating a user interface (UI X) in the player's viewport, then pressing E to trigger the event to destroy the Point Light component. The event also involves acquiring an effect component named BP_DissolveEdge_SM_6, executing its Star event, retrieving the Tree integer variable stored in the player class, incrementing it, and then destroying the actor.

When the player (BP_FirstPersonCharacter) leaves the collision zone, another collision event is triggered, and the created user interface (UI X) is destroyed.


Secondary actor BP_DissolveEdge_SM_6-10
Function: Triggers the dissolve effect on the mesh.


Backpack User Interface (Bag_UI)
Functions: Real-time display of the number of items acquired in the backpack.


The Tick event is monitored in real time. The integer values ​​of trees, seeds, and energy stored in the player class are then input into the corresponding text in the UI. Finally, the integer values ​​are converted to text.


Corresponding button functions

Planting a tree: Execute an event


Energy Evolution: Clicking the tree-planting button triggers an event.


Clicking triggers a conditional statement: is the number of players (C) equal to 0? If not, the player blueprint's `show` event is executed (this event removes the UI upon click). Then, the number of Cs is decremented by 1. The `T` actor is retrieved; `T` is a pawn component with a camera. A view target is set using a blending method, switching the player's perspective to the `T` actor's camera view after a 3-second delay. The Dack Fog Box blueprint is retrieved, iterated through, and the `Tout` event (which reduces the zoom of the black fog) is executed. After a 3-second delay, the perspective switches back to the player.

Build by clicking the mouse and executing the build event.


Clicking triggers the `show` event in the player class. It checks if the `Tree` value stored in the player class equals 5. If it does, it executes the `BU` event (located in this blueprint). This event retrieves the `House` class actor, sets the `StaticMesh` component, and toggles its visibility. If the value is not equal, a UI message indicating insufficient trees pops up.


Planting actor Treeable

Main components: BoxCollision (the box's collision box), collision trigger event; StaticMesh (the static mesh), toggling tree display.

Player collision trigger: Check if Seed is 0. If not, execute subsequent events. Execution condition: Press E. Execution event: Toggle the visibility of this actor's mesh; Set its overlay material to empty (initially, the overlay material is glowing); Get the Ptree variable from the player class's BAGUI (both variables here are references to the UI interface) and remove it; Then increment the Seeded count variable; Set the boolean variable id to true; Set the boolean variable Is bag to false; Get the Treeable class actor; Iterate through it; Set the mesh visibility of all actors with false id to hidden. This way, unplanted trees will disappear after planting.

Actor House

Main components: BoxCollision (box collision box), collision trigger event; StaticMesh (static mesh), toggles the display of houses.


Black Fog actor DackFog_Box

Key Components: SphereCollision (collision box), StaticMesh (static mesh)

Functions: Entering the collision range reduces the player's stored health.


Function: Spherical Collision Event


Entering the collision zone triggers the Fog UI, adding a layer of blurry black fog to the player's viewport, and then setting the boolean variable `In` to true. Leaving the zone removes the UI and sets the boolean variable `In` to false.

Function: Shrinking and enlarging the black fog


The two events, Tiem and Tout, perform two actions. Tiem scales the mesh world by +10 using time-interpolation. After completion, a level sequence is played, moving the corrupted monsters placed in the scene closer to the player. Tout scales the mesh world by -10 using time-interpolation.

Level sequence Wolf


Main UI (User Control Interface) Heath_UI


Features: Real-time display of player health and ecosystem balance values.


The Tick event executes three sequences: Sequence 1 sets the player's health as a percentage; Sequence 2 executes the ++ event when the player's seen integer is 3 (increasing the ecology value), then executes the seen integer event; Sequence 3 checks the boolean variable ?. If true, it proceeds to the next check. If the player's tree count is 5, it sets the boolean variable to false and then executes the -- event (decreasing the ecology value).

Function: Setting the ecological balance value



Player BP_FirstPersonCharacter Blueprint Modification and Addition:

Function: Displays the player's health bar and eco-balance value.


Initially, the Heath UI (main UI) is created and displayed. Then, the default process of detecting the player controller continues.

Function: Press B to open the backpack


Pressing the B key triggers Flip Flop. Pressing it once opens the backpack interface, and pressing it a second time closes it. There's also a show event call here, which can also close the backpack UI after pressing a button in the backpack interface.

Functionality: Monitors the number of Trees stored by the player and the player's health.


Here, the tick event triggers a sequence of events. Sequence 1 checks the player's health; if health is below 100, it increases by 5 per second. If health is 0, the end event is executed, indicating death. Sequence 2 triggers a time event after 5 trees are felled, causing the black fog to enlarge. Then, the player's view is switched to the T actor, followed by a message indicating ecological destruction, before the view is switched back to the player.

Video demonstration





Weekly progress, feedback and action planned/taken



Reflection

Experience

Participating in this large-scale project was both challenging and incredibly rewarding. It propelled me to constantly explore new ideas, refine my professional skills, and push me out of my comfort zone. In this process, I truly understood the importance of patience. After all, things rarely go exactly as planned. For example, during the project, my core design software suddenly crashed, instantly wasting hours of hard work; to meet tight deadlines, I had to work overtime repeatedly. But these experiences taught me problem-solving skills and resilience in the face of adversity, and made me fully realize that setbacks are an inevitable part of the creative process.

Observation

My most profound observation throughout the project was that perseverance is the key to success. Sometimes I felt helpless and even doubted my abilities. For instance, having never used UE5 before, I encountered a host of problems, taking several days to figure things out, and considering giving up countless times. But it was precisely these moments of gritted teeth and perseverance that ultimately gave birth to the most creative and innovative results. I also discovered that progress is never linear—those seemingly insignificant small steps and gradual improvements, accumulated over time, always bring unexpected breakthroughs. Like using UE5 for test runtime, after each failure, I learned from each mistake, adjusted my methods, and finally cracked this tough nut. Although it's not yet ready for prototype testing, we've identified the core problems, which will make subsequent work more efficient. This experience has also given me a deeper understanding of "treating challenges as growth opportunities."

Discovery

The key takeaway from this project is the importance of planning. Initially, I thought I could just jump right in, but I quickly realized that a clear, well-planned solution is the cornerstone of a project's success. Breaking down the overall task into smaller, more implementable steps not only greatly reduced my psychological burden and work pressure, but I also truly appreciated the value of feedback: when I presented my initial design to my mentor, he immediately pointed out flaws I hadn't noticed before. Those constructive comments not only helped me refine my ideas but also directly improved the overall quality of the project. This made me realize that incorporating external perspectives is crucial for personal growth and project progress.



Comments

Popular posts from this blog

Design Research Dissertation

Advanced Typography