when I started writing my engine, my expectation was that it would take 4 to 5 years to get it to a level where everybody could use it.
instead it took 18 months, and that's because I only even started using AI code in July, after Fable 5.
the actual core runtime of a game engine (the part that actually matters), can be written by hand by an experience programmers in a couple of months give or take.
the problem is the sheer amount of glue code you have to write to make it usable: editor code, serialization code, supporting different graphics features per platform, refactoring systems to make sure everything works together without impacting performance, the list goes on.
that kind of code is neither fun to write nor an exercise in technical thinking, and it made up 70% of the work before.
now we have automation for a big part of it. not for the thinking part imo (Fable knows every trick in the book but it seems to struggle with deciding what to do with it), but for the manual work that came after it.
this will simultaneously unlock incredible progress, and incredible disruption. programming doesn't look the same, jobs don't look the same, running a company doesn't look the same. we will have to figure out the new normal in the upcoming years.
do I miss writing code? every day. I went through rough times this year trying to come to terms with this new reality. part of me wants it back, the other part is excited about what the future will look like.
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.