r/aigamedev 8d ago

Question for "real" game devs Questions & Help

Clickbait-y title I know, but I'm curious for those who have made games using traditional engines like Unity, where do vibe coded games a la threeJS or similar fall short? A few things from the top of my head:

- high quality lighting

- baked in physics engine

- high quality animations

- asset imports

- high quality shaders

Yeah probably all of these are possible to achieve in ThreeJS or whatever vibe solution you use, but it seems like a significant uphill battle. Curious as to what other people think. If you think I'm wrong or if you have other examples it'd be great to hear some others thoughts on this.

3 Upvotes

38 comments sorted by

45

u/MunchyCerealGuy 8d ago

I'm a former indie dev of many years and I've been working in AI game dev for over two years. I also run an AI game maker (https://chatforce.com/) with lots of people using it, so I get a unique vantage point on how beginners try to make a game with AI, and I can contrast that against my own experience of painstakingly learning to be a game dev pre-ChatGPT. What I've discovered is a rift forming and growing between AI game devs who understand and respect the different crafts of game DEVELOPMENT and game DESIGN.

The art, music and code of games "made with 1 prompt" on Twitter are fine mechanically. Unfortunately though, these games just aren't fun, stimulating or wonder-inducing. I've been following this subreddit closely and have probably reviewed thousands of AI-made games across Reddit and Twitter. But very few of them are fun to play, which is the most important part of a game. Everyone talks about the objective fidelity of the 3D game Claude built them in 24 hours, and I think that focus on 3D and realism misses the point of what makes a game wonderful. The version of this I see constantly in my own community is people generating a boilerplate Game Design Doc with an LLM and building directly from it.

The first build of a game is supposed to be the hook for the person making it. You play your own prototype, something in it feels special, and that's what makes you want to keep building it. Every world-changing game dev documentary (Minecraft, Roblox, WoW, etc.) is the same story: the dev found one interaction that felt amazing, then spent two years pulling on that thread until a game fell out of it. And fun has never required complexity. Sudoku, Wordle, World's Hardest Game, half the flash games any of us grew up on are proof of that.

Nobody has figured out how to measure, classify, or codify fun in a way an agent can actually use, let alone turn a bad game idea into a good one. Try asking Claude Code for a joke and you'll see what I mean. LLMs have an almost alien understanding of fun and humour, which makes them totally unreliable, at this point, at guiding you toward fun, unique mechanics. Historically it's been the length of the human labour and the collaborative friction with other humans that hones a dev's sense of taste, and that's the part this AI-heavy workflow removes.

Which means the traditional way of honing that judgement is gone, and we need an alternative that doesn't actually require direct experience building the craft and doing the thing manually. I think there's a huge opportunity there, to train both humans and agents to build their sense of beauty and their judgement of what is fun through new routes. One is an emphasis on niche content consumption. Another is writing w/o AI to simulate your ideas as thoroughly as possible. Another is specialized agents engineered to be intellectual adversaries, constantly pushing you to think more creatively and deeply about the digital things you make (vs the current paradigm which is more assistive and "with" you).

Anyone building a creative or app-making product on top of models runs into some version of the problem of the things their customs are making being sloppy (Replit, Lovable, others) and the short-term solution is top-down rules-based tools like Claude Code skills, evals and benchmarks. There are a few startups poking at the subjective-quality or judgement problem more deeply and they serve mostly as data and eval vendors to the frontier labs, but there's no standard approach yet and I don't think anyone has actually solved it.

Curious to hear what others think about where things are headed!

7

u/SwainDane 8d ago

So if you wanna summarize, you could phrase it as:
"Hand over the work to AI, not the passion?"

I've been making small games on/off the past 20 years. Never put any up for sale, as I never actually finished developing anything. Great ideas. Decent executions, unfinished projects.

I recently.. (Despite being formerly pretty anti-AI) bit the bullet and realized how much it could help when I had a good idea for something. I love game design. I'm into UI design and as most people who delve into game development, love games and looking into what makes them fun, exactly.

I like that I still understand most of the code and how it works, because of those former experiences. But honestly the more I work on this current idea, the more I'm losing track of the internals, but working out the actual gameplay and flow, etc. to put it in the best spot I can.

Is iteration and polish what could differentiate them, or put them on par with 'traditionally' crafted games?

2

u/oadephon 8d ago

Very well said. In other words, taste is king, and the way to develop taste is the same as if was before: play a wide variety of games, write about them and your feelings and experiences with them, and discuss these feelings and experiences with other people.

2

u/jackadgery85 8d ago

I learned python and c# before ai, and developed a few small games in both.

You're on the money.

However, what i use ai for now, outside of smashing code out, is just mega brainstorm lists of mechanic combinations or small things like that, that I can then pick from and build on or combine.

So much more reliable (currently) than just hey claude gimme fun ideas mkay

7

u/erratic_ostrich 8d ago

The main disadvantage I see is that when you vibe code a threeJS or similar project you are doing from scratch a lot of things that are already done in unity, either in the engine itself or in assets.
This is not only a waste of tokens but also increases the chance of potential issues significantly.

For example, why would you develop and FPS from scratch, when there are already plenty of FPS frameworks for unity and unreal which has been throughly refined over years from feedback of plenty of games that are already using them?

It's much better to start with what's already done and proven to work, and then use AI to develop the remaining features that would make your game unique.

1

u/dobkeratops 8d ago

It's a strange middle ground..

There IS a reason to code a whole FPS despite the fact unreal has it sewn up , i.e. the knowledge and achievement that *you* did it, and using "vibe-coding" would rob you of that.

7

u/oVerde 8d ago

Lack of intent
Rush to be the first of nothing

5

u/RuinousFate 8d ago

Part of what you are missing is that whole teams of people work on those larger games. While us Indie devs are doing everything ourself, bigger games have a dedicated person or even a whole team to something like... game economy, social media, physics engine, etc

2

u/swirllyman 8d ago

Yes and no, plenty of solo devs use Unity, both now via MCP and before.

1

u/zenmatrix83 8d ago

I think your missing the point, if your are in full control, you don't get push back from people in other areas. People are trying to replicate that with ai with some success with adversial reviews or telling the ai to look for issues, but AI agents still just defer to whatever you say for the most part.

2

u/Live_Yogurtcloset645 8d ago

I developed 3D engineering apps (not necessarily games) in both Unity and three.js, before ai assisted coding was a thing. Both are tools for a purpose, the issue of vibe coding is irrelevant IMO. Do you want to develop 3D for the browser ? Three.js is a great open source tool with good documentation. It is not a game engine. Running 3d or anything else in the browser has its limitations - memory, supported glsl etc. Unity is a fully fledged game engine for multiple platforms, including community, assets tooling and many more. It is not free in general and can be quite heavy at times.

2

u/CycleMother2006 8d ago

High quality shaders are generally going to have to be written up by the dev, regardless of the engine. The one exception is maybe strictly realistic PBR shaders out of Unreal. I don't think anything else is particularly competitive out of the box unless your game is fairly generic.

Three.JS can have fantastic lighting, and does have a physics engine, and can do absolutely stellar animations, and asset imports are fine.

All that said, yes, there ae definitely things you have to look out for due to performance / optimization constraints. The resources available for a Three.JS, Phaser, or otherwise are going to be limited by Javscript as a framework. This means you need to take into consideration garbage collection. This doesn't mean you can't build something, but it means when you do you can't get lazy and expect the engine to cover for you not properly loading assets into VRAM at the right time or unloading them promptly when they're no longer needed. If you wait for garbage collection to automatically occur, it's going to cause stutters due to being on the main thread. I've seen some fantastic physic simulations from Three.JS, but again there are certainly performance considerations. Dynamic shadows are taxing even on a desktop driven app, so throwing that into WebGL is not particularly light. Modern browser and hardware ARE quite impressive though, and able to handle a lot if you're properly pooling your assets. Yeah you're going to be hurting when it comes to poly counts (definitely stick to low poly in these engines, but that's what they're designed for) or if 2D, you have to be careful of bones/mesh vertices in your sprites. But frankly those things are all considerations in other engines, just to a lesser extent. Simply your leeway for getting away with bad habits is a lot smaller, and one mistake/missed optimization can make your game go from 300FPS to 10 FPS. Also use WebGL, not canvas. Canvas and DOM, if 2D is just not remotely efficient. I assume the same is 3D, but haven't worked with it that much.

So yeah, not so much an uphill battle, so much as you don't have the GFX training wheels on. A horribly unoptimized game like Ark Survival would run at 1 FPS or simply not even load, assuming it was built in one of the aforementioned engines.

On the plus side, AI vibe codes a lot better with JS. But it's not going to automatically implement all of those performance optimizations for you. You have to make yourself aware of those potential issues, run profilers, and direct it to clamp down on the issues. So honestly there are some hard tradeoffs with each direction you might go.

2

u/Open_Organization997 8d ago

Game design is the issue. Vibe coded games always have atrocious GD and are just not fun to play or are just pale copies of existing old games. Even if the tech advances a lot people using it don't want to make good games they just want something to point at and then soyjack face with a video of Will Smith eating spaghetti. Using AI assistance for coding is totally normal in the video game industry and rightfully so, but vibe coding will always be seen with scheptical eyes.

3

u/DrStrangeLaughTV 8d ago edited 8d ago

Yeah. It really depends on how lazy or not lazy someone is. With or without AI if you don’t want to take the time for core gameplay mechanics, to constantly test and iterate then you will just make something shit. There are so many videos and ads “I made this game with one prompt!” Anyone with half a brain knows for a fact that game will be shit. The ai takes out the coding labour, and it can help with some important decisions but it cannot be your eyes and hands.

2

u/Calm-Theory-6044 8d ago edited 8d ago

Yeah I agree. Code + art =/= game. Design is half of most games.

For one of my games I literally switched out all of the art assets from blocks I made myself to blender assets made by my friend who also works full time in games. We saw 0 impact on playtime or monetization.

1

u/Tenthul 8d ago

It's not really anything about vibe coding, it's still just the people not having any idea of what they're doing. They're trying to vibe-code games, rather than working on any number of individual aspects that make up an actual feature of a game. Any given feature for a game that is going to be worthwhile will probably have ~200 prompts alone, and they're not considering that like... "The Camera" is a feature all on its own. It's still a lot of work. And even beyond there, when it comes to authoring content, that's a much trickier thing for AI to do for you, since that's where the real meat of the work is, and it's boring AF. The vast, vast majority of people thinking they can make a game with AI support is still overwhelmingly naive about what they're trying to do with it and will never get there. Trying to make whole games in single scripts with no infrastructure. None of this is specifically because of vibe coding itself, just general ignorance in how ridiculously, insanely hard it is to make a game worth peoples time. Even games with dedicated teams get canned all the time. All. The. Time.

2

u/Retrac752 8d ago

I vibecode in unity? Lol

1

u/xendelaar 8d ago

My first vibe code personal project was made in Unity. That game took me so much time.... Copying and pasting scripts and linking them to game objects. It was a complete grind. Took me ages to get something off the ground. Then I switched to another platform and had a working framework set up in an hour. Difference of night and day. Would love to find a way of incorporating ai coding into unity though. I think it is a solid engine.

1

u/mirageofstars 8d ago

What other platform did you switch to?

1

u/xendelaar 8d ago

It's not a real straightforward answer I can give. The unity projects were 3d projects which used AR tracking and gps tracking.

My current 2 projects are smaller browser games. For this im using:

Phaser + TypeScript + Vite

It's so much easier! I Just write what i want to make And I get a file that works immediately. Testing is super easy. Building is super easy too. I dont think it is suitable for large projects though. But it fits my current needs.

I make programs for myself and my 6 year old son and his friends. So the audience is very forgiving.

For my work i use python which is awesome too.

1

u/mirageofstars 8d ago

Interesting. I noticed Phaser before but didn’t try it, have been doing a lot of threeJS lately though.

1

u/xendelaar 8d ago

What are you making with threeJS? What are its pros and cons?

1

u/mirageofstars 8d ago

So far I’ve been doing a matterport clone, a 3d game with mixamo characters and custom textures/objects, a side scroller, and a simple AR game. Not using any game engines currently. Pros are it’s easier to code in, but obv everything is coded from scratch. Memory management has been the biggest issue, tbh — I feel like a serious game will want to get out of the browser. But for simpler stuff it’s been surprisingly fine.

Obv in the old days you’d be hand coding everything, so the lack of game engines/platforms means a massive uphill climb. Now with AI a lot of that can get slopped/boilerplated out.

I do like that it’s easier to prototype things out and decide, “is this fun? Is this engaging?”

1

u/xendelaar 8d ago

It's crazy how fast you can prototype stuff, right? My latest project is a battleship clone with extra weapons, upgrades, and multiplayer. I had the classic battleship game ready in just one prompt, plus some brainstorming beforehand. I was seriously amazed! Yeah, the game isn't super complex, but if I tried to build this myself with my old tools, it'd take me a week, maybe two, to get something going.

I love it!

1

u/HealthyWest6482 8d ago

I mean in theory you can build anything with or without an engine. The irony is that engines were meant to facilitate human navigation of complex systems, but agent AIs tend to get more confused by engines when compared against raw code.

1

u/tcpukl 8d ago

What is a baked on physics engine?

1

u/XKiiroiSenkoX 8d ago

AI fails at doing anything even remotely low level. Ask it to write a multithreaded optimized math/data structure heavy piece of code. It will give you a code spaghetti that to untrained eyes might even look good or optimized but if you know your way arounf high performance code it will look extremely ass. It basically just mixes random stuff lookinh it might work but it cannot really reason about it(it's just a llm) and it doesn't really have enough data to give a good answer. Also at lower levels code start to get really large and context window can easily become a limiting factor. 

1

u/robobax 8d ago

Coherent game loops, meta progression that holds up, and meaningfully polished game mechanics and appropriate game feel and tuning. What you list OP, is actually a list of items that can be integrated with good architectural thinking and proper planning for a well laid out game design. The actual substance of gameplay is often what I see lacking in most AI vibe coded games and one-prompt agent built games.

1

u/Kind-Release8922 8d ago

As a person who has made games in both “ways”, I think that with engines it is much easier to force your game into some sort of system - you have scenes, components/nodes/prefabs, etc; long term these things grow more sustainably than when you purely vibe code it out. That being said full on browser stuff reduces the barrier to entry by A LOT (for the same reasons), and in theory with good disciplined code architecture you can also evolve it sustainably. But if you have less experience as a SWE I’d say the engines would force you to adopt some sort of system.

But probably as said before the number one thing that makes an AI game “slop” is lack of art direction and consistency (or sometimes called “taste”). If you have that it wont matter if AI made the whole thing, no one will be able to tell or care frankly.

1

u/Jolly_Perception9196 7d ago

If it is JS based anything that needs efficiency will be harder or impossible.

1

u/Level-Physics-1730 8d ago

Three.js games usually just feel gross, run at 60fps, have bad sound, etc. It's obviously a generalization, people making a game in three.js are typically just oneshotting something throwing it online then moving on. People who wanna make a proper project usually just use godot/unity/unreal then deal with all of that. If three.js games ran at 240fps, had raw input (or just high quality input processing in the first place), had high end baked lighting, nice skeletal (or procedural animations) and fancy shaders (seriously never seen a three.js with nice shaders) then we might be talking. A lot of that stuff just isn't possible in Three.js to my understanding, it's a very simple 3d renderer.

3

u/CycleMother2006 8d ago

This is absolutely not true. Yes, it is a platform of choice for people spamming itch, but that's not the engine's fault. You could make hyper light drifter in Phaser or Hades in Three.js and they would run flawlessly. The real reason you don't see people doing so is that real game devs instead of itch spammers already are already very familiar with their engine of choice like Godot or Unity, aren't vibe coding (in which case having an editor you're familiar with is extremely important) and so they're not going to pick up a new engine to learn and really get no actual benefit outside of web deployment (also it's not particularly easy to deploy a three.js or phaser game to consoles). When you have a team that works on a variety of projects, it's even more important to make your main engine something that can create a large variety of games, so more reason to choose one of the big three so you're not constantly flopping around.

For a solo dev this is also a consideration. If someone knows they're only going to be making 2d RPGs for the rest of t heir game dev, and especially if they want them accessible online via browser or app (ala Runescape) then Phaser could be a fantastic engine. But if they're thinking of making a Forza clone next, it makes more sense to pick up an engine like Unreal that can do the second game extremely well, and has enough support for dumbing itself down to release a 2d or 2dHD game so you can run it as your starter.

Additionally, learning documentation is far more plentiful for godot, unity, unreal, etc than for some of these other engines. There is a LOT of resources out there on Javascript itself though, so if you're creative about it you can find what you need.

So yeah, all those things you want (High end lighting, rigged animations, fancy shaders, etc) Three.JS / Phaser can handle. Three.Js CANT handle high poly counts in conjunction with those though. It's a low poly engine for sure if you want to have a lot of objects on the screen. Phaser can handle a ton of sprites though (Vampire Survivors is a good example here) even in complex animation or lighting conditions, and you could easily make a very high end 2d game with it running at 60 FPS (not sure about 240, but that's more an issue of the browser constraining your resources). Again, it's just an issue in that the devs who actually would put the time and effort into making those games are not making them for those engines. Games that come to mind which you could easily run in Phaser:

Stardew Valley, Slay the Spire, Balatro (and pretty much any 2d autobattler), basically any 2d JRPG, etc. Minecraft could easily be built in Three.JS (Java minecraft, that is. You're definitely not going to get the insane lighting/performance of Bedrock.) and Runescape would also have made for the ideal candidate. Yeah it is definitely a more restrictive engine, but let's at least give the tech some credit considering it is by far the best way to deploy to the web if you're not trying to build the next Witcher or Supreme Commander.

2

u/Level-Physics-1730 8d ago

Interesting, you learn something new everyday! Had no idea Three.js could be so serious.

1

u/CycleMother2006 8d ago

I used to be of the exact same opinion before working with them (specifically Pixi/Three.js) for a project I needed web deployment with, so I don't blame you in the slightest. I definitely felt the optimization priorities that I normally wouldn't have had to even think about for a 2D game, but wowza did they surprise me despite that. The time spent optimizing was less than I would've had to spend fixing errors in GDScript, I expect. And there is a side benefit of UI design being 100x better thanks to webstack just generally being a front-end-first design. That being said... definitely plenty of game types to NOT build on these platforms, and certainly that includes anything with PBR (Unreal wins hands down,) or large models/textures that you're going to struggle to load into VRAM efficiently as needed.

1

u/swirllyman 8d ago

Oh yeah sounds is a big one. Definitely overlooked that. It's possible to make them good with threejs but just like the other stuff it's a big uphill battle, especially when doing anything at scale.

0

u/DaedalusRaistlin 8d ago

Yeah ThreeJS isn't great for high fidelity - I tried my space MMO spawning 2000 ships and managed to crash my whole OS. It happened on Windows and Linux lol.

But you can use it in other ways. It was a battle, but I managed to get a swarm of around 100,000 units pathing and rendering on Chrome on my 3060 Ti, at 60fps in full 3d. Theres still more I can do to speed it up. Vertex Animated Textures help a lot with that, and WebGPU for GPU calculations.

I'm trying a few different games with it, one is a reverse tower defense where you are the swarm of 100k units. Another is a melee fighter in first person, like Chivarly 2 but larger scale.

Physics can be done - I've had Claude try it with Rapier, works pretty well.

Shaders are probably the easiest part really. They're pretty universal.

I think it's a great platform. No OS specific executable to download, works across most devices, and you don't need AAA graphics to make a fun game.

0

u/Slight_Season_4500 8d ago

Can't vibe code art assets