PRJ_001 // GAME_DESIGN

Cycle of Elements

A first-person adventure puzzle game where players harness the power of the Five Elements to restore balance to the world.

UE5 Puzzle Design Chinese Art Daoist Philosophy
Cycle of Elements Screenshot

Overview

Cycle of Elements Screenshot

Cycle of Elements is a first-person adventure puzzle game developed using Unreal Engine 5 (UE5). Inspired by traditional Chinese Daoist philosophy, players take on the role of a Taoist who harnesses the power of the Five Elements (Metal, Wood, Water, Fire, Earth) combined with the rhythm of seasonal changes to purify polluted environments and restore balance to the world.

The game features cartoon traditional Chinese art that blends low-poly aesthetics, traditional landscapes, talismans, and natural elements to immerse players in an Eastern-inspired fantasy world.

Key Features

Cycle of Elements Screenshot
◈

Cartoon Traditional Chinese Art

Blends low-poly aesthetics, traditional landscapes, talismans, and natural elements to immerse players in an Eastern-inspired fantasy world.

◈

Harmony of Daoist Journey

Combines the Five Elements' generating and controlling cycles with seasonal changes, allowing players to experience Daoist harmony while exploring and solving puzzles.

◈

Element-Based Puzzle Design

Utilizes the generating (Sheng) and controlling (Ke) mechanics of the Five Elements to solve puzzles, open new paths, and restore balance to a deteriorating world.

◈

Exploration Abilities

Includes Climbing and Flying (Sword Flight) abilities, greatly enriching the first-person exploration experience.

Game Mechanics

Cycle of Elements Screenshot
Cycle of Elements Screenshot

The Five Elements System forms the core of gameplay:

  • Generating Cycle (Sheng): Wood generates Fire, Fire generates Earth, Earth generates Metal, Metal generates Water, Water generates Wood.
  • Controlling Cycle (Ke): Water controls Fire, Fire controls Metal, Metal controls Wood, Wood controls Earth, Earth controls Water.

Core interactions include Element Collection & Absorption, Element Switching via UI, Element Crafting by combining elements or seasonal environments, Season Change manipulation, and exploration abilities like Climbing and Sword Flight.

Development Iteration

Cycle of Elements Screenshot

Early Level Design

Progressed from white-box (Blockout) construction to terrain sculpting, vegetation placement, and final scene art pass.

Element Collection Implementation

Initially attempted direct Actor type matching, which frequently caused errors. Switched to using Tags for identification, resulting in more reliable and accurate logic.

Element Switching Implementation

Initially used the Released input event to exit the UI, which conflicted with other inputs. Resolved by using a FlipFlop node to toggle states, allowing the UI and gameplay controls to switch reliably.


Cycle of Elements Screenshot
Cycle of Elements Screenshot

Solo Development

This game was entirely developed by me alone, from initial concept to final implementation—including game design, programming, level design, UI design, and visual art integration.

Game Design Programming Level Design UI/UX Art Direction

A Development Story

The Problem

I wanted players to collect different elements scattered across the world. But I didn't want to create separate blueprints for every single element pickup—that would be tedious and hard to maintain. I needed a unified system that could handle all five elements with a single, elegant solution.

What I Tried

At first, I thought checking the "type" of each object would work. If I could ask the game "is this a Fire element?" and get a clear answer, that would solve everything. I spent days building logic around this approach.

Why It Failed

The type-checking approach was fragile. Sometimes it worked, sometimes it didn't. When I added new elements or changed existing ones, things would break unexpectedly. The game would mistake Wood for Fire, or fail to recognize elements entirely. It was a maintenance nightmare.

What I Learned

I realized I was making things too complicated by trying to identify objects by "what they are" (their type). What I really needed was a simpler question: "what category does this belong to?" This shift in thinking—from deep inspection to simple labeling—was the breakthrough.

The Solution

I started using "tags"—simple labels attached to objects. Instead of asking "what type is this?", I just check "does this have the 'Fire' tag?" It's like putting sticky notes on everything in your room. Now the system is reliable, easy to expand, and adding new elements takes minutes instead of hours. More importantly, it never breaks unexpectedly.