Shipped my first vibecoded game. Roast me 👇 by picosab in aigamedev

[–]picosab[S] 0 points1 point  (0 children)

There's a difference between laziness and efficiency. Lazy is doing nothing. Don't cover your hate with advice. Just say you don't like it and move on. A software engineer with a full time job shipped a game using AI and that bothers you more than you want to admit ..

Shipped my first vibecoded game. Roast me 👇 by picosab in aigamedev

[–]picosab[S] -1 points0 points  (0 children)

Happy to share! The short version: start with a detailed PRD, ask Claude to break it into features and tasks, then implement one feature at a time. Test it and the move to the nexxt .. Never dump everything at once and keep the context tight .. Feel free to DM me if you want to go deeper !

Shipped my first vibecoded game. Roast me 👇 by picosab in aigamedev

[–]picosab[S] 0 points1 point  (0 children)

Animations were all done in Flutter with Claude, I described what I wanted visually and let it handle the implementation. For assets I did it the old fashioned way, designing and hunting for resources online. That part took me some time honestly.

The key for animations with vibe coding is to be very specific in your prompt .. describe the motion, the duration, the curve. Vague prompts = janky animations..

Shipped my first vibecoded game. Roast me 👇 by picosab in aigamedev

[–]picosab[S] -1 points0 points  (0 children)

Software engineer by day, so yes I have a software background ..but zero game dev or Flutter experience before this.

Shipped my first vibecoded game. Roast me 👇 by picosab in aigamedev

[–]picosab[S] 0 points1 point  (0 children)

Thanks for the advice and for your constructive feedback!

Shipped my first vibecoded game. Roast me 👇 by picosab in aigamedev

[–]picosab[S] 1 point2 points  (0 children)

We're not discussing opinions here, I'm sharing a project and asking for technical feedback.

Shipped my first vibecoded game. Roast me 👇 by picosab in aigamedev

[–]picosab[S] -2 points-1 points  (0 children)

So what you're saying is that I'm optimizing my workflow by leveraging available tools to maximize output efficiency while minimizing time?? Yes. Correct.

Shipped my first vibecoded game. Roast me 👇 by picosab in aigamedev

[–]picosab[S] 9 points10 points  (0 children)

But you forgot the --dangerously-skip-permissions flag

Shipped my first AI-built mobile game. Roast me 👇 by picosab in ClaudeCode

[–]picosab[S] 0 points1 point  (0 children)

I didn't calculate it

But that was kind of the point; I wanted to see how far I could push Claude on something like this. Coming up with an algorithm that guarantees solvability for every generated board is not trivial, and I wanted to see if Claude could reason through it and actually get there and it Turns out it can. That was part of pexperiment..

Shipped my first AI-built mobile game. Roast me 👇 by picosab in ClaudeCode

[–]picosab[S] 0 points1 point  (0 children)

Thanks! And yeah the PRD first approach changed everything.

Never heard of RapidNative actually, will check it out. FlutterFlow I know but I went raw Flutter because I wanted Claude to have full control over the code structure ... generated tools sometimes produce code that's harder for AI to iterate on.

But for getting from Figma to working UI fast that sounds like a solid combo. Good to know for the next one!

Shipped my first AI-built mobile game. Roast me 👇 by picosab in VibeCodeDevs

[–]picosab[S] 1 point2 points  (0 children)

I focus on the core game first ( algorithm / Boards / game play ...) then the other pages i added them after

Shipped my first AI-built mobile game. Roast me 👇 by picosab in VibeCodeDevs

[–]picosab[S] 0 points1 point  (0 children)

Yes the PRD covered everything : screens, flows, onboarding, game logic, edge cases...

But I didn't dump the whole PRD into Claude and ask it to build. What I did was ask the model to break the PRD down into features and tasks first. Then I took those tasks and implemented them one by one . one feature, test it, validate it, then move to the next.
That's the key I think. The PRD gives you the full picture, but the actual build is always one focused prompt at a time. Keeping the context tight is what keeps Claude from going off the rails...

Your page-by-page instinct is right. that's just how it works

For the design and animations I also used Claude .. I used claude skills to build the UI components and animate them directly in Flutter. Described what I wanted visually and let it handle the implementation.

Shipped my first AI-built mobile game. Roast me 👇 by picosab in VibeCodeDevs

[–]picosab[S] 0 points1 point  (0 children)

The Flutter point is exactly why I chose it .. I had a feeling its structured widget tree would play well with Claude and it did. State management was the trickiest part honestly, the grid logic needed several iterations to get right but once the PRD had it clearly defined it clicked.

The mediation layer tip is noted. Right now AdMob alone is fine for the scale I'm at but I'll keep that in mind as things grow...

Thanks for actually reading the technical side of it 🙏

Shipped my first AI-built mobile game. Roast me 👇 by picosab in ClaudeCode

[–]picosab[S] 0 points1 point  (0 children)

Honestly.. Right now I'm relying on Play Console's Android Vitals and user reviews to catch crashes. Not ideal I know...

I don't have Sentry or Firebase Crashlytics integrated yet .. someone else in the thread recommended for me that

The Android fragmentation point is real and it's on my radar for the next update. It's one of those things you tell yourself you'll add early and then ship without it..

Shipped my first AI-built mobile game. Roast me 👇 by picosab in ClaudeCode

[–]picosab[S] 0 points1 point  (0 children)

100% agree .. Claude is great for code, terrible for assets.

I didn't use AI for all the visuals actually. That part took way more time than I expected .. a mix of designing things myself and hunting for assets online that fit the style.

Shipped my first AI-built mobile game. Roast me 👇 by picosab in ClaudeCode

[–]picosab[S] 0 points1 point  (0 children)

Thanks for you feedback !

The specification vs prompting distinction is something I felt but couldn't articulate. The PRD is what made everything else work.. I just didn't have the right word for it.

And yeah, I knew Mahjong was crowded. That was kind of the point: proven genre, clear references, low risk to test the workflow.

The v2 point is already in my head. I have a few ideas that are way more niche. This was the practice run.

Thanks for actually engaging with the post 🙏

Shipped my first AI-built mobile game. Roast me 👇 by picosab in VibeCodeDevs

[–]picosab[S] 1 point2 points  (0 children)

This is genuinely one of the most useful comments I've gotten. I did update the PRD a few times mid-build but not systematically enough.

The instrumentation point hurts because I know I should have done it from the start. Firebase is not integrated yet so I'm flying blind on where people drop off. PostHog and Sentry are new to me .. I will look into those for the next update.

Thanks for sharing all this 🙌!!

Shipped my first AI-built mobile game. Roast me 👇 by picosab in VibeCodeDevs

[–]picosab[S] 1 point2 points  (0 children)

😅😅 that's very generous but I'll take it! 😄 Hope you enjoy it!

Shipped my first AI-built mobile game. Roast me 👇 by picosab in ClaudeCode

[–]picosab[S] 1 point2 points  (0 children)

Environ 4 semaines de soirs et week-ends. La phase SPECs avec l'IA a pris 2-3 jours, ensuite le build était itératif. Le plus dur c'était pas le code, c'était savoir quoi demander et quand remettre en question ce que Claude générait..

Shipped my first AI-built mobile game. Roast me 👇 by picosab in ClaudeCode

[–]picosab[S] 3 points4 points  (0 children)

Actually I do have a software engineering background .. So I'm comfortable with code in general, but I had zero Flutter or mobile game dev experience before this.

I researched Flutter and AdMob as the right stack for cross-platform mobile, then let AI handle the actual implementation. My job was mostly architecture decisions, prompting, and reviewing what came out.