Journey through the Woods: Unveiling Memories in the Forest
By Sara He✨
Project Description
Desciption: Embark on a captivating journey of self-discovery by interacting with the mystical elements of the forest alongside the little creature, Sylvan. Join her quest to restore her forgotten memories and powers by returning the forest’s treasures and rebuilding her home.🍀
Abstract: Sylvan woke up in the forest, not remembering anything. She saw plants that seemed familiar and decided to explore. She collected forest stuff like flowers and berries, and put them back where they belonged. As she did this, she started remembering bits and pieces. She found out she could make different footprints and turn green in the sun. Even her ears could change color, but she had forgotten about these abilities when she woke up. Later, she found a letter and discovering that she and her family were once part of the elfin community that lived in the forest, now endangered due to deforestation. She was the only one left. By returning everything to the forest, she remembered who she was and got her powers back. Now, she’s going to rebuild her home here.🏕️
Design & Composition🎨
I have always had a deep love for plants, forests, and nature, as well as a passion for scriptwriting, exploring intricate and complex narratives. Therefore, I crafted a story set in a forest, where the little creature, Sylvan, rediscovers memories and rebuilds her home within the ruins of a lost woodland. The concept of how the creature become “generative” and interact with the surroundings is intricately woven into the storyline.
In the previous Mini Project 4, I’ve already explore some patterns and shapes regarding the topic of forest and nature. And I directly used certain graphics as elements in my Project A, such as recurring small flowers. I also brainstormed ways to make the creature ‘generative’ and, considering my storyline and game settings, I chose to: (1) Have her grow larger when collecting items, symbolizing growth; (2) Leave footprints as she moves; (3) Change her body and ear colors in the sunlight.
A screenshot of my project:
Pieces of my draft:
Speaking of user interaction, users primarily control the creature’s movement using a mouse and certain keys. As I aim to develop this project into a charming and engaging game, I have incorporated various game design elements, creating interfaces to guide users on how to navigate and interact within the game.
There are still some unresolved issues with a small detail: in Scene 2, Stage 1, the creature’s movement speed should be constant, but it appears that her speed slows down gradually. I’m not sure where the problem lies.
Overall, I have gradually experimented and refined most of the basic effects I aimed to achieve. As for areas where further improvement is possible, I will address them in the ‘Reflection & Future Development’ section.
Technical🔭
Among all the challenges I encountered, I think the complex logic structure to be a major obstacle. My work has a complex structure with many nested stages, and sometimes it feels very chaotic. So, I drew a diagram to clarify the relationships between them. I am also pleased to see that, despite not being good at handling logical issues, I was able to step out of my comfort zone.
Understanding and handling issues related to arrays can be quite challenging. Due to the large number of elements within the array, trying to solve everything within a single function can lead to ineffective results. Additionally, one problem might affect others, so I divided different functionalities into separate functions. Moreover, when using splice()
to extract elements from the array, the length of the array changes, and the order of elements is altered, which I initially overlooked. Later, I used ‘i’ to represent specific numbers, so my graphics wouldn’t be affected by changes in length.
Color changes also posed a headache, as the colors vary between different stages. So, I set variables representing stages to differentiate them. Initially, when using lerpColor()
, I didn’t achieve the desired gradient effect of changing colors while moving. Later, I realized I could use map()
to achieve this.
map()
is also used for changing the size of the creature.
Behind the Scenes: I drafted some ideas for writing code and the desired effects I want to achieve (though some of the text is written in Chinese). 🤣
Reflection & Future Development🔮
In reflecting on this project, I am moved by the evolution of the entire creative process. At first, the conception of the story and characters seemed like a blank canvas, but over time, they gradually came to life as if they had their own existence. From the initial ideas to the actual programming process, I encountered numerous challenges and difficulties, but at the same time, I gained countless growth and learning experiences. Throughout the creation process, I learned how to tackle logical issues, design game elements for user interaction, and continuously adjust and refine details to enhance the project. Each modification and adjustment allowed me to gain a deeper understanding of my work, and through constant experimentation and practice, I witnessed my progress and achievements. This project was not only a technical exploration but also a release of creativity and imagination, making me more passionate about creating things. Through this process, I realized that the essence of creation lies not only in the final product but also in the experiences and rewards gained throughout the entire creative journey.💗
As for future development, one thing that I feel I can make significant improvements is the shape of the creature. In the initial design, the creature had wavy-shaped feet, and as she moved, her feet would undulate like waves. I also wanted to create tails for her. However, due to time and technical constraints, I was unable to achieve this effect. I believe that if I could create a draft-like effect, the creature would become even more ‘generative’ and adorable.
Another area that could be improved is the transition between stages. Currently, the scene transitions within Scene 2 still feel somewhat unnatural. If I could make the visuals more coherent between scenes, perhaps it would result in a better overall effect and user experience.
In addition, professor Moon provided me with some valuable advice that I might consider making some changes accordingly. Professor Moon suggested that I should avoid using keys 1, 2, 3 on the keyboard to enter different scenes because the pop-up prompts could potentially disrupt the user experience to some extent. Perhaps using mouse clicks or natural transitions for navigation would provide a smoother experience.
Professor also mentioned that I could add more transformation effects when the creature is in the sunlight, which would make the work more visually stunning and beautiful. 🙂
Credits & References📝
As for techinical support, I want to express my gratitude to professor Leon and learning assistants Danni and Carrot for providing me with a lot of help.
As for inspiration, I think the narrative aspect of my project was partly influenced by a puzzle game I played before called Monument Valley.
Leave a Reply