Interactive Narrative Design-Project 3

  

21/04/2025 - 25/07/2025 | Week 10 - Week 14
Huang jiaqi| 0373820
Interactive Narrative Design | Bachelor of Design in Creative Media


Table of Content 

    1. Module Information
    2. Lecture
    3. Project 
    4. Feedback 
    5. Reflection 
    6. Further Reading 


Module Information




 Lecture

Week 11 - Week 14
Consultation Week 
Work on Final Project 


Project 

Project 3 (Final) - Developing an Interactive Narrative using Ren'Py 

Project Objective :

This final project requires students to realise their interactive narrative script (from Project 2) into a playable prototype game, done through the Ren'Py visual novel engine. It emphasises the practical application of narrative logic, visual execution, and the structural integrity of the interaction.

Assignment Description 

Using the branching script you submitted in Project 2, develop it into a playable interactive fiction in Ren'Py, with the following elements to be included in the work:

 Base Requirements:

Create a complete playable Ren'Py project folder 

Integrate character dialogue, scenarios, and player choices for interactivity 

Use Ren'Py's basic features: 

label 

menu 

jump 

if statement (conditional branching)

Visual and sound support:

Use appropriate graphic material (can be placeholder or original) 

Use background music/sound effects to enhance the atmosphere (optional) 

The interface doesn't need to have complex art, but the whole thing needs to be clear and playable 

Suggested Advanced Enhancements 

You can try to incorporate the following interactive features after completing the basics in order to get a higher score:

Multiple endings/branching plot structure: 

Options to influence character relationships or variable values (e.g. ‘emotion values’) 

Define character state using define 

Time limit options ($ renpy.pause), backpack props system, etc. 

Narrative viewpoint switching (first person/third person)

Deliverables :

Please package a .zip or .rar file that should contain:

Ren'Py game folder 

Contains: game folder (scripts, materials), configuration files, runtime files, etc. 

README file 

Short introduction: 

Core story setting 

Main gameplay mechanics 

How-to experience the game (how-to guides) 

Short video demonstration (optional but may be required by the teacher) 

Use for classroom demonstration or archival recordings 

Demonstration of core storyline segments and interactions Options (using OBS or screen recording)



Project Overview: Dreamwalker: Mysteries of the Soul Tarot

The Dreamwalker: Arcana of the Soul is an atmospheric, interactive visual novel where players step into the role of Caelis, a quiet and introspective Dreamwalker who awakens alone in a glowing, mystical Tarot Tower. Suspended before him are three floating tarot cards—The Lovers, The Hermit, and The Fool—each acting as a portal into a symbolic dream world.

Each dream explores a different emotional and philosophical conflict: a painter torn between love and ambition, a hermit who must choose between solitude and rejoining society, and a young boy standing on the edge of fear and faith. As Caelis journeys through these dreams, the player makes impactful choices that reflect the character’s inner growth. These choices grant symbolic emotional traits—such as Freedom, Emotion, Faith, and Introspection—which influence how the final reflection unfolds.

Ultimately, Caelis arrives at the Mirror Corridor, where every choice is echoed back, leading to one of three deeply symbolic endings that reflect his personal evolution.

Project 2 script:

When I first conceived the project Dreamwalker, my goal was to create a visual novel that would allow players to reflect on themselves and explore their inner world in a dream world. Through the symbolism of tarot cards, I wanted to design each chapter as a metaphor for an emotion or stage of life, guiding the player to shape the direction of the character's growth through choices.

At first, I just built it around a few basic scenes: the leaping fool, the dream-chasing lover, the lonely hermit ...... Each chapter has a central character and a situational dialogue, and the player's choices lead to different jump paths. But when I finished the initial script, I found that these dreams were more like isolated fragments, and although visually and textually expressive, they lacked a kind of emotional thread and character depth that ran through the whole story.

So I began to rethink the overall structure - not only did I want the plot to ‘branch out’, but I also wanted the characters to have real transformations. I redesigned the sequence of characters so that Caelis's persuasions were not just moralising, but were based on his own trauma and experiences. He becomes a ‘guide’ but also someone who is healing himself. This duality makes him more warm and convincing in his dialogue with Aeron, Lia and Elias.

Additionally, I've included a system of variables (e.g., FAITH, FREEDOM, EMPOTION, INTOSPECTION) so that the emotional orientation behind each choice can be tracked. This not only affects the subsequent plot, but also triggers different memory fragments and endgame experiences in the Hall of Mirrors.

