Pinned Tweet
After shipping viral single-purpose web tools, I wanted to build something with real depth. As a solo dev, I just launched 18 Days: Kurukshetra: a tactical Mahabharata card battler built with multiple AI agents.
Here is the stack, the tools, and what broke along the way: 🧵👇
1/ Why build this?
I have been gaming for 20 years. Thousands of hours across RPGs, turn-based strategy, and tactical card battlers like Gwent.
I also grew up with the Mahabharata. It is one of the richest, most dramatic war epics ever told. Endless lore, legendary warriors, tactical boons, vows, and divine astras (weapons).
Most importantly:
• Zero IP encumbrance (public domain)
• Nearly 1 billion people grew up with these characters
• Almost nobody has built a deep, tactical card game around it
2/ Respecting the lore: Hand-reviewed cards
I refused to build a game that just slaps Indian names onto generic fantasy cards. Every card, warrior trait, and ability was reviewed by hand against original texts. Examples:
• Bhishma cannot simply be destroyed in frontline combat while his death-vow stands.
• Karna fights without armor (having sacrificed his Kavach before the war); his gameplay revolves around his single-use divine dart Vasavi Shakti and fatal curse triggers.
• Divya Astras (divine weapons) are not random dice rolls. They are tactical spell strikes with exact requirements and counters.
3/ Two distinct ways to play
• Tactical Card Battler: 3-round competitive lane warfare with strict 170-point army budgets, where positioning and synergy decide the day.
• RPG Story Campaign (The Chronicles of Kurukshetra): A 60-chapter narrative RPG with branching dialogue choices, moral dilemmas, and tactical combat encounters.
4/ The big bet: Web-first
Everyone asks why I didn't launch on Steam or mobile app stores first. My reasoning:
• Zero friction: Anyone can tap a link and be in a battle within 3 seconds.
• Distribution control: No 30% app store tax, no arbitrary review delays, and no fear of sudden delisting.
• Rapid iteration: I can ship daily balance patches, UI polish, and story chapters instantly.
But fear not, Android and iOS apps are coming next :)
5/ How a solo dev built this: The agent setup
Building a game of this scale solo sounded impossible to me. The secret was running a dedicated trio of specialized AI agents on local branches:
• Claude: Core game engine reducer, rules, and mathematical balance.
• Codex: Test reliability, Playwright suites, and battle simulation checkers.
• Antigravity: UI presentation, card visuals, and story choreography.
Artwork and videos have been handled by workflows created in Adobe Firefly, Meta, Codex (GPT 2.5 family) and Gemini (Google's video-gen family).
6/ The upsets and breakthroughs
It was not a smooth straight line:
• Balance chaos: Early on, a single overpowered weapon broke 50% of matches. We had to build an automated simulation harness running over 10,000 bot battles overnight to keep card win-rates in check.
• Agent coordination: Managing multiple AI agents meant building strict merge gates so they didn't collide or overwrite work.
• Tactile feel: Making a web game feel like a native, responsive obsidian console on a mobile phone took weeks of CSS and animation refactoring.
7/ Follow the journey
18 Days: Kurukshetra is live right now. Free to play on any phone or desktop browser [link in comments]. I am going to build this in public and share everything:
• The exact tools and agent prompts I use
• Daily analytics and commercial traction
• Game balance math and marketing experiments
• Every upset and every breakthrough
If you are a builder, gamer, or indie hacker, follow me and come build this with me :)
I've always been fascinated by the lifecycle of stars. Here's my videos about it made with Opus 5.5 and a custom harness
Gemini and Codex can do the funniest thing here and incorporate their Gen AI features to work alongside code.
[I've been doing this already but they still can't match the reasoning of Opus 5.5... yet]
This is most likely the latest Fable 5.5 checkpoint. The video is pure code.
Fable 5.5 will change the entire game. Im speechless. And yet, 99% of folks outside of our bubble have no idea.
h/t @chetaslua teapawt.net/chetaslua/status/21171…
Built this explainer video with Claude Code and multiple agents. No Generative AI here: every single frame is rendered directly from code.
How it works:
• Research agent drafts the script
• My voice recording
• Coding agent builds 3D scenes in three.js (headless Chromium)
• Whisper syncs the captions
• QA agent checks framing & overlaps
• Same code exports both 16:9 wide and 9:16 vertical
Stack: three.js, Playwright, FFmpeg, whisper.cpp, and Google Flow for the music.
Took 28 iterations to dial in. First attempt, but deterministic code gives you control video models just can't touch.
Will keep improving with future tries :)
udipta basumatari retweeted
Live gameplay from 18 Days. Round 3 decider: Pandavas vs Kauravas. ⚔️
Arjuna vs Karna on the board, and Divya Astras firing on both sides down to the wire. 🔥
Watch how the final turn unfolded. 🏹
Link in comments.
Balancing 3 asymmetric factions nearly broke my game. ⚔️
Solo Dev Log #4 is up:
How I ran 7,200 simulations to balance three lore-faithful Mahabharata armies, and why my tools kept lying to me.
Full breakdown below. 🛠️
#solodev #indiedev #indiegame
Free credits don't matter if the product is too slow to use. Codex keeps topping me up, but the performance is just impossibly lagging.
Shifted most of my work to Gemini on Antigravity and it runs like "Flash"
Solo Dev Log #3 - Video workflow
I already had the artwork. This time, I worked with Codex to turn it into a two-minute video using JS 🎬
Wrote up the process, the iterations and what still needed a human eye. Saved the workflow as a skill too. 🛠️
udipta basumatari retweeted
⚡ ANDROID CLOSED BETA IS LIVE ⚡
We need 15 ruthless testers to battle-test 18 Days: Kurukshetra 🏹
FIRST 15 TESTERS GET LIFETIME VIP:
- Free Asura Pass
- Full 62-Chapter Story Campaign
- No ads forever
Drop a comment below and we’ll DM you the link immediately! ⬇️
Rightly said, AI is just another tool. What matters is the output, and whether the audience enjoys the product.
When I was writing Unreal Engine 1, my time was divided as follows:
- Around 30% went to seriously deep coding on hard problems: assembly language texture mappers, C++ BSP trees, data persistence, object oriented systems design, and networking.
- Around 70% was just typing and refactoring large bodies of code needed for a complete engine feature set. This was not hard, and while I was doing it my mind was mostly on the deeper coding topics, thinking and planning for what's next. It didn't feel much different from vibe coding today, except that it was just me typing code on an IBM Model M keyboard rather than prompting it and reviewing the results.
So, it has always seemed perfectly logical that we would rely on AI for that 70%, once the AI could do it with a similar quality standard as we could, which has never been perfection. It came as no surprise that, after a few years of AI model evolution, it was able to take the reigns on that 70% and free up programmers' time for more valuable tasks.
What's more of a surprise is the emergence of AI as a sort of insta-Carmack able to solve hard technical problems quite cleverly and often cleanly, and that it's able to reason about and work in complex 3D scenes both by operating the tools and by directly understanding the raw data files.
I abandoned assembly language in 1998 when out-of-order CPUs made much simpler C/C++ code faster, and never I missed it. If prompting through architectural documents, concept art, and design plans can transcend typing code and tweaking vertices, that will enable developers to spend their time on higher-level, higher value technical and creative tasks.
What matters is the end product, whether it's a game or an engine. Anything developers can do to try out more ideas and make better software and games faster is a win for everyone.
udipta basumatari retweeted
Game tip: Your army has 3 lines: front, middle and back. 🛡️
They are called Rathi, Atirathi and Maharathi. Each warrior's card shows where they can stand.
Before deploying your favourite, check their line. Fame is not a seating pass.
Link in comments.
When Oppenheimer quoted the Gita and said "Now I am become Death, the destroyer of worlds", this is the moment he was talking about.
Not the benevolent creator image that became popular.
Took GPT 2.5 Flare one shot to create this, autonomously.
Wow
This is the Jev explainer for business owners from a non-developer.
I sorted 20,000 emails, slacks and transcripts last night into upsells, complaints, missed follow ups and 5 other things.
It took 7 minutes and cost $1.45.
The short version:
Don't think of Jev as another model. Think of it as a tool for your models.
Claude or GPT does the thinking and works out what questions are worth asking.
Jev answers those questions across everything you've got. Fast, and for almost nothing. "Is the person in this email disappointed in our services?"
It can answer a bunch of questions at once, too. ( something that current models can struggle while keeping accuracy.)
"Are they disappointed" + "is there an upsell here" + "did we use the right opening line" + "is it a technical problem". Adding questions doesn't change the price much. Jev charges on input tokens - output is free.
Long Version: So why does that matter for business owners?
Because unlocking the next level of AI in a business isn't about a better model. It's about better data.
The models are good enough now. The constraint is your data. Anything actually useful, spotting a problem before it lands, knowing which customers are about to leave, needs data that's been organised well enough to learn from. Most businesses don't have that.
You've probably heard the terms structured and unstructured. Your emails, calls and messages are unstructured. A pile.
Having the pile is one thing. Turning it into something you can count, trend and act on means putting a tag on every single item.
That's the whole job Jev does, and it's the step most people skip because it used to be expensive.
Two things I'm excited about doing with it.
1. Mass classification, for cheap.
You can now tag every email, call and message you've got against as many questions as you want, and redo it whenever you change your mind.
That's what makes a better second brain possible. Here's how.
Everyone on Twitter is building a second brain. Plug in your emails, calls, docs, Notion, Obsidian, whatever, ask it anything, it knows your whole business.
But it is always reactive. waiting for you to ask a question.
To make it proactive - flagging stuff for you without you asking - something has to keep re-reading your data looking for things you care about, and that gets expensive fast.
The cheap way, (and until now the only way), is to tag everything as it arrives so you can query the tags later.
I tried that. Thought I was smart. You have to sit down and answer: what will I want to know about this data? What should I be tagging for right now? what connections do I have to make.
And you'll get it wrong, because the technology is moving too fast to plan around and we are all building as we go.
So you pick your ten tags, feel good about it. Six months later you launch a new service and want to know which existing customers have been asking for something like it. That tag doesn't exist, and nothing before today has it.
Until now the choice was rerun the whole history through an LLM, which is a proper project with a proper bill, or live without it. Most people live without it.
With Jev, retagging the whole history is a few dollars and a few minutes. So you stop trying to predict. Tag what matters today. When the business changes, retag everything.
2. Re-analysing old data for new patterns.
If you've got a tonne of historical data, you can now structure it fast enough to actually learn from it. So you can use your tags (and retags) for pattern analysis.
Say you've got three years of customer emails. Tag every thread for what the customer wanted, how we handled it, how it ended. Then ask what the ones that ended well have in common. Which way of communicating led to a good result, and which led to a bad one.
I run a call centre, so here's mine.
We do hundreds of thousands of calls a day and we do our best to classify them.
Every call goes through an LLM and we ask it: "did they use the opener", "did they handle the objection", "did they ask for the appointment". Three or four things.
Metrics I pulled out of my ass after a few years on the phones. It's what I think a good call looks like.
Whether it actually is, I've never been able to check properly. At that volume, changing the questions and rerunning everything is a project I'm not equipped to run.
Now I can hand the LLM the transcripts and the outcomes and say: come up with some hypotheses about what actually leads to appointments.
It comes back with twenty. Did the caller use the prospect's name ten times. Did they mention a neighbour. Did they give a reason for calling in the first ten seconds.
I point Jev at the history, reclassify every call against all twenty, line it up with which ones booked, and see if there's a pattern.
Throw out the ones that didn't matter, ask for twenty more, run it again.
None of that is new btw - It was just expensive and complex, and now it isn't.
Both of these are the same thing underneath. You've got a pile of unstructured data, you've got questions about it, and the questions are going to change.
Jev makes asking, and re-asking, cheap enough that you don't have to be right the first time which is great because businesses are more data driven than ever.











