I decided to stop implementing the game's architecture in html/js/css, and port to godot. Chatgpt was able to create a plan for converting the browser-based client into godot, then implement each step. This honestly feels like magic to me. I'm not like the best coder in the world, and I'm not the worst, but there's no way a single person could convert an entire project like that over the course of a couple of hours over the course of a few days. The fact that it's able to edit together godot projects at all surprises me.
Granted, the only real reason why this was so straightforward was because there was a full canonical functional project prototype that was already in code which I've built up iteratively while continuously assessing that the project is following standard game development structure. Additionally, since the idle game is an online game, it was only building the CLIENT in godot; it just needed to connect to the existing functional server-side php api. So it basically just had to rebuild the sponge being rehydrated by server data.
Having said that, I genuinely cannot use AI this way anymore. The reason is because I've hit my own limit on what I know about software development, and I'm at a point where I'm no longer able to prompt specific architectures I already know how to implement. As someone with no professional software developer experience, it has already felt diffcult for me to interact with a codebase I didn't manually write myself. But if I move forward without prompting the setup I want, it would cut me off from the codebase entirely.
For example, in turn-based battles, you generally need to have a battle schedule to know what sequence of events play out after inputs are taken from the user. After selecting moves, the game needs to know the order of things to display, like dialogue boxes to click through, showing which attack animations on what character (attack animation assets vs sprite motion code like sprites shaking from being hit), or declaring things like special kinds of hits. This generally needs to be handled by a controller. Even though I asked for a battle scheduler, I have no clue how this was actually implemented or how to make contact with it. I specifically asked for resuable sprite motions (e.g. jiggle, move-forward-then-back) as a compartmentalized feature that is fulfilled by a data-driven contract for authoring (I'm only 45% sure I'm using those terms correctly). Basically, I asked it to package code together in a way where I can just write what I want in data form ("Bump attack; user jiggle animation;") and the code is structured to take that in and play the right animation for the right attack at the right time. But aside from literally modifying the json to specify an attack uses a specific named animation, I don't know how to have a greater hand at playing around with how attacks are displayed. It's opaque to me, and that's a problem.
I want to report this in case it helps assess what AI is doing and what its limitations are. If I'm interpreting people's words with my own experience, I would say that when people talk about "AI addiction", this is sort of what they mean -- people (like me) become dependent on using AI because they have delegated so much of the workflow that they essentially don't know how to replicate the workflow themselves. They can't jump back in.
I'm not personally sure how I feel about the term "AI addiction". The main reason is because, in my experience of AI, it's a very weird use of the term "addiction". I would say that it kinda over-emphasizes the structural elements of addiction, but it also kinda reeks to me of morally condemning chemical addictions as being morally bad. I only ever see people use the term "AI addiction" when they're saying that someone is being morally bad for using AI. And I think that these three things are separable conversations: criticizing someone's use of AI (ranging from delegating/replacing paid work to other concerns), commenting on someone's patterns as addiction, and determining that someone is morally tainted for a behavior they've done. That last one is the one I don't find to be a useful conversation, because it sounds to me mostly like puritan Christian theology.
I guess some part of me thinks that if structural dependence is addiction, that term becomes broadly applicable to a bunch of errant cases. I don't know if students are addicted to teachers because they depend on them for learning. I don't know if people with alternate abilities are addicted to accessibility. I think people might be slinging around the term addiction because they're trying to use strong words to accuse people of lying about their ability and work. My concern is that the genuine need to express concern is getting muddied up in people's need to be seen by algorithms. I called this section AI dependency but I can understand someone if they call it AI addiction.
Even though I think this is useful to report, I still don't think it's straightforward. I don't have software engineering experience but I DO know that software engineers are not personally familiar with every single line of code in a program they work on. I think in some ways the skill that I lack isn't that I don't know every single line, but more like I don't know how to interact with a project where I don't know every single line. That's a genuine bottleneck cuz any sufficiently large project will run into that problem.
I would say that the delegation aspect of AI spins into questions about labor, an even broader conversation. Cuz like, on the one hand, people becoming dependent on AI for their workflows really stinks to me of management delegation. It really does sound like managers who can't do the work themselves. It calls into question what the delegator is actually doing. And none of that is magically new conversation.
On the other hand, people complain about AI replacing previously compensated work (which is a fair complaint), but I get an icky feeling from that depending on how it's said. I definitely sympathize with the part about people feeling that others (especially management-types) are actively forcing a view that their previously compensated work is no longer worth compensating. That's a major problem, particularly in a world where people have been expected for like the past 100 years to train for their entire adult lives to fulfill particular functional roles. But I also feel a bit weirded out when people talk about their work as if it IS their value. It makes me feel like people are convincing themselves to go back to do grueling things becaues they buy into the societal contract that this is sufficient for them. In my head, I'm thinking: when industrial looms replaced loom workers, was the goal to stop industrialization to preserve loom work so that loom workers still had to toil? Or was the goal for the loom workers to collectively organize so that they owned the loom machines? I feel like collective organizing is more important than an abstract conversation about what counts as compensatable value.
Right now, I tend to be reminded of "I don't dream of labor" with regard to coding specifically. I've coded the observer pattern manually before. I'm sure that it's feasible I would get more knowledge out of implementing it more times manually. But I'm not trying to become maximally capable at the observer pattern, and it's not necessary to become maximally capable at using the pattern to become a game developer. Spending time mastering a single piece actively takes me away from the thing I want to get skills on -- making a game. As someone who does stuff across a really wide range of domains, I would go as far to say that if you expect a creator to be highly knowledgeable about every single part of what they made, you really don't understand...digital art, or music production, or video game development, or even toasters.
In light of the previous journal entry, I obviously don't think about creative work (drawing or writing or even programming new architectures) as being replaceable, because creative workers are shaped by the act of doing. Coding a standard game controller or event bus or doing a data-driven refactor isn't going to change me substantially like the first time did. These are standard architecture like how a 2x4 is a standard piece of wood. But art and writing is transdisciplinary, especially because humans engage with it at every level while doing the work. Nothin about my use of AI has indicated to me that AI can transform you like the act of creation does.
That's all to say that I DO think I'm missing out on something significant if I cannot open my own godot project and know what to edit where. The more concrete code is stuff I can edit directly, but the deeper architecture less so. I'm figuring it out.
Anyway this is just me riffing, and I'm not very educated on this stuff. I'm happy to learn more about stuff related to the topics above. One ridiculous consequence of using AI is that I've gotten a ton of practice writing quickly. I write so much and have to cover so much ground for prompting that I genuinely type pages of shit a day nowadays. I started writing and looked up and this whole page was filled.
In other news, I can't believe I didn't know about the walrus operator in python until recently. So many times I wanted to assign and store len()...so many times.