For dialogue, I paid particular attention to making the language more emotionally charged. For example, in the lovers' chapter, Lia initially expresses ‘hesitation’, but I expanded her memories with Rowan to show details of their past time together - from fondue accidents to quiet moments of sharing hot cocoa. These small, tender moments make the choice to stay not just an impulse of love, but a solid choice.

The Hermit chapter has also undergone a number of rewrites. At the beginning, Elias was just a lonely philosopher; but later I made him express his inner struggle of ‘missing the crowd’ and ‘dreaming of his old love’, which transformed him from a symbol of ‘detachment from the world’ to a person who is thinking about his own life. This transformed him from a symbol of ‘being out of the world’ to a person who is thinking about ‘how to get back into the world again’.

In the end, the most fulfilling part of the script is that each choice is not just right or wrong, but a tendency towards values: to jump in, to wait quietly, to follow your dreams, or to stay where you are. ...... They don't have a standard answer, but they make up the trajectory of the player's soul.

The final script


 Key Interactive Features

 Branching Narrative: The story unfolds through multiple pathways, allowing players to experience different outcomes and perspectives based on their decisions.

 Emotional Trait System: Every major choice earns Caelis symbolic traits like Freedom, Emotion, Courage, Introspection, Faith, and Caution, subtly shaping his character and the final result.

 Dynamic Endings: The game offers three possible philosophical conclusions:

Ascension – Rising as a dream guide (Freedom + Faith ≥ 2)

Reflection – Remaining as a quiet watcher (Emotion + Introspection ≥ 2)

Cycle – Repeating the journey of self-discovery (other combinations)

 Character-Driven Choices: Each dream features a central character with a personal dilemma. The player guides them through branching decisions that mirror Caelis’s own internal journey.

 Immersive Visual & Audio Design: Tarot-inspired UI, ambient soundscapes, dreamy lighting, and symbolic imagery create a meditative and emotional atmosphere that enhances the storytelling.

 How to Play

The game begins in the Tarot Tower, where the player chooses one of three tarot cards to enter a dream world.

In each dream, the player guides a unique character (Lia, Elias, or Aeron) through a life-altering decision, such as choosing love, solitude, or courage.

Every choice contributes to Caelis's inner development by adding emotional traits.

Once all three dreams are explored, the player enters the Mirror Corridor, where reflections of previous choices culminate in a final narrative moment.

Depending on the combination of emotional traits earned, the player unlocks one of three possible endings:

Ascension Ending – Caelis transcends to become a guide for lost souls.

Reflection Ending – Caelis stays behind as a silent guardian.

Cycle Ending – The dream restarts; the journey of self continues.

README Summary PDF:





Project structur
Character:
# Show character expressions
image caelis neutral = "caelis_neutral.png"
image caelis smile = "caelis_smile.png"
image caelis gentle = "caelis_gentle.png"
image caelis thoughtful = "caelis_thoughtful.png"

image lia sad = "lia_sad.png"
image lia happy = "lia_happy.png"
image lia serious = "lia_serious.png"

image rowan smile = "rowan_smile.png"

image elias neutral = "elias_neutral.png"
image elias confident = "elias_confident.png"
image elias peaceful = "elias_peaceful.png"

image aeron worried = "aeron_worried.png"
image aeron happy = "aeron_happy.png"
image aeron calm = "aeron_calm.png"

fig 1.1 Character

Scene diagram:

