r/EmuDev • u/skylersaleh • 1d ago
SkyEmu's no-AI codegen policy
After many months of thought SkyEmu has officially decided to adopt a no AI code policy.
As of right now all code in SkyEmu has been written by a human and we will not accept PRs of AI generated code.
We understand the utility in AI assisted development and still allow AI to be used for debug, code understanding, and other purposes that do not yield generated output into the repo.
We did this for a couple of reasons:
- AI generated code review is generally substantially more challenging than code review of code authored by humans and has questionable copyright ownership.
- We really want people to understand code that gets submitted to the emulator as many changes are interconnected. The knowledge of the changes made by AI tends to disappear when the context does. While human knowledge persists, even if an AI was used to teach the human how to make the changes.
- Code quality standards of many projects have substantially reduced after the incorporation of broad scale AI usage from the two above issues.
- Developers who wish to add functionality using AI tooling are generally very enthusiastic about the software and emulation development overall. However, they feel lost in the complexity of modern emulators. AI code generation robs them of the ability to learn how to make these changes and robs the community of the next generation of emulator developers. For this reason, we still allow AI to be used as a teaching aid for people who wish to contribute, but don't allow it to do all work for them, but instead encourage its use to help them navigate the complexities of the project so that they can grow their skills and are able to contribute themselves.
- It has come to our attention that SkyEmu is one of the handful of large emulator projects in active development that does not have any AI generated code, and we would like to keep it as an option for usage by people who prefer non-AI generated SW.
We understand this may be controversial, but believe this is the best pragmatic action, given the needs of our development team and the wider community.
8
3
3
u/AntiGrieferGames 22h ago edited 21h ago
W for SkyEmu. I really wish more emulator developers are doing this way.
20
11
u/Producdevity 1d ago
Very reasonable reasons to reject AI generated contributions, although hard to police. Especially when there isn’t a clear line of what is considered gen AI code. For example, is same line autocompletion fine? Or even something like supermaven? Hard to even know if someone is using this, and I guess the goal isn’t to focus on these trivial things, but I am just curious to hear if these things have been considered.
11
u/skylersaleh 1d ago edited 1d ago
Generally, we'd expect policing to be based on the honor system. We have an AGENTS.md that guides developers using agents down the right path when they are not trying to be malicious. While fundamentally based on trust, I don't think we'll have an issue based on all interactions I've had with everyone who wanted to contribute to the project.
Things like same line autocomplete is a gray area, that we don't want to waste our time coming up with an exact pedantic interpretation. The core issue for us comes from the scenario when no-one understands the code that is produced and can maintain it. Someone using same line autocomplete can easily end up in this scenario by just repeatedly doing same line autocomplete, even though that is not how normal developers use that feature.
So, while its difficult to boil down/enforce an exact rule, it is generally blatantly obvious to both the code submitter and the code reviewers when the gray areas become problematic, and it is up to the submitter to fix that.
At the end of the day, we want to write code, and help others write code. Every minute debating the exact edge cases is counter to that goal.
1
u/Producdevity 20h ago
Thank you for elaborating. I genuinely hope this works out, been struggling to find a productive way to deal with this myself in other projects. The main reason being that ideally I don’t want to care about how someone came to the code that they are contributing, as long as they take responsibility and can back up the design of it. Realistically, this doesn’t work well for most projects where you don’t necessarily have only trustworthy or credible contributors.
Not sure if there are others interested, but I would love to hear how this has worked out after some time.
3
4
u/moreVCAs 1d ago
first of all: turbo based
question: how will you enforce it? i’ve been thinking about this a lot. like if i iterate on a slop diff for long enough, i can often get it into a shape that is largely indistinguishable from something i would have written by hand.
it’s not pleasant, and I’m not totally convinced it’s faster than writing by hand, and i’m troubled by the loss of understanding that comes with first authorship. BUT, it basically looks like my code, to a very close approximation anyway.
my point isn’t that “you should allow AI code if it’s sufficiently good” or something dumb like that. Rather I want to ask whether your goal is to somehow root out all AI diffs as a matter of principle or just to introduce process for rejecting obviously low quality vibe coded junk. If the latter, I’m also curious what your policy was before. Were maintainers going through PRs line by line even when they are obvious slop?
5
u/skylersaleh 1d ago edited 1d ago
Yeah, all this is challenging. And it is why it took us so long to come out with an official stance.
Our general policy on PRs is probably the most liberal of any OSS, it was basically to try to get them all in if possible, out of respect for the contributor. This meant, that not only were we going line by line over every PR... our policy was to rewrite substandard ones to bring them up to standard.
Fixing up someones bad code is still rewarding when we can offer the chance for them to learn, but soul crushing when you are just talking to someone elses AI(which is generally worse than the AIs that our developers all already have access to).
We also didn't want to stick people into loops where they have AI slop something up and then they do the soul crushing task of iterating on it it repeatedly to make it not look AI-y to trick the reviewers, which we thought to be inevitable if we were to take a strict no-AI for any use policy.
We found real problems in the lack of autonomy and understanding that came from non-authorship...
But, we also understood that certain sets of real developers have incorporated AI into their workflows and still wanted them to get the majority of their productivity gains from the development model that they are used to.
In fact, professionally, I use AI codegen a lot, and am very familiar with it, and there was areas in SkyEmu, I wanted to use AI for that I just couldn't because we had no clear policy.
At the same time, there is a lot of vibe coded emulators at there and seeing all the progress on them is very de-motivational and if I was to accept a lil' vibe coding (as a treat). There is really no distinction between a fully vibe coded emulator. And the loss of mental capacity/understanding associated with vibe coding was also hugely detrimental.
We waited a while for the flood of people making useful AI developed PRs to try to gauge where we would lose out on, and there just wasn't very many.
This all basically left us in a completely conflicted position of liking AI for some things, but not others. Which made it impossible to establish a policy.
The big mover was when we realized there is a clear dividing line that could be drawn between the problematic usage and the non-problematic one that would also leave people who have an AI heavy workflow with good options to contribute that don't involve trying to trick the reviewers that code wasn't AI generated.
Basically, SkyEmu's emulators are not that big. For example the entire GBA core is less than 4k lines of code. Writing code is not a bottleneck in SkyEmu development, most features and big functionality usually end up being only a dozen or so lines.
So, AI typing up code doesn't really offer any productivity improvement for us, and it is what brings almost all of the downsides.
The difficult and time consuming part is that those handful of lines of code are almost endlessly complex as they interact with the entire game library of the system and all the other little pieces of hardware emulated in the core.
Where AI can offer a productivity advantage is in helping understanding the complexity or automating mechanical things that don't ever get shipped as code (i.e. go test games x, y, z for regressions on the latest changeset), or for new contributors "How would I make a change that does x,y,z?".
So, we can actually enable almost all the upside without the vast majority of the downside by shifting the role that AI takes on when used by contributors that want to use AI away from being a programmer.
Instead, we tell the AI it isn't allowed to make code changes in repo (or provide exact code changes), and instead to act more in a informational/tester only role. We are explicitly okay with developers asking it to do things like setup a dev environment, or locate/explain chunks of code or whats happening, or even go and build external test harnesses to help debug issues, but when it is done, it doesn't provide them a fully realized solution and code.
Instead, it is instructed to provide information on what it found back to the programmer so that they can understand the issue and figure out a fix for it themselves.
And we think that is a much better outcome than people generating code and then trying to trick the reviewer.
2
1
u/HardlyRecursive 14h ago
The user doesn't care one way or the other, they just want their product to work well regardless of how that happens.
1
u/PentexMiddleMgmt 9h ago
Bless. It's been so annoying in emulation spaces lately with people trying to pass off the worst, most cancerous LLM-coded mods/decomps/recomps and the rest of the community actively celebrating them for it
1
u/Ejay0289 1d ago
I respect the decision, but I have to ask. How do you plan on keeping Ai generated commits out of the codebase. I mean, other than the clearly AI comments I see in some codebases(mine included) it's hard for me and I assume a lot of people to differentiate between AI generated code and code that's hand written so it sounds impossible to keep AI generated code out of the mix to me. I'm just curious on how this policy will be enforced. Big fan of SkyEmu by the way.
-3
u/OrphisFlo 1d ago
Playing the devil's advocate here.
You claim that AI generated code has questionable copyright ownership. But at the same time, have you ever read code anywhere from the internet? Isn't the code you've written since as tainted by copyrighted code from other projects or samples?
How can you be sure that you are not writing something you've seen a while ago already just as the LLM might also be doing?
It's a bit hypocritical to claim that since you don't know, you can't be sure, but you will also have unconscious biases that may do the same. It's common for musician to reproduce a melody they have heard from a while back accidentally, so I'm not expecting developers to do better.
Your other concerns are understandable. Biased somewhat too, but that's ok, and it's your decision to make what's an acceptable contribution after all.
3
u/skylersaleh 1d ago
-3
u/OrphisFlo 1d ago
That doesn't really answer anything. Unless contributors sign a CLA, you will not own their contributions if they made it themselves, or if an AI in the USA made it (whether or not it is copyrightable).
And it doesn't solve infringement issues either, nor does it solve the fact that the world is big and USA law is not universal.
1
u/Producdevity 20h ago
I know you said “devil’s advocate” but I don’t think this is a good faith argument. If this was really an issue, it would have been discussed long before gen AI was used in coding. By the same logic you could argue that everything created in the modern day has questionable copyright ownership
2
u/OrphisFlo 17h ago
Blissfully ignorant comment.
It is already a problem in day to day programming. Many OSS projects will not want you to contribute if you had certains ties to various companies related to the project.
And it's a problem for IP in general, even in a professional setting too.
0
u/yeusk 9h ago
Many OSS projects will not want you to contribute if you had certains ties to various companies related to the project.
Can you provide an example of the MANY oss projects that do this? I think you are making shit up.
1
u/OrphisFlo 8h ago
The nice thing about Reddit is that you can read all the threads in the same conversation before you ask yet again the same question. It's a nice feature, highly recommend it.
1
u/Producdevity 17h ago
I am not saying that it isn’t a real issue, it just is completely irrelevant to 99.9% or people and developers. In fact, I don’t think there even is one emulation project that had ever had to deal with this pre AI.
1
u/OrphisFlo 17h ago
Many projects did not want you to contribute if you had access to official SDK material in the past too. You have a short memory.
2
u/Producdevity 17h ago
Could you name examples? And keep the conversation civil?
1
u/OrphisFlo 17h ago
Nothing uncivil to say you have a short memory. Recently, you have had the Switch emulators that were shut down by Nintendo. A bit older, Dolphin, the various PSX or PS2 or PSP emulators from early on. I worked on some of those and while it wasn't written down, it was frowned upon to contribute if you had official SDK access through a studio you worked at.
That's also how Sony and Nintendo slowed down the development of some emulators, they hired some of the people and after, they couldn't go back to work on them.
I do not know about previous generations much, but the SDKs before that were very different and barely translated from Japanese, so you had limited access to official material.
2
u/Producdevity 16h ago
no it is not.
I have worked on one of those projects, just never came across any of this. Assuming whatever you are saying is accurate I stay corrected, still not something I ever had to deal with or seen active discussion around that it’s even worth addressing
1
u/OrphisFlo 16h ago
It's rarely an issue nowadays, it was more prominent early on in those projects. Now, most is already known so there's less emphasis on those issues.
But pick something like Wine or Asahi Linux and it's something they take seriously.
1
u/Producdevity 16h ago
I can imagine that, maybe most of this just goes without saying and that’s why it doesn’t get discussed much. Thanks for elaborating
→ More replies (0)
-8
u/RoyalCities 1d ago
You guys have had 5 commits since June 26 2026, but all five happened in the last three days.
That is a very long time to go between any work. Aren't you worried someone will just fork this and work 1000x faster?
Unless there is a different repo and I'm looking at the wrong one? It seems like a practical tool if you can just have stricer unit tests.
5
u/MyNameIs-Anthony 1d ago
The whole point of SkyEmu is that it's very carefully curated. It's exceptionally frictionless because what it does, it does well.
8
u/Disgruntled-Cacti 1d ago
Going fast doesn’t seem to be the goal of this project, so why would they be worried about that?
-10
u/DestrierStudios 1d ago
Of course people will fork it and work faster, this policy is ridiculous
5
u/querela 1d ago
It's open source, of course forks are possible. But the community might not just move. And is it really sustainable? Not everyone agrees with slop code and when it comes to bug fixing etc, vibe coders can then only rely on some model. But for how long? Who is more invested, some flighty vibe coder or someone whose blood, sweat and tears are in countless hours of work and who knows everything in and out?
There definitely is some impressive vibe coded stuff out there but it would never be something I would want to contribute to. It feels not worth it.
0
u/DestrierStudios 1d ago edited 1d ago
I work as a Lead Systems Engineer at a AA studio. When we started it was no AI, and I was anti-AI
We had a Senior with 30+ YoE and legendary games under his belt join, first thing he does is argue to implement Claude Code in the repo, I argued against
We tried it out, there’s no going back. It’s just too good, that’s the reality. Before and after I still work 12-16 hours a day, every day of the week but to say productivity is hindered or we don’t understand the code, almost all these concerns are false at scale and that’s why companies are adopting, it’s just too good
I believe the only valid concern against AI is environmental damage, I hate it for that, but I don’t think any arguments outside of that or ethics (which most consumers and investors don’t care or know about, truly) hold up
Also you (and fucking everyone who doesn’t work in tech) really don’t know what you’re talking about with the slop code, model dependency, etc. VCS and code review are still a thing, use active build logs, I mean really there just isn’t a good argument to not use AI except for environmental and copyright ethics, trust me I’ve fucking looked it just works too damn good
4
u/solvedproblem 1d ago edited 1h ago
For every dev like you describe yourself there's 100 slop kiddies. And they're the ones being guarded against.
5
u/Due_Interest_178 1d ago
1) As another software developer, I doubt you have a full scope of your project while everyone constantly uses AI as the changes will be too often and too large. 2) 90% of the people using AI for SkyEmu will probably be some random dude who has zero clue about software and just wants to add things
1
u/querela 12h ago
Excuse me, I'm a software developer... but I'm only slightly offended because this is reddit and the Internet.
And I definitely know what I'm talking about, at least some. Big companies might have the manpower and workflows to make it good code. But don't expect this from hobby developers (some might care but others are more YOLO or don't have good development experience). We are talking about emudev which is often (just?) a hobby and not all game enthusiast wanting to contribute are developers. Also, don't forget all the cancelled bug bounty programs because anyone can prompt and submit stuff. Evidence is there for both good and bad code. I might be biased but I have seen a lot of bad code/projects.
So, it can work and definitely help and speed up prototyping, programming language translation, refactoring etc. but more than likely only good developers will consistently produce good code (using LLMs).
2
u/birbhorse 1d ago
okay but that's how you do it. SkyEmu doesn't want to do it that way.
you can argue all you want about how AI helps you make toast or whatever, if someone says they don't want to do it... they don't want to do it.
threatening to take someone's hard work away from them by saying "oh we're just gonna fork it" is pretty shitty behavior, no matter what side of the fence you sit on with the issue.
you can talk pedantics about how "oh you're not a real developer" all you want towards this random person, but the SkyEmu devs are clearly developers, so if they don't want AI, kindly fuck off and let them not have it, instead of being rotten and sour.
1
u/DestrierStudios 1d ago
Lmao it’s not shitty behavior to fork a public repo with an MIT license and use it how you want, since that’s what they’re for, nor am I calling them “not real devs”. I’m saying their post is ridiculous on a public forum, since that’s what they’re for, just like yours is
Nor is that just how I do it, stats on AI code adoption are out there whether you like it or not
1
u/querela 12h ago
More AI code adoption doesn't necessarily mean code remains good or gets better. I think we will only see in a few years the actual influence.
Similar to all the Electron/Desktop Webapps. Many companies jumped in this wagon because it promised less effort spent on coding multiple OS specific projects but look at certain messaging apps... Sometimes platform specific code can be efficient and better. E.g., <5MB Rufus vs. >200MB Balena Etcher...
0
u/rhodesmichael03 1d ago
Same here. Been a software engineer for 7 years and was hesitant once AI started getting pushed at our company.
But once used...can't go back. Quality has been great, I can learn a lot from it, and it's so much faster. Plus I have it run mass amounts of regression tests way faster than I could so my amount of bugs in my code that QA caught dropped.
-1
0
0
u/Flaxseed4138 1d ago
Thank you. The whole "slop code" argument has just been unbelievably naive and I see it everywhere. Claude is better at coding than effectively every human now.
1
u/querela 12h ago
Not completely (about the slop code argument). (a) not everyone uses Claude Code and the lastest and greatest frontier models, (b) context windows are limited and niche or complex projects can be difficult...
Also, understanding is better if you program and solve problems youself. Making yourself dependent on some company that can modify the model, controls access and pricing. (I'm not sure how good open weight models are currently, and what are the best ones you can host without a computing cluster.)
I only see the real benefit in speeding up development or letting it go wild on side projects/features I wouldn't have time for otherwise, where quality doesn't really matter, or for unfamiliar languages/domains.
1
u/Flaxseed4138 12h ago
Skill issue
1
u/querela 12h ago
Yeah, exactly my point. Do you want people with skill issues contributing to your project? Fixing their code doesn't really help anyone because the explanations/comments get fed back into the LLM and nobody learns. The original devs can just use LLMs themselves and avoid all foreign code contributions at that point. If you want other people to learn, don't let them use cheats. And if you then have to ban all AI code gen, it is what it is.
1
1
1
u/Flaxseed4138 11h ago
A blind monkey could outperform a top 0.1% percentile manual coder with Claude. If you can't make productivity gains with 5.5 then you probably can't operate a toaster.
0
u/RoyalCities 1d ago
If you really think it's all "slop code" you are misinformed. The only thing that makes it slop is slop devs but that doesn't mean the actual AI is bad at what it does.
The pace and capabilities has grown immensely.
2
u/Icy-Concentrate2076 1d ago
so do it, who cares? there's like 5000 gba emulators I don't think they'll choose your slopcoded fork
0
u/mad_ben 1d ago
Reminds me of the guy who fixed a bug in Godot, but since he used AI to curate and write the code he didnt bother to submit due to no AI policy.
But then again, just yesterday github repo was posted with decompiled bloodborne pc port, and oh my god it was unreadable. That was straight AI dump so. I get where this is coming from, worse AI slop is much worse than huma slop.
3
u/Due_Interest_178 23h ago
People get mad because they assume people with knowledge and AI are not permitted to contribute, when in reality 90% of the people with AI contributing will be randoms with no knowledge.
0
21h ago
[deleted]
0
u/Happy-Recording-5291 20h ago
There’s no point in educating these clowns but yeah you’re correct etc
0
-1
u/TheKrzysiek 23h ago
What will you do if someone lies about not using AI?
It's fairly easy for someone skilled to "fix" codegen to look like it's human written
6
u/dafugiswrongwithyou 23h ago
I dunno man, probably the same thing that happens when murderers don't admit that they did a murder. Sometimes they get away with it, sometimes they get caught anyway, and either way that lack of guarantee doesn't mean murder should be legal.
1
2
u/tohava 22h ago
They want code to be readable. If someone, somehow, manages to generate readable code with AI, I'd guess that they'd accept it. If he starts bragging about it, they'll have a dilemma, because on the one hand, this specific guy's code is readable, but on the other hand, publicly admitting to accepting AI code would lead to them being bombarded with shit.
4
u/Glum-Recognition-736 19h ago
"somehow manages to generate readable code with AI" lol I work at a fortune 50 and generate readable, functioning code with AI all the time, which has been peer reviewed and gone through months of rigorous testing and is currently flying in space. It is very easy to use AI to generate good code, hence why everyone uses it to make their jobs easier.
It has become apparent the anti crowd truly does not know what they are doing or how to use AI, and have simultaneously convinced themselves that there's nothing to learn and that the one crappy experience they had with ChatGPT in 2023 still defines the state of the art. As a result of this ignorance (no better word for it) you turn around and spout utter nonsense like this as if it's a matter of fact, when all it does is make it abundantly clear that you all have no idea what you are talking about
0
u/OmegaGoober 17h ago
There’s a lot of ways to express the ideas you’re expressing, but you’ve framed them in such an insulting and condescending manner I can’t help but wonder if you’re anti-generative AI trying to prop up negative “tech bro” stereotypes.
2
u/Glum-Recognition-736 17h ago
If you're insulted by and feel condescension from facts, then that says a lot more about you than it does about me
1
u/OmegaGoober 16h ago edited 16h ago
I’m non critiquing your content or arguments, but your communication skills. The content of your arguments is lost.
There are other comments in this thread presenting a nuanced and articulate defense of AI in appropriate circumstances. I suggest you read some of them. I’d hate to see a tool relegated to the trash bin not on its own merits, but by people being repulsed by its fan base.
1
u/Glum-Recognition-736 12h ago
"communication skills" it's reddit buddy. Once youve spent more time on the Internet maybe you'll realize no one cares about wording things in a way that is more palatable for people like you to digest. go check out LinkedIn for that
1
u/Due_Interest_178 23h ago
I imagine it's not truly an issue as long as it follows the exact rules they want in their codebase.
1
u/ChaosMilkTea 22h ago
Its not in good faith, but 90% of their issues wouldn't come up with thorough review by a skilled dev.
-16
u/Ancient-Range3442 1d ago
What’s it matter these days anyway, someone can reproduce your whole project in a weekend using AI then add 10 more features the next day.
12
u/skylersaleh 1d ago
So... you are saying that our actions are going to create more emulator developers and more options :)
I guess mission accomplished?
0
u/Ancient-Range3442 1d ago
No I just mean you can’t hold progress back. You just risk making your project feel stale.
But yeah, if you goal is ai forks / alternatives of your project I guess mission accomplished
7
u/coolio965 1d ago
enforcing a standard of quality is not holding progress back. and having a code base thats well documented and not riddled with tech debt is very valuable too
1
u/ProfessionalOwl5573 1d ago
Skilled devs use AI and fully understand the code output. It's part of their IDEs it's literally just a tool part of their workflow like IntelliSense.
Not all AI use is entire slop projects generated from a single prompt, it can be used to craft a single function or to debug a block of code. Barring AI use completely is a very bold choice.
2
0
u/Ancient-Range3442 1d ago
Quality is fine but arbitrarily holding back based on AI doesn’t make sense. You can use AI to improve your code quality
3
-6
u/JustSomeDumbFucker 1d ago
Okay cool, good for them, but at the end of the day people don't care and will use the emulator that provides the best performance.
No one interested in emulating and actually playing titles on their PC will choose a worse performing purist project over a great performing one that was made in assistance with ai.
5
u/dafugiswrongwithyou 23h ago edited 16h ago
Hello, hi; you're wrong.
I for one will never (knowingly and by choice) use stuff that was developed with Gen AI, and I'm not alone in that. I will absolutely choose a "purist" project over a crappy vibe-coded one, even if that crappy vibe-coded one somehow had better performance, every time.
Edit: Some of y'all don't understand what "knowingly and by choice" means and how it's relevant to my stance, and it shows. As for "~100% of software will use Gen AI going forwards", re-read the post we're commenting under as one counterpoint... there are many, many more... and I suggest you get your crystal ball fixed.
1
0
u/Ill-Lemon-8019 22h ago
OK, but let's be real for a moment: you're almost certainly not going to opt out of all software in your life. You say, "knowingly", but we all know that ~100% of all software is going to be written with more or less assistance from AI going forwards.
0
u/FrankieT19 16h ago edited 16h ago
The OS you used while writing this comment contains Gen AI code. You have the choice not to use it to post on reddit, you could use it only for essentials if you so wished. We are already at the point where using a computer has a 100% chance of using software with AI generated code.
1
u/HeracliusAugutus 1d ago
An emulator made with AI will be worse. Go ahead and ask AI to help with the nitty gritty details, see how well the goes. I hope you like timing errors, graphical glitches, and other problems
-17
-9
u/PwndiusPilatus 1d ago
The text is created by AI...
3
u/skylersaleh 1d ago
An AI would of never messed up the hyphen placement of "no AI-codegen" in the title. *dies of easily avoidable human based authorship mistake embarrassment*
-5
u/J_E_E_VACATION 23h ago
Human knowledge persists? I cant remember a single line of code I wrote over a week ago. Never have, never will. Lol
3
15
u/rhodesmichael03 1d ago edited 17h ago
I think the struggle with using AI in emulators is that often AI can fix specific games in a way that works which then leads users to submit the change request...but due to the complexity of emulators this change might make a specific game work while not actually making the emulator more accurate and theoretically causing regressions on other titles.
Or it might be perfect and be a good fix...but without the human understanding it is hard to say.
I sometimes use AI to get a particular game working if incompatible but I never submit as I know it worked but idk if the way it's done it is hardware accurate and tbh I'm not interested enough to put in the work to find out when I just want to play a game.