When Flowers Bloom

When Flowers Bloom

by PandaCat Studios

Software Engineering Project 3 & 4 (GAM200 & GAM250)

Introduction

Software Engineering Projects 3 & 4 marks a significant evolution in my academic and practical experience in engine development, it marked a transition from basic programming to the creation of more complex, software engines.

Collaborating with a team of 4 other programmers, 2 designers and 1 artist, we embarked on the challenging task of developing the Reality Engine, a bespoke 2D game engine and 2D game editor crafted from scratch using C++.

Game Objective

“When Flowers Bloom,” is a 2D unique gardening simulation novel game set in a world inspired by Chinese fantasy. Players immerse themselves in creating magical flower arrangements, catering not only to customers but also to ancient spirits. This game combines elements of fantasy with the serene art of gardening, offering a captivating and richly interactive experience.

Accomplishments & Challenges

Role: Architecture Lead, Dialogue System Programmer, Editor Tools Programmer

In my role as the Architecture Lead for Reality Engine, I was tasked with the implementation of the Entity Component System (ECS) in our engine. This was crucial in managing game entities, contributing significantly to the modularity of our game's architecture.

As the developer of the engine's Dialogue System, my primary objective was to design a system that streamlined the process of creating story and conversation dialogues for our designers. This tool allowed for the efficient generation of dialogue templates, eliminating the need for repetitive manual UI tasks. My focus was on enhancing the user experience for the design team, enabling them to craft diverse and intricate dialogue paths with greater ease and flexibility. By simplifying the dialogue creation process, we not only improved workflow efficiency but also enriched the storytelling aspect of the game, allowing for a more immersive and player-responsive narrative experience.

My contributions extended beyond the core architecture to the development of various Editor tools, including a profiler. These tools were designed to streamline our development process, enabling us to fine-tune and optimize our systems more effectively.

The project presented a unique array of challenges, especially in the optimization of the Reality Engine and the seamless integration of the Dialogue System. This project represented more than a technical endeavor; it was a significant milestone in my journey as a computer science student. It reinforced my technical skills, particularly in the areas of software architecture and system design, and underscored the importance of adaptability and precision in the face of technical challenges. The experience gained from this endeavor has been crucial in shaping my approach to software development, equipping me with the skills and mindset needed to tackle future challenges in this ever-evolving field.