# Define backgrounds
image bg title = "bg_title.jpg"
image bg tower = "bg_tower.jpg"
image bg snowy_studio = "bg_snowy_studio.jpg"
image bg snow_town = "bg_Snow Town Exterio.jpg"
image bg shared_apartment = "bg_Shared Apartment.jpg"
image bg library = "bg_library.jpg"
image bg library_exit = "bg_Library Exit Corridor.jpg"
image bg cloud_path = "bg_cloud_path.jpg"
image bg sky_clears = "bg_Sky Clears.jpg"
image bg mirror_corridor = "bg_mirror_corridor.jpg"
image bg train_station = "bg_train_station.jpg"
image bg city_gate = "bg_city_gate.jpg"
image bg sky_walk = "bg_sky_walk.jpg"
image bg backdrop = "bg_backdrop.jpg"
image bg ticket = "bg_ticket.jpg"
image bg study = "bg_study.jpg"
image bg tea = "bg_tea.jpg"
image bg library_dusk = "bg_library_dusk.jpg"
image bg forest = "bg_forest.jpg"
image bg cozy_study = "bg_cozy_study.jpg"
image bg sunlight_path = "bg_sunlight_path.jpg"
image bg library_rain = "bg_library_rain.jpg"
image bg library_2 = "bg_library_2.jpg"
image bg cloud = "bg_cloud.jpg"
image bg void_fall = "bg_void_fall.jpg"
image bg morning_glow = "bg_morning_glow.jpg"
image bg car = "bg_car.jpg"
image bg magic = "bg_magic.jpg"
# Define custom dissolve transition
define slow_dissolve = Dissolve(2.0)

fig 1.2 Scene diagram

fig 1.3 Scene diagram

# --- Declare Characters ---
define caelis = Character('caelis', color="#A68DCB")
define lia = Character('LIA', color="#E6A9C2")
define elias = Character('elias', color="#BFD7EA")
define aeron = Character('aeron', color="#E2D4BA")
define rowan = Character('rowan', color="#A0C8A9")

Start:

label start:

scene bg tower with fade
play music "mystical_sorcery.mp3" fadein 1.0
"Warm violet light fades in. Floating tarot cards orbit above a glass floor, casting shimmering shadows."
scene bg magic with fade

"A whisper of wind passes. The cards shimmer, glowing faintly with ancient energy."

scene bg backdrop with fade
show caelis thoughtful at left with dissolve
caelis "Where... am I? These cards—they’re calling to me."

scene bg title with fade
menu:
"Select a card"
"The Lovers":
jump lovers
"The Hermit":
jump hermit
"The Fool":
jump fool


fig 1.4 Start

fig 1.5 Start

fig 1.6 Start

fig 1.7 Start chose

The first story:The love

# --- B1: The Lovers ---
label lovers:

scene bg snow_town with fade
play music "mystical_love.mp3" fadein 1.0

"Snow drifts upward. A pastel town emerges by the twilight sea. Ocean waves crash softly against the shore."

show lia sad at Position(xalign=0.1, yalign=1.0) with dissolve
lia "If I leave now, I might become someone. I could finally grow into who I want to be..."

lia "...But what if I lose him forever?"
hide lia sad

show caelis thoughtful at right with moveinright
caelis "This ache... I’ve felt it before. Standing between the heart and the horizon. Her dilemma mirrors my own."

hide caelis thoughtful
show lia sad at left with dissolve
lia "He said he'd support me no matter what. That he'd never hold me back."

lia "But... part of me wished he'd say, 'Stay. Please stay.'"
hide lia sad

show caelis gentle at right with dissolve
caelis "Sometimes love means letting go. Sometimes it means holding on. But which one is this?"

hide caelis gentle
show lia sad at left with dissolve
lia "I don’t want to choose between my dream and my heart. Why can't I have both?"

hide lia sad
show caelis neutral at right with dissolve
caelis "We all ask that, once. And the answer never feels fair."

pause 0.4
hide caelis

"She stands in silence, snow melting on her lashes. The train station is just two blocks away. So is his apartment."

pause 0.5
"The world is quiet. Waiting."

menu:

"Encourage her to follow her dream":
$ freedom += 1
jump lovers_dream
"Encourage her to stay for love":
$ emotion += 1
jump lovers_love


fig 1.8 the love

fig 1.9 chose


fig 1.10 follow her dream

fig 1.11 stay for love

The second story:The hermit

# --- C1: The Hermit ---
label hermit:

play music "mystical_ hope.mp3" fadein 1.0
scene bg library with fade

"Stars spiral slowly in the sky beyond the stained glass. Books drift through the air, whispering in forgotten tongues. The ancient library stands still, timeless—and lonely."

show elias peaceful at Position(xalign=0.1, yalign=1.0) with dissolve
elias "Out there is noise. Conflict. Chaos. But here... here I understand silence."
elias "For a while, that was enough. For a while, it felt like peace."
elias "But even silence can become a hollow echo when it has no one to answer it."

hide elias peaceful
pause 0.3

show caelis thoughtful at right with moveinright
caelis "You found quiet, but is it peace? Or fear wearing the mask of wisdom?"
caelis "Are you healing... or hiding?"

