Building Graeae AI, Part 0: Why My Side Project Had to Be About a Game

I already wrote Part 1 of this series, which in hindsight was a strange place to start.
That post was about teaching an LLM when to answer, when to search, and when to refuse. At the time, those were the problems occupying my head, so naturally that was what I wanted to write about.
But after reading it again, I realized that I jumped straight into how I was building Graeae without properly talking about why I was building it in the first place.
And there is another question that comes even before Graeae.
Why am I building another side project at all?
I already spend most of my working days building software. Why would I open my editor again after work? And if I am going to spend my limited free time building something, why did I choose something related to a game?
This is that part of the story.
Why I still build things after work
I have learned a lot from my professional work. Problem solving, architecture design, managing teams, communicating with people from different roles, breaking down complicated requirements, dealing with deadlines, and making compromises. Those experiences are difficult to replace.
But there is one area where I have increasingly felt less confident: tech stack proficiency.
Lit has been one of my main tools for years. I also work with many internal tools built by other teams. They work well for what we need, but much of that experience is specific to the environment I work in.
Meanwhile, when I look outside, the industry looks very different.
A lot of people say that the framework you know should not matter much. If you have solid engineering fundamentals, you should be able to learn another framework. I agree with that idea, but unfortunately, hiring does not always work that way.
A job opening can ask for years of professional React experience, Vue experience, Next.js experience, Node.js experience, or some particular combination of technologies. Before anyone gets a chance to evaluate how good you are at solving problems, your experience can already be filtered by the tools listed on your CV.
I feel that even more strongly today as someone who still wants to stay close to front end engineering. Pure front end roles seem harder to find, while more positions expect engineers to understand both sides of an application. I do not dislike learning backend development, but sometimes it feels less like something I chose out of passion and more like something the market is pushing me toward.
That is one of the reasons I wanted to learn Vue and Nuxt.
I did not want to learn them by watching hours of tutorials and then forgetting most of what I watched. I wanted to build something. I wanted to hit problems I did not expect, make bad decisions, rewrite things, design APIs, work with data, and understand why something works because I actually had to make it work.
That is how I learn best.
The problem was that I needed something worth building.
I do not need another dozen side projects
For a long time, I thought about side projects mostly as learning exercises and portfolio pieces.
Want to learn a framework? Build a project. Want to show recruiters that you know a technology? Build another one.
There is nothing wrong with that. I have done it many times, and those projects helped me learn. But eventually I started questioning whether I really needed to keep doing this forever.
At some point, I came across someone on LinkedIn who had built many different products. What interested me most was that there was one particular project he seemed to really care about. He kept working on it, improving it, and talking about the story behind it.
Somehow, hearing about that one project was much more interesting than seeing a long list of things someone had built once and then abandoned.
That stuck with me.
Maybe I do not need tens of side projects. Maybe I only need a few that I actually care enough about to keep working on seriously.
I already knew that I wanted to learn Vue and Nuxt. What I did not have yet was the product.
I wanted to build something serious
At first, I wanted my next project to feel serious.
A friend of mine had built an AI application that could help people learn different subjects by creating courses and providing an interactive chatbot. I thought that kind of project was cool because there was a clear problem, a clear user, and a reason for the product to exist.
I wanted something like that.
The problem was that I had absolutely no idea what to build.
Honestly, I ran out of ideas.
I could probably have forced myself to invent another productivity application or some kind of SaaS concept. But if I was going to spend months working on something after work, I knew I needed more than a technically respectable idea. I needed something that could keep me interested.
And that eventually led me back to something I had already spent years enjoying.
Games.
Six years later, I am still playing Genshin
Genshin Impact has been around for six years now, and somehow it has become part of my life.
The feeling is different from when I first played it. Back then, I had friends who played too, so there was more of a shared experience around it. These days, I mostly play by myself, but I am still here.
I am still excited whenever a new update is approaching. I still want to see the new regions, characters, stories, mechanics, music, and art.
If you ask me exactly what keeps me playing, I am not sure I can give you one answer. Maybe it is the story. Maybe the art. Maybe the combat system or the characters. Probably all of them.
One part I have always found especially interesting is team building.
The strangely satisfying problem of building a team
Genshin is not a game where everyone owns everything, especially if you are not a whale.
You have a limited number of characters. Some have constellations. Some do not. You might have good weapons for one character and terrible options for another. You might also simply like certain characters more than others.
That makes team building a constraint problem, and I enjoy that.
Imaginarium Theater is probably the best example.
It is not enough to prepare one strong team and use it for everything. You need to think about your roster carefully and decide which characters are worth using now and which ones you might need later.
Sometimes that means bringing back a character that has been sitting untouched in your account for years, building them just enough to be useful, and figuring out how they can fit into a team you would normally never play.
For players who do not spend heavily on the game, this becomes even more interesting because the available options are limited. You cannot simply assume that every ideal character or weapon is available.
When your account has those kinds of constraints, the theoretical best team in the game does not matter very much.
You need the best team that you can actually build.
So naturally, I looked for answers online. A lot.
One question, five different tabs
Usually, answering a Genshin question means looking at multiple places.
I might read a character guide, then another guide about a teammate, search Reddit, look at other team recommendations, watch a video, and finally compare everything with the characters and weapons on my own account.
There is an enormous amount of useful Genshin information online. The annoying part is putting it all together.
At some point, ChatGPT became another place I would ask. That sounds perfect on paper. Instead of reading several sources myself, I could explain what I had and ask for a recommendation.
But ChatGPT did not really know my account.
Unless I explained everything, it naturally gave me the same kind of universal recommendations I could already find elsewhere. And because it is a general purpose AI assistant, it also does not inherently understand every detail of the game.
Sometimes I needed to guide it. Sometimes the answer sounded convincing but was not what I expected. Sometimes it could confidently suggest something that did not make much sense.
Eventually I started wondering: what if all of this existed in one place?
What if it already understood my account?
The original idea was simple.
What if there was one place where I could ask Genshin questions, but the assistant already understood what I actually had?
What characters do I own? What constellations? What weapons? What options are actually available to me?
And when it does not know something, what if it could search for the information instead of pretending?
That sounded useful to me. More importantly, it sounded fun to build.
So I started.
I eventually called the project Graeae. There is a story behind that name too, but I think it deserves its own post.
Even now, while writing this, I am still not completely sure whether I can finish the version of Graeae that exists in my head. I am okay with that.
I started building it without being too afraid of failure because even if the final product never becomes what I imagine today, the experience of building it is already valuable.
I have learned things from Graeae that I probably would not have learned from another tutorial.
What I want Graeae to become
I do not want Graeae to simply answer Genshin questions. I want it to understand the context behind them.
If I ask for a team, I want it to consider the characters I actually own. If I ask whether I should pull a character, I want it to understand what that character would add to my account. If information might be outdated, I want it to check. And if it does not know something, I would rather have it admit that than confidently invent an answer.
That sounds simple when written in one paragraph.
Building it is another story.
Part 1 of this series was about one of the first problems I encountered: teaching Graeae when to answer, when to search, and when to refuse.
The problem I am working on now is team composition.
Giving an LLM a list of characters and asking it to make a team is easy. Making sure that the resulting team is actually good, fits the player's account, and makes sense for the content they are trying to clear is much harder.
That problem has already taken me through several ideas, architectural changes, and plenty of moments where I wondered whether I was making this far more complicated than it needed to be.
I probably am.
But that story belongs in Part 2.
For now, Graeae is still unfinished, and I am still figuring things out.
Maybe that is exactly why I still want to keep building it.