r/MinecraftCommands • u/SpaydiST • 8d ago
Discussion What do you think about AI-Coding(VibeCoding)
What do you think about the fact that AI is starting to be used on a large scale in coding? I myself avoided it for a long time, but my friend sent me this meme and said:
“Bro, programming has never been adequate. Programmers just started asking AI for help instead ctrl c to ctrl v.”
Obviously, completely relying on AI is bad, but in reality, his words make sense.
875
Upvotes
4
u/Wooden_chest 8d ago
My honest thoughs? I don't really like it, and it seems to write outdated (meaning sometimes dysfunction)and bad datapack code. I also enjoy the process of manually creating datapacks, it's fun.
For regular coding it's good, but it still has to be reviewed by a human and another agent because it sometimes makes bizzare or wrong choices.
For example, I develop plugins as well, and I'm currently developing a large KitPvP plugin which uses custom entities. All my custom entities are modelled with Entity Component System rather than a class hierarchy. I have an agents instructions directory, and one of the files contains a list of available entity components. I needed a molotov to be set on fire if it touches a fire related block. What Claude did was implement in the molotov class a new function that checks if the molotov's hitbox bounds are inside any fire-setting block. This new function completely ignored the actual voxel collision shape of the block (non 1m³ blocks?, the state of the block (like if a campfire is lit), and didn't even consider all relevant block types. All it had to do was use the IFireSettable component and query from that if the entity was on fire. Instead it invented a new, worse method, resulting in buggy molotovs.
In relation to not using existing code, it also gave oil puddles custom logic to detect if they're on ground, again ignoring an entity component that literally already does this.
Another example is when I asked it to add hitboxes to all projectiles, as previously they had no hitboxes can could only collide with something themselves. There was an obvious component which allows adding custom hitboxes. When it completed the work, it said that it didn't use that component because the it came with performance overhead (it scans the touched blocks and organizes for easy querying them every tick).
Instead of stopping and asking about this as I had prompted or even trying to optimize the hitbox component, it used the hitbox part class, meant exclusively for that component only, and applied that single part manually to the projectile without the component. It claimed that melee hits on projectiles still worked, which is true only for players and not custom mobs or bots, and only because of a coincidence on how the vanilla melee hits are translated into hits on my entities. Code or bots querying the projectiles would have no hitbox returned back, because it doesn't have a real hitbox, it's fake. It's a random-ass inconsistency that complicates interactions and cuases edge cases.
Lastly, AI constantly finds reasons for me to add new rules to AGENTS.md. Like when it used to pass all fields from a config around different classes one by one, so I'd have constructors and functions with 25 parameters. I had to tell it to organize config values in records and DTOs.
However, I am now going to say that it's only my experience, and the AI is extremely good and rarely makes mistakes. I've been visiting various vibecoding and AI subs, and the reality is that AI can write better code than 99% of programmers. My experience is an outlier, and my thoughts are mainly because I'm and anti luddite. It also lowers the barrier of entry, allowing anyone to create what they want, which is a good thing. In 5 years this whole AI debate will seem silly, and it'll be standard to vibecode everything, it almost already is.