Study Garden is a productivity app that gamifies the task management experience by rewarding focus and task completion.
Study Garden was born out of a desire to better understand Unity and game development as a designer. Even though design may not require coding, it is important to understand the limitations and possibilities of the tools that developers use. As I started working professionally on projects that were built with Unity, I realized that I needed to understand the engine and all it’s capabilities better in order to design more effectively.
While many productivity apps focus on tracking habits or organizing tasks, this project aims to make completing tasks a rewarding experience by providing an interactive and aesthetically pleasing environment where users can cultivate a garden based on their efforts. In Study Garden, users set specific tasks and goals. Completing these tasks and maintaining focus earns virtual currency that can be spent on new plants and decorations for their virtual garden. As the garden grows, so does the user’s sense of accomplishment, reinforcing positive behaviors while offering a playful creative outlet.
Staying focused and consistently completing tasks is a common challenge, especially in an increasingly distracted world. Traditional task management apps often lack the incentive to motivate users or make productivity enjoyable. Without rewards, completing tasks can feel like a chore.
Study Garden gamifies productivity. Through completing tasks and maintaining focus, users will be able to grow their garden and unlock new plants and decorations. This approach combines task management with gamification, making the process both engaging and visually rewarding.
I explored the psychology behind productivity apps and gamification, identifying that users are more motivated when they have a tangible reward or progress to work toward. By providing a virtual garden that users can personalize and grow over time, Study Garden leverages this motivation, offering a consistent sense of achievement. Inspiration was also drawn from existing apps like Habitica, which gamifies habit-building, but with a stronger emphasis on visual creativity and design.
Other popular examples with a heavier focus on visual design include Forest and WaterDo, which have demonstrated how attaching a visual reward system to task completion can help users stay focused. Forest encourages focus by letting users grow virtual trees that wither if they leave the app before completing their focus sessions. WaterDo, on the other hand, combines task management with a playful interface where users pop bubbles that represent completed tasks.
While these apps succeed in making productivity engaging, they focus more on short-term rewards (like growing a single tree or popping a task bubble). Study Garden’s main value is providing a persistent virtual space where users continuously grow and customize their gardens as they complete more tasks. The focus is not just on one-off rewards but on building something over time—a garden that reflects the user’s consistent efforts and progress. Additionally, Study Garden takes a more creative approach by emphasizing visual and spatial design. While apps like Forest and WaterDo offer predefined visuals and limited customization, Study Garden allows users to curate and design their garden, giving them a sense of ownership and expression that goes beyond simple task tracking.
The development has been an ongoing learning experience focused on gaining familiarity with Unity and C#. The early stages involved prototyping the core gameplay loop, creating a simple system for users to add tasks, track focus sessions, earning rewards, and most importantly of all, storing game data.
Because my main focus for this project was to learn more about Unity’s systems and its API, I tried to stay away from designing assets as much as possible. As a solo project, designing assets from scratch would have taken away valuable time that I could invest in mastering Unity’s features. I opted to use free assets from the Unity Asset Store whenever possible and focused on the gameplay mechanics.
While I had some programming experience with Unity before, this project introduced me to more complex concepts like data and file management and the role of a GameManager in a game environment. The GameManager was central to handling core game logic and managing game states. In a game that relies on tracking user progress, having a reliable structure to save and load data is crucial. This required me to implement persistent data storage while ensuring that the game remains responsive and consistent even as the player interacts with multiple systems.
The data management system was probably the most challenging system to implement for me. Some objects can’t be referenced directly, so I had to create what had felt like a convoluted system of references to ensure that the data was being saved and loaded correctly. I think a good 90% of the errors I encountered were either null or missing reference errors, and it took a lot of trial and error to get it right.
After fully implementing the game management and persistence systems, I was finally able to focus on bringing the various scenes to life. The layout of the final screens closely reflects the structure envisioned in the initial sketch.
I started this project with the assumption that this was going to be a simple one. After all, I deliberately chose something simple. At its core, it’s just managing data of some plants and currency. I was aware of how much work game dev is going into this, but all my previous experiences were very hacky. I could crank out a functional prototype in a day, but it would be filled with placeholders and bugs.
As a hackathon enthusiast, I have already done my fair share of quick and dirty projects. This time, I wanted to flesh things out as much as possible and make sure that the project was scalable. As I started debugging, I realized that the smallest bugs are sometimes the most time consuming to fix. There were many times where I considered making something a “feature” instead of fixing it, but I couldn’t be satisfied with that. Sometimes, I think I went a bit overboard with debugging. There was one “bug” where the images on buttons wouldn’t be tinted when pressed when it worked completely fine, and I ended up making a custom script just to fix that. There were so many other nit-picky things I wanted to fix, and each tiny issue could take hours. It’s those small details that make the product feel like an actual game rather than a hackathon project.
Aside from bugs, there were also many tiny features that came to mind as I was developing. The core gameplay loop was already implemented at this point, so there was no real need for any prioritization. Because of this, it felt like a never-ending project. “It would be cool if the environment changed based on the time of day” — “Why don’t we have multiple songs and backgrounds and make it randomized each time you enter focus mode?” Eventually, I realized I needed to get a grip and start PM-ing myself. I decided to cut off all tweaking and coding by a certain date no matter where I was at. I will always come up with more features that are “nice to have”. If I kept going, I really will end up making a full-fledged game. This was just a learning project.
While I’m not new to Unity, it contains so many features and editor tools that I’ve never touched before. This project contained a lot of firsts for me. I learned to work with in depth with Unity’s UI system, which was a lot more complex than I thought. I expected to get the hang of its Canvas system quickly as a designer, but it took many many failures of trial and error to get the UI to work and respond the way I wanted it to. Only now does it feel natural for me to work with.
Other than UI, this was my first time with audio, video, tilemaps, and sprite editor. Although I didn’t dive as deep into these as I did with the UI, simply implementing them opens up doors I otherwise wouldn’t have known about.
Check out the project on GitHub to see the code and assets used in the project.
The next steps for Study Garden would be to implement a more comprehensive onboarding process to guide new users through the app. This would include a basic walkthrough of the features and how they’re used. Currently, new users may not fully understand the available features or how to interact with the game. A step-by-step introduction would help bridge this gap, ensuring that users start off with a clear understanding of the app’s core functionality. Additionally, integrating more contextual alerts and notifications would provide essential user feedback. For instance, users should be notified when they’ve completed a task, earned rewards, or when certain milestones are reached. Without these, the app can feel unresponsive and confusing at times.
Another priority is expanding the variety of plants, decorations, and layout options available in the garden. Offering more customization choices will enhance user engagement by allowing players to personalize their garden further, and it is especially important since Study Garden’s main differentiatiation is its focus on visuals and customization. Adding seasonal items or themed content, such as holiday-specific plants, could introduce limited-time events and encourage continued interaction.
The current reward system works well for motivating users, but there is room for improvement in how rewards scale as users progress. Implementing more dynamic rewards based on task difficulty, streaks, or focus duration could make the game feel more rewarding over time. This would create a stronger connection between effort and reward, helping users stay motivated as their gardens grow.
As more features are added, performance optimization will become increasingly important. Further work is needed to ensure that scene transitions remain smooth and that the game performs consistently even with a fully decorated garden. Bringing the game to Android and iOS would also make it more accessible and reach a broader audience, opening up possibilities for mobile-specific features like notifications and simplified touch controls.