Vibeoverflow: A Game Development Postmortem
Good old times
When the theme "Old Tech" was announced, I think many people thought not only about the 80s and 90s, but also about much more recent times, like the early 2020s, before the rise of AI, when we all had to dig through code manually. I wanted to recreate that "good old times" feeling in this game, and obviously, that meant making a programming simulator.
The hardest thing to implement and the most boring thing in terms of gameplay. Seriously, I could have just made a shooter with cassette tapes and CDs, but that wouldn't have been the same. My heart told me to make a simulator of pre-AI programming and dedicate this gag to all my colleagues who now hand over massive low-level tasks to AI. After all, I've become one of them myself. In recent years, I've mostly been focusing on game design, asset preparation, and software architecture, while leaving the tedious tasks to AI.
I came up with a concept involving a code editor, a mini-engine, bug fixing, and Stack Overflow. And of course, I decided to make the game without AI. I thought it would fit the game's concept, and it would also be a great personal challenge. Besides, I have a looooot of experience writing my own engines from scratch, parsers, and interpreters. Although I'd previously done all that in more flexible programming languages, rather than GameMaker.

GameMaker has neither regex nor text boxes that could have sped up the whole process (and I didn't want to use any libraries). I wanted to make everything in 48 hours, entirely on my own, and submit it to the Compo category.
First 48 hours
The first two days passed, and during that time I managed to build the foundation for the interpreter and the engine, as well as the code editor. I felt completely exhausted, and it seemed like I only needed one final push to finish everything before the Compo deadline. But I decided to give up and let my brain cool down.
I avoided using AI in any form. I even tried not to look at the AI suggestions Google displayed below the search bar.
As a result, during those first two days, I implemented a system that translates commands into the mini-game's Entity system, a code editor, a parser, and an interpreter. A very limited interpreter, though.
What it supports:
- Functions with arguments
- Variable declarations
- Increment and decrement
- if/else
- A built-in set of constants
- Accessing variables from other objects
What it doesn't support:
- Loops
- Mathematical expressions
- Most compound expressions
- Possibly even multiple function calls within arguments on the same line
- And pretty much everything else you'd expect from a typical programming language
Nevertheless, I think the language I've written is * Turing-complete *, so it'll be interesting to see what some players might be able to do with it :)
Maybe you'll even manage to create an entirely new game using what I've built!

The Last Day of Development
The last day was spent drawing graphics, debugging, debugging, debugging, debugging, and debugging the entire system. Finishing the actual mini-game inside the game. Generating sounds.
I kept putting off implementing Stack Overflow until the very last moment because, "Well, that's easy. I already have an idea in my head of how the code will work, how the forum system and comments with hints will function."
In the end, there were only 2 hours left until the deadline, my brain was melting, and I still hadn't finished everything.
I had two options:
* Not use AI until the very end. * Release an unfinished game. I think I would have been really upset that I hadn't managed to communicate the main idea and the gag to the players. It would mean I'd spent three days writing my own mini-engine for nothing, since the engine itself has no real meaning or value without the rest of the game.
* Use AI to finish the game. * In that case, I could no longer be proud of how I'd avoided AI during development. I couldn't brag about it anymore. And the whole concept of the my performance would fall apart. It just wouldn't work anymore.
So I had to choose between sticking to my self-imposed restrictions and treating the development process as an art performance, or communicating my idea through a working game. * In the end, I chose the second option. *
Betrayal or a New Hope. Last 2 hours
The last 2 hours were spent writing prompts for Codex, which saved the whole situation.
It created the Stack Overflow page using the sprites I'd drawn, implemented the hint system and connected it to the gameplay and errors. It even wrote a nice particle system for my 3D engine and added character dialogue.
The game was ready to be published. I was really happy with the result, because it was exactly what I'd imagined, one-to-one.

How I Feel About It
Did I enjoy the process? More no than yes. It was extremely frustrating because MORE THAN 50% of my time was spent FINDING BUGS and fixing them. Several times, I spent two hours just trying to find and fix a bug in a single line of code.
At the same time, of course, it was satisfying to come up with a primitive parser system and a simple entity system with a mini-engine. Maybe I even felt a bit nostalgic for the days when I used to write things like this in Pascal.
I don't know how I would have felt if I'd made everything using AI. * What took me three days, AI could have done in 30 minutes. * And probably done it much better, too. It likely would have built a full-fledged parser supporting all the usual programming language features, complete with syntax highlighting and a reactive engine. But would that have impressed me or anyone else? At the current stage of AI development, no. It wouldn't impress anyone anymore, and my project wouldn't stand out in any way.
Now I realize that I should have changed my original rules to smth like: not a single line of code could be written by AI, but I would at least allow AI to help me find bugs in my own code.
Then I probably could have completed the challenge, and it would have actually meant something. Or maybe not? After all, isn't debugging part of programming too?
In any case, I'm happy with the result and glad that I get to share my idea with other people.
anyways, good luck! 😀