hide caelis
pause 0.3

show elias neutral at left with dissolve
elias "I was part of the world once. Its noise drowned me. Pain, betrayal, disappointment…"
elias "I retreated here, to find clarity. And I did. But now... I wonder if I’ve just wrapped my wounds in dust and parchment."

hide elias
pause 0.3

show caelis gentle at right with dissolve
caelis "Maybe solitude helped you rediscover who you are. But true wisdom isn’t found in walls."
caelis "It’s found in walking among the world—and choosing compassion anyway."

hide caelis
pause 0.3

show elias confident at left with dissolve
elias "And if I return? What if I get swept up again, and lose myself all over?"
hide elias
pause 0.3
show caelis smile at right with dissolve
caelis "Then fall, and rise again. You don’t have to be unbreakable. You only need to be willing."
hide caelis
pause 0.3
show elias neutral at left with dissolve
elias "…Sometimes I dream of laughter in open squares, of old friends, of the one I once loved."
elias "I told myself those were memories. But perhaps... they're longings."
hide elias
pause 0.3
show caelis smile at right with dissolve
caelis "If something still moves you, it’s not gone. You don’t need to erase the past to move forward. Let it guide you—not bind you."

hide caelis
pause 0.3

"Silence returns. A beam of light filters through the high windows, warming the dust on Elias's hands like time pressing gently on old pages."

menu:
"Encourage him to return to the world":
$ courage += 1
jump hermit_return

"Let him remain in solitude":
$ introspection += 1
jump hermit_stay


fig 1.12 the hermit

fig 1.13 the  chose


fig 1.14 return the word

fig 1.15 remain in solitude

The third story: The fool

# --- D1: The Fool ---
label fool:

scene bg cloud_path with fade
play music "mystical_ Land.mp3" fadein 1.5

"Morning light filters through the sky. Beneath your feet, clouds roll like waves. A great whale drifts slowly above, singing low and distant like a dream."

show caelis thoughtful at left with dissolve
caelis "It feels like a dream, doesn't it?"
hide caelis thoughtful

show aeron worried at right with moveinright
aeron "A dream... or a trap."
hide aeron worried

"A boy—Aeron—stands at the edge of the clouds. Ahead lies an invisible bridge. Beyond, only mist."

show aeron worried at left with dissolve
aeron "Everyone says to trust myself. But they don’t see what I see—nothing."
hide aeron worried

show caelis neutral at right with dissolve
caelis "Sometimes... falling is how flying begins."
hide caelis neutral

show aeron worried at left with dissolve
aeron "But what if I fall and there’s no ground? What if I just… disappear?"
hide aeron worried

show caelis gentle at right with dissolve
caelis "And what if you soar higher than you ever imagined?"
hide caelis gentle

show aeron worried at left with dissolve
aeron "You make it sound so simple."
hide aeron worried

show caelis smile at right with dissolve
caelis "It’s not. I’ve stood where you stand. My knees shook too."
hide caelis smile

show aeron calm at left with dissolve
aeron "Then why did you leap?"
hide aeron calm

show caelis thoughtful at right with dissolve
caelis "Because not leaping... was worse. Because standing still became a cage built of doubt."
hide caelis thoughtful

show aeron worried at left with dissolve
aeron "But... what if I’m not ready?"
hide aeron worried

show caelis neutral at right with dissolve
caelis "Then wait. The path doesn’t vanish just because you pause. But ask yourself—are you waiting to grow... or just afraid to move?"
hide caelis neutral

show aeron worried at left with dissolve
aeron "I don’t know anymore. I feel so small. Like the wind could scatter me."
hide aeron worried

show caelis gentle at right with dissolve
caelis "Even small seeds become forests. Even the wind carries things farther than we expect."
hide caelis gentle

pause 0.4
"The boy closes his eyes. Silence gathers like fog, soft and heavy."

menu:
"What will you tell Aeron?"
"Encourage him to leap":
$ faith += 1
jump fool_leap
"Tell him to wait":
$ caution += 1
jump fool_wait
# ---------------------------------------------------

fig 1.16 the fool

fig 1.17 the chose

fig 1.18 hin to leap

fig 1.19 tell him wait
The ending of the three stories

a# --- E1: Final Mirror Corridor ---
label mirror_corridor:

