Chapter 0:
Leclaire — Gamedev Creates a World of Sentient NPCs by Accident
“Are you kidding me right now?!”
The loud female voice from my PC’s speakers sounded like pure second-hand embarrassment.
“Takuma Shouya is written out for real?! The author chose not to bring HIM back?!”
“Ack!” I winced out of reflex, covering my ears and wondering if the next-door neighbors might protest.
The girl on the live recording looked like she was on the verge of crying as her cheeks turned red under her glasses, her long black hair covering her ears.
I never dared to tell her, but she was kind of cute when she was like this.
She was furious because a character from her favorite romance light novel had been written out of the plot. She was serious about her beloved stories—she even clutched one volume of said series depicting said character.
Worst of all, she had no idea about this before I told her!
“Huh?” I quickly bowed my head, panicking. You never want to mess with an angry girl wearing a floral kimono. “I-I’m sorry, I actually thought you’d already kn—”
“HE was my comfort character, dammit! I only enjoyed the past two books of Requiem Hearts Koishii because of him!”
She then launched into a rant about all the problems she had with the series, and I had no choice but to listen.
That’s Sachi Aoshino for you.
Sachi was a sucker for romance light novels for as long as I knew her. We were in the same grade as kids, and after we graduated, she and her family moved to Kyoto for a job offer. That’s where they’d been living ever since.
A minute passed, then she finally finished the long ramble with a heavy sigh, and put her poor book down.
“You better choose your words wisely next time, Michio-kun! I'll be smacking your stupid head this weekend when I come to visit!”
My heart skipped a beat realizing.
Will it be this weekend already?
Sachi immediately caught my expression–her blue eyes sparkling, hands on her hips triumphantly—as if busting me for forgetting something.
“You can bet it will be this weekend, mister! After my new chapter’s deadline at least.”
Not only was she an otaku just like me, she was a mangaka.
She was currently working on a historical romance manga set in the Sengoku period with samurais. She used real swords as reference—and learned how to use them too.
Like I said, she’s not someone to mess with.
“So after I beat your stupid head, I might be willing to go shopping. Oh, and I won’t go easy on you, so better clean everything before I get there!”
I scanned around my bedroom, sighing in relief there wasn’t any litter.
Besides my bed and desktop table, there were only a bunch of shelves in the room filled with game CDs, manga and books.
“Eh, I’ll manage. I’ll be done with work by then.”
“You found work? Didn’t you tell me you couldn’t find anything for two weeks?”
“No, it wasn’t like that!” I snapped, a little offended.
Being a gamedev wasn’t as easy as drawing manga, because freelancers like me didn’t have a publisher or anything.
“I still get requests for bug fixes here and there, just so you know! Besides I’ve spent those two weeks making something I might sell online.”
It was true, I spent night and day programming something I came up with so suddenly once, I didn’t even realize how hard was it going to be to finish it.
First time in the call, I saw Sachi genuinely surprised. “Oh? What is it? Is it…”
“Not a game.” Looked like I could read her thoughts too.
She squeezed her mouth shut, as if she was disappointed but still listened.
“I’ve been programming a system to create intelligent NPCs that could learn. It doesn’t have a game environment, levels, or anything, only a couple of nodes.”
“So, it’s supposed to be like… a game that isn’t like a game?”
Seriously?!
I opened my mouth to say something when I heard a faint sound on Sachi’s side. She looked away toward her bedroom’s door and answered.
“Okay, give me a minute,” she said, then looked back at me. “Got to go. Dinner’s ready. I have to continue drawing after that, still have to figure out the chapter’s end. I’ll message you sometime!”
We said our quick goodbyes, then hung up.
I was left alone in my bedroom, the computer’s soft hum and screen glow the only signs of life. Hardly any sound came from the outside world.
A game that isn't like a game…, I thought, browsing on the internet mindlessly to cure boredom and sleepiness.
I couldn’t help but chuckle.
Sometimes I wondered where Sachi drew the line between joking and being deadly serious. I guess it was a big part of why we were friends.
Already bored, I typed a bit and visited Sachi’s social media page.
I scrolled through her posts and the many ninja and samurai character drawings, smiling.
As kids, she and I were always a bit clumsy, so it didn’t take much to find each other.
We played in the rain, sat next to each other at school so we could secretly chuckle over what was funny.
She rarely came to our house because we lived a little further away and her parents never wanted her to go on long trips, but I didn’t mind.
The first time she did come over was when I was fourteen, and was taken by how my room was filled with games. The same ones I had now.
We played all of them—especially the multiplayer ones—from the old console games to the modern ones, for years.
To this day, we’d often get together online to play through whatever was hot at the time.
Geez, last month's game killed us with that damn cat-boss...
Feeling nostalgic, I decided to wrap up programming for the day, with only one thing left to do.
I opened the game engine in which I made the NPC System two weeks ago.
My screen filled with a branching, network-like object. Each of its nodes had numbers and identifiers. In the top left corner was the text ‘GENERATION 55’, with a play, pause and fast forward icon next to it.
Those branching nodes were basically the brain of an NPC, and with each generation it was supposed to become more intelligent.
Emphasis on ‘supposed to’, because even by the 55th generation it had learned almost nothing and still couldn’t make decisions like a real AI.
Basically, it was still a baby.
This will take a while, I thought. Might not even be ready by the weekend.
I planned to run one more generation that day, knowing that the process wouldn’t be fast.
I clicked the play icon, letting the System start.
As expected, a timer appeared in the corner of the screen, counting down from 1:59:59.
The little clock on the computer’s desktop read 6:45 PM.
Ugh…
I was proud of this program at first, but now I was starting to think it might be a waste of time.
I wasn’t even sure if these generations would actually lead anywhere.
◆ ◆ ◆
“Okay, Michio-kun,” you might say. “You're a gamedev, you mess with code and stuff, I get it. But for what reason did you end up making that thing?”
Oh, the System?
Well, I can give you a sophisticated, two-word answer from the depths of my soul’s frustrations:
Shitty gameplay.
Every player’s worst nightmare, throwing off even the greatest game experience. I had my own fair share of those over the years. some I found quirky, others traumatizing.
One such example of the latter was Hellcat Ande Velos.
This specific boss was from a dark fantasy ARPG game called Gates of Tartarus IV, part of a larger series Sachi and I had been playing last month. A critically acclaimed series, might I add, yet this title still had the stupidest NPCs that you've ever seen.
And there was a lot of them, including the cat.
Its area was called the Cathedral of Entropy—a massive ruined cathedral of gray stone. I still remember the first time we walked through it. I was a knight and Sachi played a witch.
“Wow, look at this place!”
“Yeah, pretty cool.”
We stared at the stained glass windows and lit candles for minutes, taking it all in.
Then a cutscene started, all cinematic, backed by an ominous choir. A dark, swirling portal appeared in the middle of the chatedral, with a monster leaping out of it. It was a huge panther-like creature smoldering in embers and smoke, as if he was about to combust.
It let out a ferocious roar that echoed in my ears.
“ROOAAAHHH!”
But something hit me as I looked at him.
“Is he holding a damn sword?!” Sachi said, beating me, as we saw the blade gripped between the cat’s teeth.
Yeah, we were up to a challenge.
When the cutscene ended, Hellcat Ande Velos lunged, claws out, sword ready to slash.
We dodged immediately. I rolled, Sachi jumped, then we backed away. Gripping my sword, I ran at him and slashed, while she was casting a spell. She shot at least four counter-magic projectiles into his ugly face.
I didn’t even see how much damage we dealt, it was so fast.
Not even a fool would want to be close to that beast, so when we could, we ran. He lunged a second time from behind while I was still in his attack-perimeter, and only by chance could I teleport away, using a jewel Sachi got me earlier in-game.
“That was close... This isn’t some housecat!”
“You don’t say! Housecat of the Devil!”
“I’ll have to look him up on the game’s wiki!”
With a flash of light, I appeared on the other side of the cathedral.
“Okay, what we have to do is: run, dodge, attack, and run again.”
“I have a cooldown on my magic! Hold him off for a few more seconds!”
“Roger!”
I had my fingers on the run and dodge keys, concentrating on his next move, expecting him to lunge again for a third time or try to corner me.
Naive me...
With a quick action, he threw his sword from afar like it weighed nothing, letting it fly directly toward me like an unstoppable missile.
Yeah, I was so dead.
Next thing I saw was the critical hit making my avatar collapse as the sword circled back to the boss. My health-bar decreased to zero.
Game over.
“You died already?!”
“Yep…”
A challenge, huh.
“Ugh. I died too just now.”
“How?!”
Not only did the cat have insane attack patterns where it would circle a player, throw his sword at them like a boomerang, and claw them, but he was impossible to run or hide from. With that speed, neither I or Sachi could dodge or parry him most if the time.
And I hadn’t even listed the top three worst bugs yet!
1. As I said, his AI was dumb, making him a fast but mindless killing machine.
2. His hitbox was broken, as he didn't receive damage when I slashed at his torso.
3. For some reason his boomerang sword-throw caused players’ games to crash when the sword hit the cathedral’s walls, corrupting save files and losing progress.
(I was lucky the first time he aimed precisely at me and didn’t hit any walls.)
Our retries weren’t that lucky.
Thanks to that one attack, our games crashed quite a few times.
“That cat sucks,” was all Sachi told me, and I could see the same pain in her eyes that I felt.
Beating Hellcat Ande Velos was arguably the most satisfying moment of my life. But we only managed to do that after the developers reduced his speed and got rid of the bugs with a game patch.
“RAAAH!”
The boss fired the boomerang attack again. I survived a little longer this playthrough, but I was still low on HP.
The sword came flying, but a notch slower than in the previous buggy version.
You're going down now, you devil...
I tried to guess how long I had before the sword hit me. I also had to calculate what path it would take in order for us to disarm it.
At this point, I gladly took the role of bait so we could experiment with techniques to bring this killing machine down.
“Now!”
Sachi cast a magical projectile at the oncoming sword without hesitating. I then lowered my head and dodged it in time.
The cat’s sword suddenly froze in midair, a few feet above the floor.
This magic was rarely useful against bosses. In RPGs, time stopping does almost nothing, it’s only useful to get inaccessible items if anything.
She managed to freeze the sword before it hit.
I hurried over to pick it up, at which point Hellcat Ande Velos had no choice but to do the same.
So he had a counter-attack against this...
He roared and galloped for the floating sword, his mouth open to catch it, his teeth gleaming.
But I was closer.
With a leap, I took the blade and with the same motion, slashed at the cat, who came into range at that split second.
The cut was of surgical precision. He struggled to stand for a second, howling in pain. When he got up, I saw a huge scar across his nose and eyes.
I used his own sword against him.
Acting quickly, we both attacked him again, from two sides. I with two swords in my hand now, and Sachi with all the possible witch power she could muster.
When the cat’s HP went down, a new cutscene started. It was an incredible feeling to watch.
The infernal creature looked up to the sky that was visible through the cathedral’s ruined ceiling, and flames burst out of its body.
He exploded on the spot, consumed by the flames.
“Yeah! We did it!”
It was after finishing the entire game that I had a sudden thought. One that came back to me multiple times, like the boss’s flying sword.
Could I do better?
I hated how Gates of Tartarus IV’s world didn't feel real due to the stupidity of the NPCs, and that we couldn’t take the story nor the characters seriously. I wanted to experience something cooler, something that wasn’t buggy, something more fun.
And come on, wouldn’t it be more fun to play a game with actually intelligent NPCs? A game that both me and Sachi could enjoy?
I knew the answer already, and thinking about it made me happy.
I mean, being a gamedev, I might as well try...
◆ ◆ ◆
DING-DING!
I didn’t even open my eyes, but already knew it was morning with the faint sunlight streaming through.
I snatched up my phone from beside the bed and turned off the annoying alarm.
It was 7:31 AM. Wednesday.
But how did I end up in bed?
All I remembered from last night was sitting in front of my desk, letting the NPC System run another generation after my chat with Sachi. I half-expected to wake up in my chair.
I quickly changed clothes, knowing most of today would be spent trying to improve the System, if not my regular game-related work.
I was about to turn to the computer when I heard a low hum.
The monitor was off, but the machine was still up and running.
“No way,” I muttered as my stomach sank. Had I really left it on all night?
I could already see the numbers on my energy bill, which hadn’t been helped by the previous two weeks of nonstop coding. I was glad to have some work, albeit few, that paid well enough to roughly cover everything.
Switching on the monitor, I saw something that made me freeze.
The System was still working. For some reason, the process didn't stop after the fifty-sixth generation.
My eyes widened in disbelief.
“GENERATION 2997?!”
That made no sense at all. It previously took several hours to run a generation, not to mention I had to test the results, making sure the run was worth anything. The numbers didn’t add up, jumping from 55 to 2997. It should’ve been at the best around a 100 or so.
It's a mistake, most likely mine. It can’t be anything else.
The countdown of the current generation had reached zero, but it didn’t pause as I expected it to.
Last night it took two hours to run a generation. Now it only took a minute.
In seconds, my mind was flooded with questions, far too many for someone who had barely woken up. I tried to make sense of this mess, but I could hardly think straight.
Suddenly I had a thought that made things a bit clearer, while it wasn’t entirely reassuring.
The NPC brain works! Somehow, it started learning and getting smarter at a constantly increasing rate!
It sounded so unreal, as I thought the program might never work as I wanted it to.
Why would it? I knew exactly how impossible it was for one gamedev to create intelligent NPCs when there were dozens of game companies doing that better than any gamedev could!
Yet I did it anyway, for fun, hoping it might be something I could put to good use if it worked.
I had to take a closer look at all this, so I opened the node network.
Where yesterday there was one brain, there were now thousands! Each one was a separate NPC brain and growing in number with each generation.
There were thousands of intelligent NPCs in my program.
What the hell had I made?
This wasn’t what I hoped to achieve. This was too much for me. I felt like I was given something I never thought I could get, yet I was both happy and confused about it, not knowing if I really deserved it.
But now one thing was for sure.
The System went too far and too fast, and it was probably my fault. I was determined to somehow make it stop so I could check what I did wrong.
I grabbed the mouse and tried to pause it, but nothing seemed to respond to my constant clicking or typing. I couldn’t close the window, nor open new ones.
As if something doesn’t want me to intervene in the process, yet desires me to watch it all happen anyway.
It was now the 2999th generation, and the duration came down to only ten seconds.
Why was this happening at all?
I thought I was seeing things, yet it was all real. All the colors on my monitor got reversed, and all visible text got distorted, making the view painful to look at.
My hand froze on the mouse.
As the counter reached zero, the distortions all stopped with the game engine closing as if nothing happened.
It was as if my breath had been taken away. I covered my face in relief, exhaling deeply. The least I wanted to happen today was my PC crashing.
The mouse and keyboard went back to working normally again. Looking through my desktop, though, I came across something strange.
An app that wasn’t there before the engine crashed.
It was a blue compass, crescent in its center.
«Leclaire World Navigator»
I didn’t know what it was, yet at that moment I somehow felt drawn to it.
Please log in to leave a comment.