Interactive Narrative Design-Project 3
Huang jiaqi| 0373820
Interactive Narrative Design | Bachelor of Design in Creative Media
Table of Content
Module Information
Lecture
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:
Scene diagram:
Start:
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
fig 1.16 the fool
fig 1.17 the chose
fig 1.18 hin to leap
fig 1.19 tell him waitThe ending of the three stories
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 encounteredAudio:
Game Video
fig 1.23 Make Game Video
fig 1.24 Make Game VideoThis 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.
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
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
Post a Comment