scene bg mirror_corridor with fade
play music "mystical_sorcery.mp3" fadein 1.0
show caelis neutral at center with dissolve
"Tarot cards scatter like petals. Mirrors spiral around you, reflecting every version of yourself."
pause 0.5

show caelis neutral at left with dissolve
show caelis neutral at right with dissolve

caelis "Every soul I touched… was me, all along."

if freedom + faith >= 2:
jump ascension_ending
elif emotion + introspection >= 2:
jump reflection_ending
else:
jump cycle_ending


# --- Ascension Ending ---
label ascension_ending:

stop music fadeout 1.0
scene black with fade
pause 1.0

show text " THE END — Ascension " at truecenter with dissolve
pause 2.0

play music "ascend.ogg" fadein 1.5
scene bg sky_walk with slow_dissolve
window show

"Light surrounds you—not blinding, but warm. The cards no longer spin, for you have become their master."

"You step beyond the mirror, and wings of memory unfold."

"No longer a wanderer—you are the Dreamwalker."

"And where you walk, others follow, drawn by the glow of your courage."

jump start



# --- Reflection Ending ---
label reflection_ending:

stop music fadeout 1.0
scene black with fade
pause 1.0

show text " THE END — Reflection " at truecenter with dissolve
pause 2.0

play music "quiet_theme.ogg" fadein 1.5
scene bg library_2 with slow_dissolve

window show

"The Tower is quiet again, but no longer lonely."

"Its mirrors hold your presence now, a soft glow guiding souls who’ve lost their way."

"You do not leave—for you’ve found what so many seek: stillness that speaks, silence that listens."

"You are the keeper of dreams, the guardian of forgotten voices."

"And the final card, The Dreamwalker, rests in your hands."

jump start



# --- Cycle Ending ---
label cycle_ending:

stop music fadeout 1.0
scene black with fade
pause 1.0

show text " THE END — Cycle " at truecenter with dissolve
pause 2.0

play music "mystical_theme.mp3" fadein 1.5
scene bg tower with fade
window show

"The mirrors dim. The Tower fades."

"You open your eyes… and don’t remember why you came."

"But the cards whisper still."

"Some journeys require many lifetimes."

"And next time, maybe—you’ll choose differently."

jump start

fig 1.20 the ending

Complete Sleepwalker: The Mysterious Code of the Soul PDF

Now, as I look back at the complete journey of Dreamwalker, I realise that it's not just a game about dreaming, it's a transcript of my own emotions. Each character's struggles, choices, losses and courage were a reflection of myself at some point.

I'm not sure which ending the player will ultimately go towards, but I know that as long as they think and empathise with the process, that's the answer I want.

It's a game with no standard victory, yet it could become one of the gentlest dreams someone has late at night.

Problems encountered:

fig 1.21 Problems encountered


fig 1.21 Problems encountered

fig 1.21 Problems encountered

Audio:

fig 1.22  Audio

Game Video
fig 1.23  Make Game Video

fig 1.24  Make Game Video
fig 1.25  Make Game Video

This project is not only a game, but also a self dialogue. I learnt to express my emotions more clearly, handle script logic more rationally, and for the first time I really thought about design from the perspective of ‘player experience’.

I began to understand that the branch behind a choice is not just a fork in the plot, but also a direction for growth.



Complete the submission:

Final :Interactive Narrative Design-FINAL PROJECT link:https://drive.google.com/drive/folders/14yK_6IrJmpnSTCW03KRmQAiI4DHS7mgQ?usp=sharingmy

 my blog  link:https://www.blogger.com/blog/posts/468627115691032675?bpli=1&pli=1&q=label%3A%22MMD61104%20%20INTERACTIVE%20NARRATIVE%20DESIGN%22


FINAL README (PDF)

Game Video:



I record every modification, especially "how to make a character say touching lines" and "how to hint at the character's past wounds with a detail", which are the most precious growth in my creative process.

Feedback 

While presenting the project, I received several pieces of valuable feedback:

The dialogue between the characters had a lot of emotional depth: the teacher felt that the characters I portrayed (e.g. Caelis and Aeron) had a philosophical and gentle power that resonated with the player.

Plot structure is clearer and branching decisions have real impact: compared to the first version, the audience clearly feels that every choice has meaning and that the endings are varied and not confusing.

Suggestions: 

The use of image tags could be further optimised to avoid loading errors.

