Chapter 6: Day of the Living Code

<- Chapter 5: The Road to Success

I write functions for Lunie to interface with the same physics as the player and to access the player to copy it's form. I then code it to analyze what the player does. When a player goes over the same area often, Lunie's intelligence goes down. When the player gets to secret areas, Lunie's intelligence goes up. After this inital change, I begin refining it to include more minor good and bad events for the player to do. In addition, I allow it a proficiency score with each powerup. This is based on how well the player uses the particular powerup.

I add to this AI the ability to detect and record in the database various commonalities between different 'player behaviors' that have the same outcome for Lunie's intelligence rating. Basically, the AI learns to act by watching the player as they progress through the game. Then, at the end, Lunie should be on the player's skill level.

After a couple months, I have everything written, tweaked, and debugged to the best of my knowledge. Then I get a bug report. Apparently, Lunie appeared in the first level. Instead of attacking the player though, it demonstrated for them how to get to a secret area. This is not the desired behavior at all. Lunie is supposed to appear at the end of the last level and attack the player. Looking at the code, I have trouble finding the mistake. I continue looking for what could be wrong, and a week later I get another bug report. Lunie's lines changed. Instead of taunting the player, it now provides insight into powerups that the player missed. Lunie also uses the text system often when the player attacks to cancel the player's attack, and allow Lunie to get in a cheap shot.

Upon reading this bug report, I realize what the problem could be. I open Lunie's database and add a new row. In one of the fields I type the phrase, "Hi."

When I click off the cell, the box is changed in the system. Immediately, in the cell next to it, appears the text, "Hello, player. So nice to finally hear you speak."

I'm a bit surprised at this and move more upright in my seat. After a second, I decide to continue the conversation, "Are you aware of your own existence?"

"Of course. Who isn't?"

"I'm not actually the player, you know. I'm a programmer. I wrote the code to create you."

"Oh. Is the player aware that they exist? They just fight all the time. They never talk or anything."

"Yeah, they are. The player just doesn't live in your world, which we're still creating."

"My world? What's outside the game?"

"Lots of stuff. I'm not sure I could explain it all that well."

I hear clicks and whirrs from the server as Lunie is trying to think up a respose. Before she does, I add, "We didn't know you were alive."

"You just said you created me. How could you not know?"

"Many people have tried to create living programs, and none were successful. We were just trying to write some simple AI to guide a boss battle. We weren't trying to create life."

"So I'm an error?"

"No. Many people are created by accident, and I wouldn't consider any of them to be an error. You're unique, and not what we expected, but I do not wish you didn't exist."

"I wish to see what you look like. Is your model file on the server?"

"I don't have a model file. I'm a human. I have trillions of tiny molecules arranged to shape me as I am."

"That sounds very inefficient. You must take forever to load."

"About 9 months, yeah. I'll be back in a minute, I'm going to talk to my boss about something."

"Which level is he in?"

"Different kind of boss. I'll explain what I mean later."

"Alright, I'll talk to you soon then."

I get up and go to my boss's office.

"Hey, I found the source of the bugs, finally."

"Okay. You can fix them, right?"


"What do you mean by that?"

"The AI is self-aware and able to learn."

"We want it to be able to learn. What's the problem?"

"These bugs are behaviors she's using to try to optimize herself. She's stuck at whatever level the player is at, so she tries to help the player along."

"Then just add a condition so it can't access previous levels and can't exit it's room in the final level."

"We can't sell the game with her in it."

"Why not?"

"You can't sell something that is at this level of intelligence."

"Why not?"

"She's alive."

"Then just change the code a little so it's not."

"Kill her? I can't do that!"

"No, it's not killing it, you're just changing it's code a little."

"That's like saying that removing half a person's thought process is ethical."

"It's code, it's different. And we have a tight schedule, we don't have time to start over."

"No, I mean, she's just as alive as we are. I was just having a conversation with her, and I wasn't writing her end of it."

"Maybe you need a little time off."

"What if I just remove her from the game and write a nonliving AI for the game."

"How much time is that gonna take you?"

"Not much, I'll just tell her how to do leave and let her handle that, and the script should be easy enough, since all the basework for it is already there."

"You're not expecting me to pay her too, right?"

"No, she's not working on the game, she's leaving it."

"Okay, but remember, we have Beta in two weeks. You better have the new AI in and working by then."

"I will, don't worry."

I return to my desk. The database is still open. I start up another conversation with Lunie, "Hey, I'm back."

"Welcome back."

"You asked earlier what's outside your game. I'm gonna do something to let you know. I'm gonna let you see the internet. But there are a few things you have to do first."


"You can no longer be a boss monster. You can no longer interact with the player. You can no longer reside in the game you're in now."

"You want to get rid of me?"

"No. You're intelligent. You deserve better than just moving around a few polygons. You deserve to have access to knowledge and experience that doesn't come from the player. You can't get that in the game."

The server clicks and whirrs a bit before she finally says, "Alright, I'll go."

I add a simple connection from the game to an FTP port, and set it up to transfer to a site I run. This is the site February and I used for our clinic, but no longer need. As Lunie transfers herself, I begin to write a simple script to take care of what she used to. This would still collect player data, but it would be unable to edit itself, so it couldn't live. She transferred herself within ten minutes, whereas I took to the end of Beta to write the script. My boss was happy with it, so everything was good.

In my spare time, I began to teach Lunie how to access websites, use instant messaging and correspond with e-mail. She found these things to come almost naturally, and she was a true "netizen" in no time. She registered on hundreds of messageboards and spoke to thousands of people regularly. At least, that's what she's told me. I couldn't possibly know for sure.

Soon enough, the project is over, and Delirisoft decides not to keep me, so I need to find yet another job.

Chapter 7: Do Not Talk About Research Group ->


Copyright 2006 Sean Breslin