I asked ChatGPT to create three video games – this is what happened
Generative AI is making it easier than ever for people with no prior experience to experiment with writing code. But just how big a deal is the emergence of "conversational coding?"
Depending on who you are, the ability of AI to analyze, debug, and even write code, is either a game-changer, or a non-starter. I’ve seen strong arguments that generative AI is massively accelerating the speed and sophistication of professional coding. I’ve also seen people who code for a living dismiss it as limited and unreliable.
That said, most of the discussions I’ve seen and heard so far have been between people who are already adept at coding.
But what about coding novices?
To what extent do the latest iterations of generative AI platforms open up the ability to “code” to anyone — and especially those without knowing anything about the coding language that’s being used?
I’ve resisted diving into the coding abilities of platforms like ChatGPT for a while now. But an experience with using ChatGPT to help fix a website a couple of weeks ago made me realize I should probably bite the bullet. And so a couple of weeks ago I set about exploring ChatGPT’s coding capabilities with a very simple challenge:
Could I get it to create fully functioning code for three very different web-based video games, with no direct coding input from myself?
The three games — and the process of developing them — are described below, along with links that allow you to play with them (and a couple of bonuses in the addendum).
But before I get there, I wanted to provide some context.
Setting the scene
Even before the release of ChatGPT in 2022, there was growing interest in the idea of “conversational coding”. In a September 2022 article in Forbes, David Wright describes this as AI-driven speech-code tech that “has grown so sophisticated that it can empower everyday citizens to do things that previously required deep technical expertise—not to mention time.”
Wright’s piece focused on tools like GitHub’s Copilot, which required at least some familiarity with coding tools and environments. But with the advent of AI tools like ChatGPT that anyone can use to generate code, it became increasingly apparent that the bar to entry for coding had been reduced to point where anyone with a web browser could start experimenting — no coding experience required.
Since 2022 things have moved on apace, and we’re now at a point where it’s possible to open ChatGPT in voice mode and have a conversation about what you would like to create — a web page, an app, or instructions to carry out a specific task — and for ChatGPT to translate this into executable code.
With this new wave of conversational coding the user doesn’t even have to know anything about what’s happening under the coding hood — they just need some imagination and an ability to communicate in plain everyday terms.
This is a huge deal. It begins to redraw the line between what someone can imagine, and how that’s recreated on a digital platform.
But just how good are platforms like ChatGPT and others at conversational coding?
To explore this, I started with what may be one of the simplest and most accessible pathways to writing and executing code — creating games that will run in a web browser with nothing but HTML, CSS, and JavaScript (HTML being the language that defines the structure of a web page, CSS, or cascading style sheets, providing the styling that gives the page its looks, and JavaScript the code that adds interactivity and movement).
This decision is most likely cringeworthy to seasoned coders. But I went this route for a couple of reasons. Firstly, the barrier to entry is near-negligible for most people — anyone with a text editor and a web browser can write and run code in this environment. And secondly, the code is readily viewable, downloadable, and buildable-on by others using a browser’s “view source” function — making this an interesting way to share AI generated code for people to whom platforms like GitHub are a non-starter.1
I then set myself and my ChatGPT sidekick (as my platform of choice) three progressively challenging tasks:
Create a clone of the video game Space Invaders.
Create a game inspired by Pac Man. and
Develop a unique game created by AI.
Even though I have some experience in coding (but a long time ago and in somewhat esoteric environments),2 I made the conscious decision to rely on ChatGPT for the code, and limit my input to describing what I wanted, what I wanted changed, and what wasn’t working.
At this point I should clarify that the aim here was not to show how effective and reliable generative AI is in a professional coding environment. This is a somewhat complex and contentious question, and one for another day. Rather, it was to show what is possible for someone with near-zero expertise in coding who’s working with generative AI.
And a large part of this was getting a better sense of how generative AI-based conversational coding might open up creative possibilities for more people — much as AI-based image and video generation are opening up similar creative possibilities.
Working within ChatGPT, I started by using ChatGPT’s 4o model, and ending up spending most of my time using the platform’s OpenAI o1 pro mode. For editing and finalizing code I opted for the very simple text editor BBEdit. To share the finished games I uploaded them to a domain I’ve been using to experiment with custom-coded web pages: fvture.net.
Before I get to the games themselves, it’s worth noting that there are plenty of examples of people using ChatGPT and similar platforms to reproduce arcade games using HTML, CSS and JavaScript — although there are precious few people who actually publish these games as web pages!
For instance, Andre LaMoth has posted a series of classic video games recreated using ChatGPT on the website itch.io. These are also part of an online course he teaches on game development with JavaScript and AI.
Back in February 2024, Mikko Siikaniemi wrote a widely-read account of creating a novel game for touch screen devices using ChatGPT.
And inspired by my posts on coding with ChatGPT on LinkedIn, Mark Gill posted this link to a lovely recreation of the classic game Asteroids using ChatGPT.
I also want to give a nod to my colleague Riz Virk who is a bona fide game designer amongst many other things, and was inspired by my amateur efforts to start experimenting with ChatGPT 😊
These all give a glimpse into what’s possible through conversational coding. But as you’ll see below, I wanted to push things further.
So without further ado, here are the three games:
Invaders
My starting point was to work with ChatGPT to create a clone of the classic arcade game Space Invaders. I must confess that this was driven by a deep-seated nostalgia for hours wasted on playing the original Space Invaders in my youth, and a frustration for how hard it is to find a really good emulation.
This should have been an easy starting point for ChatGPT as the HTML/JavaScript for a simple Space Invaders clone is readily available on the internet — and is most likely part of ChatGPT’s training data. And so it’s not surprising that it only took a few times going back and forth with ChatGPT to come up with a workable outline of a game.
However, moving from the initial outline to the functionality that I was looking for took a lot more work. I started with GPT-4o working in Canvas (ChatGPT’s interactive writing/coding environment), but had to abandon this as the code increased in length. I moved to OpenAI’s reasoning model OpenAI-o1 as the code became more sophisticated. And I eventually found myself moving between o1 and o1 pro (the $200 per month version of the o1 model).
Through all of this, my role was to try executing code provided by ChatGPT, and provide feedback on bugs and features while asking ChatGPT for updates.
The end result was pretty satisfactory in my books. It differs in a few ways from the original Space Invaders — and while I could have asked ChatGPT to fix these, I like it as it is. The code’s relatively short at 854 lines (including comments), and was produced in a mere fraction of the time that I could have done this on my own (and to be honest, I would have most likely given up long before I reached this point).
The only manual inputs I had were finding suitable audio files and ensuring the code pointed to them correctly, manually defining the look of the sprites (ChatGPT really struggled here), and adding a few comments where necessary.
I did have some major issues with ChatGPT along the way — the biggest being its tendency to forget to reproduce huge swaths of code. I got around this by constantly reminding it that I wanted it to be diligent and to double check the code, and by frequently starting a new conversation while pasting in the previous version of the code.
The end result is though, to my mind, pretty impressive — especially as it’s the result of just a few hours of conversational coding.
If you want to check out the game, you can play with it here:
Jellyfish
Once I’d cracked Invaders with ChatGPT, I upped the ante and started work on a Pac Man-inspired maze game.
This turned out to be a far harder challenge. The first couple of iterations of the game simply did not work. ChatGPT found it incredibly hard to code the maze and navigate the sprites through it successfully. It also tended to get locked into a particular approach to the problem that it was near-impossible to jolt it out of without starting afresh.
One of the reasons I suspect for this is that ChatGPT (and most generative AI platforms at the moment) lack spatial intelligence, meaning they don’t have a learned understanding and intuition of how things behave and interact in an environment constrained by physical rules. Because of this, I found myself having to explain very clearly to ChatGPT — repeatedly — how the maze, the jellyfish, and the aliens in the maze, were to behave and interact as if they were in a physical environment.
But we go there. And once I’d got the measure of things, I began to find working with ChatGPT increasingly smooth.
The resulting game still has a few bugs — although they’re more like features 😊. And I really like the game play here, and how the game looks and feels.
Again, my only input other than conversational feedback was finding and pointing to the audio files and some minimal tweaking of the jellyfish sprite, as well as tweaking some parameters that affect factors such as how fast characters move (which I could easily have asked ChatGPT to do, but couldn’t be bothered!).
The final code was substantially longer than that for Invaders, coming in at 1537 lines with comments — something that added to the complexity of working smoothly with ChatGPT.
Again, this only took a few hours of my time — and I am pretty pleased with the result:
Windmill
For my third and final challenge I asked ChatGPT to come up with a completely original game, and one that focused on bringing joy to the user rather than competition.
It failed miserably.
The ideas that ChatGPT generated were simply not implementable.
But, inspired by one of those ideas, I was able to work closely with ChatGPT to develop something that I think might be original, and is certainly delightful!
The result was the game Windmill. Nearly every aspect of Windmill comes from ChatGPT. I provided an initial outline for the game based on that original idea from ChatGPT, and then gave suggestions on how the game could be enhanced. But much of what you see as you play the game came from somewhere deep in ChatGPT’s synthetic imagination.
Windmill is a game of discovery and serendipity. There’s a “machine” that the user controls, and “orbs” (ChatGPT’s term) that appear, disappear, and behave in different ways.
Over time, new orbs begin to appear with different characteristics, allowing near-endless possibilities for unexpected and quite delightful interactions on the screen.
In the game it’s up to the user to explore the space and discover what’s possible. There’s a lot that’s hidden, although pressing “I” does reveal a helpful “cheat sheet”.
Within the game there are 40 orb types (all with names selected by ChatGPT - and yes, there is a way of discovering their names), 10 special function keys, and a lot more.
This was far and away the most complex piece of coding out of the three games. The final version is 2036 lines long with comments. It also took the most back and forth with ChatGPT out of all three games to get it to where I was pleased with the result.
As I worked on Windmill, I found myself working more and more with OpenAI’s o1 pro model — in part because it seemed more adept at handling the length and complexity of the code. But I also found that there was a rhythm to asking for the next iteration then focusing on what I was actually supposed to be doing for several minutes as OpenAI-o1 pro reasoned its way through the changes.
As with the other two games, my only input coding-wise was adjusting the pathways to the audio files, adding comments as necessary, and making small tweaks to the behaviors of some elements.3
This is a game that I’m sure many professional coders will write off as somewhat simple and banal. But when seen as something that someone with no coding experience could create with a generative AI tool like ChatGPT, I think it’s pretty impressive and an indication of what’s to come.
Plus, this was the game that I had — and still have — the most fun with.
But that’s just me. See if it does the same for you here:
Final Thoughts
So what did I learn from this week-long foray into conversational coding with ChatGPT? The first thing is just how blisteringly fast and easy creating executable code is using generative AI. I worked on these games between the gaps of my “day job”4 over the course of just over a week. Add to this that I was just giving ChatGPT feedback on how the games were working — and not coding myself — and the results are pretty impressive.
The second is that this is not professional-level coding, but I don’t care. Putting myself in the shoes of someone who’s never created a web page before, never mind one that does stuff that brings them joy, the ability to use AI to do this a game changer. The exercise made me remember the pleasure I got out of writing simple code as a teenager back in the late 1970’s and early 1980’s — a pleasure I haven’t re-experienced in quite the same way until this past week. And for all that seeming banality of using generative AI to create simple games, that’s important.
Thirdly, it’s still clear that conversational coding has a way to go. Impressive as these games are, they are still limited by ChatGPT’s simulated understanding of the world. But this is changing rapidly, and I can imagine a not-too-distant future where conversational coding — essentially creating functional machines through conversations with AI — will be profoundly transformative.
And fourthly, this is yet another demonstration of just how far generative AI has come from the idea that it just regurgitates smooth but vacuous text from well crafted prompts. I’ve said this before, but the generative AI of today is most definitely not the generative AI of 2022.
Finally, I’d encourage anyone who’s interested to start experimenting with conversational coding using AI. All you need is access to a free app like ChatGPT, Claude or DeepSeek5 (more on this below), a way to edit and save text files with a .html extension, and a web browser.
You may be surprised with what you create with your AI coding sidekick!
Addendum
A few days ago — and after I’d finished working on the three games above — the Chinese generative AI company DeepSeek released their reasoning model DeepSeek-R1 to the public. The model claims to get close to ChatGPT’s o1 reasoning model, and so I was intrigued to test it out.
As a quick and dirty test, I asked it to create a clone of space invaders — as I did with ChatGPT above. DeepSeek drew on publicly available JavaScript to produce a quite passable game with just a few conversational back and forths. I only spent a few minutes on this, but the resulting game is quite passable, and can be played here: https://fvture.net/ds-invaders
What was especially impressive was the insight you get into DeepSeek’s reasoning process (which is intriguing to watch play out) and just how fast the model is.
Next I tried uploading the code to Windmill to DeepSeek and asking for enhancements with the following prompt:
Hi - below there are ~2000 lines of code for a html/javascript game that runs in a web browser window. I'd like you to look through the code, optimize it without changing any of its functionality, and add five new features that will bring joy to users.
Once you've done this and double checked that you haven't introduced any bugs, please return a complete line by line update -- do not miss out any code or replace code with placeholders.
DeepSeek failed miserably. It may have been the length of the code, but it simply could not provide me with the full updated code — instead insisting on returning snippets and incomplete code only.
In contrast, I gave ChatGPT running o1 pro exactly the same prompt. The result was very different. ChatGPT added five new features that are original and delightful, and returned fully functioning code.
I actually prefer this version of Windmill to the original — you can try it for yourself here: https://fvture.net/windmill-plus
And the really cool part of this is that anyone download the code, give it to ChatGPT, and come up with even more creative versions!
I think there’s a good argument to be made for this very quick and dirty HTML-based way of sharing code being a gateway to using more professional open source and collaborative environments like GitHub. It feels a little like people who learned the basics of coding using BASIC in the 1960’s - 1990’s progressing to more professional and powerful platforms because of that early introduction.
I was one of those 1970’s/1980’s kids who cut their coding teeth on BASIC. I moved on to Fortran 77 at college (really dating myself), and then spent years grappling with the unforgiving syntax of Mathematica — a rather esoteric math environment that had far reaching coding potential within its niche. I never graduated to the mainstream platforms of today like Python, for the simple reason that I had no need in my research.
Working on Windmill in particular, I found myself increasingly impressed by OpenAI o1 pro’s ability to walk me through how to make small changes to the code myself. There were times when it was easier to identify a couple of lines and make the changes myself under ChatGPT’s tutelage — and here, ChatGPT was a good tutor.
As any academic will know, there’s no such thing as a “day job” in academia. But the important thing here is that I was able to develop three games with ChatGPT while juggling everything else on my plate. That said, this was a sobering reminder of why I cannot afford to code at this point in my career — with a schedule where each day’s divided into meetings, deadlines, and unbreakable commitments, it was scary how close getting back into the flow of coding where time simply disappears threatened to bring everything crashing down!
Mark Daley posted an excellent article on DeepSeek’s R1 model just as I was posting this piece — worth reading: The Inevitable Public Good. The release of Deepseek's R1 is a wake-up call.
Can you post link to the full prompt for windmill? If I missed the link my apologies, please redirect me.