Sound effects and transitions could be smoother, especially in the switching scenes between dream and reality.

Some lines could be closer to the real context to enhance the sense of immersion.



Reflection 

The process of making Dreamwalker: Arcana of the Soul was not just a technical training project for me, but a journey of self-discovery and emotional expression.

Initial intention and transformation

At first, I just wanted to create a dream adventure story about a protagonist travelling through a mysterious dream world and making some simple choices. However, as I delved deeper into the worldview setting, I realised that the story could carry more emotions - loneliness, hesitation, choice, growth, loss ...... I'm no longer satisfied with ‘letting the player choose the plot’. I was no longer satisfied with ‘letting the player choose the plot’, but wanted to let the player **feel the emotional weight behind the choices** through the characters' experiences.

From the initial sketches and branching drafts to the treatment of each dialogue and character expression, I gradually learned one thing through repeated revisions:** What really moves people is not a flashy narrative, but sincere empathy.

Technical Growth

In Ren'Py scripting, I've encountered a number of small errors, such as:

Irregular labelling of image calls (e.g. using a non-existent `soft` attribute) 

Forgetting to set an image tag for the character resulting in a syntax error 

Confusing the usage of animation commands such as `moveinleft`, `dissolve`, `fade` etc.

While these problems were initially frustrating, I became more familiar with the logic of Ren'Py's language over repeated debugging sessions. **I learned how to construct character positions, control musical atmospheres, and optimise the transitions experience**, which will be very helpful as I continue to create more complex interactive stories in the future.

 Narrative Takeaways

In the past, I've been used to using ‘narration’ to drive the plot, but in this project I tried to make the character dialogue take on more of a narrative function. Characters like Caelis, Elias and Lia are no longer just ‘functional guides’, but real people with pasts, choices and emotions.

I especially liked the ‘memory fragments’ part of the design, the way the dreams were interspersed with memories of reality made me feel the power of emotional layering. I learnt how to bury the cause and effect in the branches, and build the player's emotional involvement with details. 

Inner Resonance

Most importantly, it was this work that made me start thinking about myself:

Have I ever been afraid of the unknown?

Have I ever been afraid of the unknown? Have I ever been afraid of the ‘unseen path’ like Aeron?

Have I ever been like Elias, hiding in a safe zone, but always thinking about the past?

Summary and Takeaways

Through this semester's interactive narrative project, I not only completed a complete visual novel game, but also experienced a whole process challenge from creative conception to technical realisation. I have gained a lot from this creation, not only have I grown in the technical level, but also have gained a deeper understanding of expression, narrative and self-knowledge.

 Technical level gains: 

Proficiency in Ren'Py engine: I went from being unfamiliar with Ren'Py syntax at the beginning to gradually being able to use labels, menu, show/hide, transitions animation, character positioning and music processing, etc. to achieve a complete multi-ending structure.

Improvement of debugging ability: I learnt to calmly analyse and search for documentation, and gradually locate and solve problems when facing error reports (such as incorrect use of attributes, mismatch of image labels, etc.).

Combination of visual and sound effects: I began to understand how to enhance the emotional rendering and narrative atmosphere through the rhythm of the screen, character movement and soundtrack.

 Creative and narrative gains: 

Characterisation is more three-dimensional: from instrumental supporting characters to characters with emotional tensions and growth curves (e.g. Lia, Elias, Caelis), I've tried to write more ‘human’ realities.

Branching isn't just an option, it's an emotional decision: I design dialogue and branching with more psychological depth, where each choice affects the character's relationship and the direction of the story, rather than just ‘getting through’ it.

Emotional resonance: I'm often impressed with myself when I write certain plots. I've found that truly moving stories often stem from real emotions, not skillful stacking.

 Personal Growth: 

Above all, this project made me realise - I'm not only telling a story, I'm also having a dialogue with my own past, confusion, and dreams. Just as the protagonist keeps making choices in the dream world, I also see myself more clearly in each writing session: the hesitations of the past, the persistence of the present, and the desire for the future.

I've learnt: telling a good story is an honest self-exploration.

These questions keep coming up when I am creating, and they make me face my own growth and confusion again. I realised that creating is not just about storytelling, but a way of knowing myself!

Comments

Popular posts from this blog

Final Compilation

Advanced Typography Task 3 - Type Exploration and Application

Project 2:Channel Bumper