Harlow

Narrated debugging: Vol 1

This is a narrated retelling of a real debugging session where the course of the story was determined by how the search for a solution went.

--

There he was, frozen, inactive. At only Time.fixedDeltaTime years old, MainMenu.GameObject showed no signs of life. Known to his friends as just "MainMenu", he was a persistent, silent supporter of everything that happened in the world. Despite every attempt to wake him up, Player.cs simply couldn't get MainMenu to respond.

"MainMenu!", she shouted. "We need you to proceed to the next level!"

MainMenu remained silent, lifeless.

"We'll take it from here", the Inspector said. "I promise we'll get to the bottom of this."

Debug leaned in, "I've got a log of everything that took place recently. We'll search OfTheCrime.scene and sort this out."

Player.cs looked visibly concerned, her brow furled in frustration. Their stoicism was salt in her wounds. Time kept passing, painfully indifferent to her loss, nothing stopping to breathe beautiful, animated life into her friend.

Player.cs left OfTheCrime.scene troubled, tears forcing their way out with every step. As her x.position strayed, her grief intensified. Step by step, she found her way further from Inspector and Debug - away from their coldness, away from their business-as-usual attitude.

The streetlights presented an endless array of glowing pillars of dust; the particle emitters clearly hadn't learned of the community's loss. Alleyway after alleyway, NPC[i].GameObject after NPC[i++].GameObject, the city went on, unaware.

"I can help", a voice called out.

Startled, Player.cs spun around to confront this supportive stranger. "W-who are you?"

"I'm Solution", replied the stranger. "I work with Debug and Inspector - though I can't say I agree with their methods - both public() and private()…"

"How can you help..?", Player.cs inquired.

Stepping out of the alley and into the light, Solution cleared their throat, "Let me ask you a question. Do you know what a Quaternion is?"

"Does anyone know what a Quaternion is?", Player.cs scoffed.

"No, I'm serious" Solution insisted. "When was the last time MainMenu ever interacted with a Quaternion?"

Player.cs looked puzzled. "But… UI layers don't even reference Quaternions."

Solution crossed their arms. "That's why it's the perfect crime."

Unsure of Solution's cryptic ramblings, Player.cs continued walking. Perhaps even the force that binds the world togther - Unity - was having issues reconciling MainMenu's passing.

With a thunderous force, a voice rang out - Player.cs recognized Console's voice immediately. "Coroutine couldn't be started because the the game object 'MainMenu' is inactive!"

Console's shouting bounced off the buildings, rhetorically echoing a frigid coldness.

"I-I'm sorry. I misunderstood", Solution panted, clearly out of breath from sprinting to catch up. "It's not the quaternions."

Player.cs looked unimpressed. MainMenu was a UI layer, which has no need for quaternions.

"It- it's..". Solution coughed.

"It's bigger than MainMenu. It's bigger than all of us", Solution forced out.

Player.cs reached her breaking point, "What the hell are you talking about?! My friend is inactive! Inactive!!"

"/* I'm not sure I trust this guy… */", Player.cs commented to herself.

NOPE. NO. I CAN'T DO THIS.\ It was a semicolon. A semicolon.

……

That was too anti-climatic, so here's the actual debug logs I was writing trying to solve this.

A painful list of debug logs.