How are you using AI in your project? What are some pros and cons? Has it made you a better programmer?
For my group project, we chose to implement an Escape Room game using a 3D engine. At first, we decided to use the Godot engine. After about a week or two, we decided to switch to Unity.
I think it’s fair to say that I have zero experience developing video games. Right before I started the post-bacc CS program, I went through the online course CS50x. In the first week of that course (at least in the 2021 version), the student makes a simple game in Scratch, which I would describe as no-code (or maybe low-code). Trying to learn a 3D engine, and trying to use C# for the first time, is a whole different story. I spent a week watching Godot tutorials, and when we switched to Unity, some of the knowledge transfers over, but I basically started over with Unity tutorials.
All this to say, in the last month, I have dived into two different game engines, and went from “I’ve never used C#” to… I’ve used C# to implement features of a 3D escape room game. Even if you use assets some else developed, you need to understand the engine, and understand how to use code to interact with game assets, and integrate features of the game. There is so much I don’t know, and I’m still wrapping my head around the sheer amount of information I’ve come across in a very short amount of time.
This is where the ability to use AI, and specifically, LLMs, has been extremely helpful. Everything takes time, which is a resource I find is very limited right now. I work full-time for a position I commute to four times a week (50 miles each way ~= 400 miles a week). I have young children, and I’m trying to take two courses in order to finish the program this term. With the limited time I have, I need to complete tasks quickly. Taking the time to fully understand how the game engine works, or trying to learn C# to the same level that I know Python or SQL…it won’t happen in ten weeks; not with my other responsibilities.
I am relying on AI heavily to get a jump start on writing C#, and even understanding how the game engine. Googling things often means reading through someone’s absurdly long blog post in order to find an answer to a basic question (sound familiar at this point?). I use LLMs as a replacement for Google. The newest ones (Bing/Bard) are connected to the internet, which means they can link resources and sometimes cite their answers. I am using Bing because it’s based on GPT 4, and it’s free. I use it to write code, debug code, and complete tasks such as finding assets. I’ve used it to find other tools, such as a tool to convert 3D models from one format to another. If I feel the need to Google something, I almost default to using the LLM now. I throw it in chat, and sip coffee/tea while it goes to work.
Sure, there are downsides, but I don’t see them as very different than the downsides of Googling a question. The answer I get from an LLM might be wrong, and it sounds really convincing. How is that any different from the Medium blog posts that are written by a college student that used a piece of tech once and then decided to blog about it. It seems like Googling often leads me to someone’s blog post.
The way I address ‘hallucinations’ is to treat the LLM like a junior dev. I ask the junior to do something for me. They come back with code that, at first glance, looks like it could work. I make the assumption that they just copied it from Stack Overflow, review it, test it, and follow up with questions or changes I want it to make. In the instances where I’ve found an answer to be completely wrong, following up with why it’s wrong and what I expected usually results in the LLM admitting it’s wrong, and providing a better answer. If only every junior was able to admit their mistakes so openly.
I don’t know if it’s made me a better programmer. Programming is solving problems, and AI is another tool that solves problems. Sometimes the tool is the problem, and you have to troubleshoot it. I do think it has given me experience reviewing code that someone/something else wrote. I think that experience has been valuable.
I’ll note, I did not use AI to write this post.