My stance on AI in mod development
A little about me and how I approach AI
Who am I?
By day, I'm a full-stack developer. I work with code for a living, so I'm certainly not new to programming, but that doesn't mean I know everything about every language, framework or technology I happen to encounter.
I know C#, but I'm not going to pretend I'm some kind of C# wizard who can write everything from memory without looking things up. There's always something new to learn, especially when working with an environment like Vintage Story's modding API.
Why use AI in the first place?
Vintage Story's API is openly available to modders, and there's plenty of documentation, source code and other resources to explore. You can absolutely figure things out by digging through them yourself. That's something I still do regularly.
But having access to all these resources doesn't mean you automatically know where to look, which classes are responsible for a particular behaviour or how different parts of the game fit together. Even as a developer, I can't possibly know every API or implementation detail of an unfamiliar codebase.
There's also the matter of how I personally learn. I've always been more of a hands-on learner. I'm not particularly fond of sitting down and reading documentation page after page before actually trying anything. I learn much faster when I have something concrete to work on, when I can experiment, make mistakes and figure out why things behave the way they do. Inevitably i get the occasional drop in performance, the crash the dreadful unknown texture white blob with the question mark, yeah, im there guys.
And since modding is a hobby for me, having a tool that helps me get to the relevant parts of a codebase faster is genuinely useful. It lets me spend more time actually experimenting with ideas instead of endlessly searching for where something might be implemented.
A helping hand, not an outsourced developer
I use AI primarily as a way to navigate unfamiliar codebases. I'll describe something I'm trying to achieve and ask where the game handles a particular behaviour, which classes or methods might be relevant, or how an existing vanilla implementation works.
Sometimes I point it towards the game's API assemblies so it can inspect the available types and methods. Other times I ask it to look at existing implementations or explain a particular piece of code.
But that's really just the starting point.
Once I know where to look, I investigate things myself. I read the relevant code, try to understand how everything fits together, reason about possible implementations and decide how I want to approach the problem.
Sometimes I already have a pretty good idea of what I want to do and just need help finding the right place in the API. Other times, investigating an existing implementation gives me ideas or reveals things I hadn't considered.
AI might occasionally suggest code snippets or alternative approaches, but I review them, adapt them or reject them when they don't make sense. And believe me, I do reject quite a few of its suggestions!
I don't expect it to make the technical decisions for me. Finding the relevant code and understanding what it does are two different things, and the latter is still very much my responsibility.
I still do the actual development
I write and adapt the code, test it in-game, debug it and keep questioning whether what I've implemented is actually the best way to do it.
Sometimes AI suggests something useful, sometimes it suggests something completely wrong, and sometimes I have to explain to it why an approach won't work. It can hallucinate methods, misunderstand how the game works or confidently propose solutions that simply aren't suitable for the problem.
That's why I don't blindly trust its answers.
It doesn't replace my enthusiasm for making things, my programming knowledge, the experience I've gained over the years working in the software development industry, or the debugging skills I've developed along the way.
If anything, it gives me more opportunities to put those skills to use on things I might otherwise have dismissed because figuring out the underlying systems would have taken considerably longer.
I'm still learning, and that's the point
A big part of modding, at least for me, is learning by doing. I come up with an idea, start poking around the game's code, try things out, break things, fix them, and hopefully come out knowing a little more than I did before.
I've learned quite a bit about C# and Vintage Story's internals through this process, and I'm still learning.
I'd genuinely encourage people to give modding a try, even if they're skeptical about AI or don't consider themselves particularly experienced programmers. You don't need to know an entire API by heart before attempting something interesting. You can learn along the way, consult documentation, inspect the source, ask questions and experiment.
And this applies whether you use AI or not. You don't need it to start modding, but there's also no reason to dismiss it as a learning and research tool simply because it can generate code.
Understanding what you're publishing matters
I think this is probably the most important part of my approach.
Blindly accepting generated code without understanding it is a great way to end up with something you can't maintain, debug or even explain. If I can't understand a piece of code, I'll investigate it until I do. Otherwise, what's the point?
I want to be able to maintain my own projects, understand my own implementations and know what I'm publishing. If I simply accepted whatever AI gave me, I'd probably end up learning very little and becoming increasingly dependent on it.
Ultimately, I'm responsible for the code I publish, regardless of whether AI helped me find an API method, understand an implementation or write a small snippet.
I'm not ignoring the downsides
I'm also aware that AI comes with its own set of problems, including the environmental costs of datacenters and the broader implications of this technology.
I think these are legitimate concerns, and I'd encourage everyone to do their own research, look into the subject and make up their own minds. Don't just take my word for it, whether you agree or disagree with my approach.
I'm not going to pretend those concerns don't exist, nor do I think AI is some magical replacement for human creativity, experience or expertise.
I simply find it useful, and I enjoy having an extra helping hand when exploring unfamiliar technologies. I'm not particularly interested in hiding that I use AI, but I also don't consider it the developer behind my mods.
I'm still the one coming up with ideas, learning, reasoning, writing code, making decisions and fixing things when they inevitably break. AI just helps me find my way around a little faster.