# Saving the soul of AI projects

> Source: <https://dev.to/oscarhedeby/saving-the-soul-of-ai-projects-4p12>
> Published: 2026-10-11 08:11:09+00:00

Scrolling twitter I see a lot of people who act like the knowledge gathered after having build large scale projects before AI is growing obsolete. I think it's the exact opposite.

I'm the type of guy who bites off more then he can chew, this has mostly been a hindrense since it's forcing me to either publish unfinished projects (which I'm not the biggest fan off) or give up on projects after months of work (not ideal either) or god forbid finish a project, which also happens from time to time.

Now, with AI I'm finally able to handle the amount of extra work I'm piling on, but it has come with at a steep cost. Before AI, I would have so intimate knowledge of a project that I could sit at a bench in the park and know exactly what file I would implement the feature I was dreaming of. After AI I mostly think of prompts I can use to illuminate the code it wrote yesterday, so I can propose meaningful improvements.

Being submerged in the code daily also resulted in a different attachment to the ideas the project was based on. The concepts and constructs that would shape the resulting project is in many cases left up to chance when using AI.

When I 6 months ago started out developing the idea for a [video game](https://ancient-astronauts.net/?utm_source=dev.to&utm_medium=article&utm_campaign=saving-the-soul-of-ai-projects), I was torn between hand coding everything or using AI in some capacity. Doing everything by hand would result in a better product (no doubt in my mind about that), but it would probably end up adding another year or two of development time.

One day while contemplating this it came to me; instead of going one way or the other, why not be very specific about what I develop with AI and what AI should never touch.

This is where *saving the soul* of a project comes in.

Building any kind of large development project requires some level of loose coupling between the different application layers, so why not use that as guidance for what AI can help with and what it should stay away from.

*Here is what I'm doing today:*

The project has a folder called `/Game/`. The Game code is engine agnostic, a Game is created on game start and everything in the game is represented in it. It's the games single source of truth. **NO AI ALLOWED.**

This folder holds everything from map/terrain generation, instantiating map objects, handling NPC behaviour, buildings, etc. The soul of the game. What you are actually playing.

Now representing this in the engine is where AI is introduced. That does not mean I let agents go completely nuts in the rest of the project, I constrict the agents to make smaller sub-projects that I then hook up to Game truth using a view class.

When I think about the price of implementing a feature I now think of how much touch the soul of the project and how much touch the auxiliary parts.

Now this does mean I can't move as fast as I could if I would just let the models run wild, but the result is vastly different. I'm able to stare out of the window and dream up smart ways to produce a game I would like to play, while an agent works on optimizing the leaf shader or rock generation.
