There’s a huge amount of this going on now – especially amongst You-tubers and casual developers. I’m not going to go into the positives or negatives of actually doing this, just document some of my experiments with it in future blog posts. I’ve been finding the process fun, interesting and it’s definitely taken my productivity through the roof, although I do get that a lot of developers – especially the old-school who’ve been at it 20+ years – believe that it’s lazy and a bad practice long-term.
Vibe coding is basically using an AI client to either help you or replace you in the coding part of a project completely. You can have it create source code files for you that you can copy/paste back and forth between your project ID and the AI assistance window if you’re an absolute masochist, or you can use the easy mode and use an editor such as Visual Studio Code or XCode to setup your project and then you can point the AI to the folder. Then you can dump in all the asset files you need and literally tell the AI what you want to create and let it get on with it. At least you can if you use Claude code, which is the AI assistant I’ve been using for a few months prior to writing this post. Other AI assistants may also have this function as well by now, but I’m just going to talk about Claude here as I think it’s the best.
Now it’s really not as simple to code as that, even though click-bait YouTube video’s will forever claim otherwise. If you’re creating an application then you need to know exactly what it’s going to do, how the user is going to interact with it, what functionality it will need and all this is going to have to be explained to your AI client. Fortunately for you, your AI client can help you with that as well. When I first started using it, I started simple.
I created a few World of Warcraft addon’s, which are just a couple of LUA files and got Claude to create them completely from scratch. One was a simple window showing money across all my characters and world bank, and another a simple addon that would automatically sell junk and repair my gear when I opened an merchant window.
I can’t remember what my exact initial prompt was now but it would have been something like “Create me an add-on to use in World of Warcraft that will automatically repair all my gear when i access a vendor that has repair option. It should also sell all gear that is grey or white automatically while there and output a report of how much cash was made as well as spent on repairs”
I had this working from a separate folder to where the addon would actually be used from the game so I would copy it across manually each time I changed anything and just /reload within warcraft to check it worked ok. From the initial prompt Claude created both the .toc file (a header for the game to know what it’s associated script is) and the .lua file and it worked first time.
Over the last few years I’ve been meaning to learn lua and even bought a big dummies book on it once because I had the notion that I could write some amazing fully-featured multi-tab windows with loads of functionality within WoW if I did. Naturally nothing is ever as simple as that and I never really did learn lua in great depth. But Claude knows it and, because it’s a language learning machine, it knows how to create code that will work in just about any language you point it at. I was still sitting there amazed that this had worked from the first prompt and I had an add-on that I’d tried many times before to write myself manually with no real success at all. Here I’d done it in around 15 seconds, allowing for my typing speed.
So, of course this gets you thinking. Well, did you write an addon really, or did you just describe one and get someone else to do the grunt work for you? I’m not really going to get into that debate, as I said earlier, but I’m happy to say that, if this means I’m the designer of something rather than the actual developer, then so be it. That’s how I look at it anyway, and I really don’t care if I never write another line of code again that I don’t have to. I will need to – because this AI coding is never perfect, despite what people might think – but my input will probably get less and less the more I learn about how to use Claude more effectively.
So, that was around 3 months ago and I was quite bemused because earlier AI attempts to code had been the copy/paste chat-gpt scenario’s where I could have done the same add-on but it wouldn’t have actually written it for me and have it ready for editing in my dev system – because that updates in the background. I’m still thinking to myself that AI isn’t going to write games – well, not proper fully-featured games – unless it’s simple space invaders clones, perhaps. It can do stuff like WoW scripting straight off the bat so what else can I do with it?
I resisted the urge to go and create the next greatest app ever made at the time and set myself a boundary instead. What could I do to improve on the little addon I’ve just written instead.
First I added a simple gui window to the addon as a small mini-map icon which could be clicked on to open this window or right mouse button could be used to drag it. This all also worked fine so I got ambitious and started adding text, saved settings, the option to use guild bank for repair costs if available, a selection box for the highest gear level colour so automatically sell at a vendor and made it look a little neater. This all worked fine as well, and without a line of code from myself and I even put the addon online on the Curse system so that other players could download and use it, should they wish to. There’s a lot of addons that do the same thing out there but mines been downloaded in double figures now, i’m sure. I even updated it for the expansion launch of Midnight.
That’s really how it all started. After this I created a few more wow addons – some uploaded for other people to use, some experimental, and a couple specifically to help me with how I wanted to play the game. I made a decision then that most of this stuff I had already done with Claude Code would be made public in case anyone else wanted to make use of it. I’d only done the design stuff after all so I didn’t feel I had to keep it all to myself.
So my website got updated next, which is why this blog looks different now. I’ve only done a parse on it to get it functioning and add useful stuff like terms and conditions, etc. I need all this stuff available if I ever want to put anything on the Mac app store or other platforms so it’s in place now, even if the site doesn’t look very pretty. Hopefully I can use Claude to help me fix all that at a later date as well.
After doing the website parse, I got to thinking about another online game I play a lot, which is Torn. This is a text based RPG game played by a lot of people all over the world and it has a pretty good ranked war system in it so factions can go up against other factions to beat each other to points total for loot and currency. I spent a week of evenings working on a full html page which could integrate with the Torn API and display information and quick links for attacks, as well as a huge amount of other information that made it easier to do all the war battling from that portal instead of the game itself. My faction are currently using it and it still gets the odd update when I realise something is missing or broken. You can find that via my git page as well, although it won’t be much use to you if you don’t play Torn itself.
The html page for Torn ranked war illustrates another extremely powerful ability that Claude Code has for working on projects, and that’s integration with other systems. A lot of online resources, apps and games have open API’s these days so that players can do things like mod games, extend functions in apps and use the API to access resources outside of the main program to run scripts to pull information and so on. Most of these will have detailed manuals you can spend hours poring through to find the right way to access some particular functionality or information. Or you can just let Claude do it for you. You can guess which option I prefer. I don’t know much html modern syntax, apart from some simple stuff I do at work, and I certainly know very little about how to work with Torn’s API but the ranked war sheet looks like a professional effort because Claude does. And, if it doesn’t know a lot about a subject, and can’t find much on the internet about it, you can supply it yourself. I gave Claude a copy of the Vic 20 programmers guide in its work folder so it could help with a simple code test I was doing, for example.
So now is where we get to games and this is where I’m mostly still thinking that AI isn’t going to be the answer to that. YouTube would suggest otherwise but most of those people claiming vibe coding games is the way forward aren’t really creating games, they’re just recycling old ideas. No AI is going to come up with some of the creativity we’ve had from human game designers over the years, and outside of asking Claude to recreate space invaders (which I have done a few times with different classics very successfully), you’re not going to get very far. But one thing I do believe is that Claude will help massively with creating the tools developers need to create the games they want to make.
Sure, Claude can create games based on what you ask for, but it’s pretty crap with doing artwork and sounds, and a game developer has very specific requirements for a look, feel and balance in their work. You can vibe code your way to recreating some belting classics, though, and I’m going to illustrate exactly this in a later post, but I don’t think it’s smart to try and get a tool to do the whole job for you with those. So, aside from a few simple gamemaker tests and some simple html and java built games (such as Numodus on my website), I’ve not created any new idea for a game from scratch. It will still help you with specific parts of developing a game for sure, but I really could not recommend trying to do the whole project this way.
So, as well as the other projects I’ve written about already, I’ve done some app development and put a few projects under my belt using Java, html and Swift. And this is where vibe coding really shines.
I wrote what was originally going to be a shopping list app and then kind of rejigged it to cover multiple files instead and called it the frightfully inspiring “Linked lists” – yeah, that’s going to catch on. This was done with Swift and XCode and also demonstrated the use of an external system integration as I made it use the cloud for storing information so the app then became useable on both an iPhone and a Mac. I use this all the time (ironically mainly for just shopping lists) because I can type in stuff to remember on the computer and then it’s on my phone when I need to look at it when wandering through Tesco’s.
After that there was no stopping me. I created an iPhone app for showing the locations of all cafe’s and restaurants that had vegan options on google maps within a 5 mile radius for the missus. That one had to integrate with google data so i needed to set up an account to interact with that and do some settings stuff before the linking could work correctly. Claude talked me through all that.
Next up were a couple of small apps including one to play .psid files that is the format for c64 music because I’m a huge fan of the tunes from back then. I also put two big projects on the go more recently that are more than just a few hours of jabbering with Claude to get something simple up and running. I’ll do a complete post on both of them separately because, as you probably noticed, most of the stuff I’ve done is pretty much just reinvent the wheel and do my own versions of things that already exist. So, it’s like I’m reading a story and then writing my own version which keeps the main theme but might change a few things in the background and add/remove bits. There’s probably no real reason for me to do this, unless i was adding some killer features that I specifically required that a tool I had didn’t cover, but it came back to the same three word counter-argument in my head. It was fun. And vibe coding really is.

