Actions

Work Header

easteregg.mqapp

Summary:

Four times Ian leaves Poppy messages in the code, and the one time Poppy leaves a message back.

Notes:

The Quarantine episode changed my brain chemistry and also is one of the best cinematic sequences of all time. Thank you to those who supported me while I was like, I'm gonna post this!! I'm gonna post this!! And then continued to not post it until this moment. I love you.

 

Also the code editor box that Poppy runs in Quarantine is MQ_bloodocean.mqapp, hence the title.

(See the end of the work for more notes.)

Work Text:

Ian watched in fascinated disgust as Poppy entered hour twelve of staring at her screen. He had gone to the beach and back to noodle, and he’s not certain that she’s moved at all.

Grimm Quest was in its beginning stages, and they were developing a reel to show investors. His stomach growled, and his thoughts shifted to food. And then to Poppy. Had she eaten? He had a protein bar and green juice earlier but the efficiency of his metabolism and physique meant it would be meal time again.

“Hey Pop!” He called out. “Poppy!”

No answer. Their partnership was still fresh, he didn’t want to disrupt her flow, or make her upset. It would be hard to train someone to code out his vision, and she was just so good at it already.

He had an idea. 

****

#include <chrono>

#include <SDL2/SDL.h>

#include <SDL2/SDL_mixer.h>

#include <SDL2/SDL_ttf.h>

#include <string>



const int WINDOW_WIDTH = 1280;

const int WINDOW_HEIGHT = 720;

const float PADDLE_SPEED = 1.0f;

const int PADDLE_WIDTH = 10;

const int PADDLE_HEIGHT = 100;

const float BALL_SPEED = 1.0f;

const int BALL_WIDTH = 15;

const int BALL_HEIGHT = 15;

 

//POPPY

//R U HUNGRY

//WILL ORDER

//FOOD



enum Buttons

{

PaddleOneUp = 0,

PaddleOneDown,

PaddleTwoUp,

PaddleTwoDown,

};

 

//

// 

 

enum class CollisionType

{

None,

Top,

Middle,

Bottom,

Left,

Right

};

 


****

 

“What the hell! Who is in my code?!”

And then she looked up from her screen startled; Ian had the mind to look sheepish.

“Sorry, it looked like you were in the zone. I’m gonna get some food, do you want anything?”

She looked at him unsurely, like she was measuring the sincerity of his offer, but he knew how it was for people to be so hyper focused to forget how to eat. Sometimes, they would forget everything else and do nothing at all, not laundry, not dishes, and definitely not dinner. He shook his head from those thoughts. 

“So can I get you like a smoothie, or an acai bowl?”

Poppy's face wrinkled up into a very impressive impression of a pug with extra wrinkles before lighting up, “You know that gas station on the corner?”

“Yeah?” Ian did not like where this was heading at all.

“Can you grab me a slice of the buffalo chicken pizza, with ranch and bleu cheese?”

Both?”

Ooh, yeah, an XX-Large soda, the green one.” 

 


 

“Ian,” C.W. said, “I am a bit concerned about Miss Poppy’s health. She hasn’t moved.”

“Hmm? Oh yeah, she does that when she’s worried. When she’s excited. When she’s sad. It’s like coding is her home. She’ll be there, perfecting code that doesn’t even need to be touched anymore, just to make sure it’s absolutely finished.”

“You are not worried?”

To be fair, Mythic Quest was launching tonight. He was anxious, he knew she must be, too. This was all of it, in one go, jumping off the cliff and hoping they could fly.

“In my days as a travelled scholar, the men of several artistic companies would simply rest before the official launch. It did not do anyone any good to fret over a chapter that has already been submitted.”

Ian stroked his chin, “Yeah, no, you’re absolutely right.”


****

struct Contact

{

CollisionType type;

float penetration;

};



class Vec2

{

public:

Vec2()

: x(0.0f), y(0.0f)

{}

 

Vec2(float x, float y)

: x(x), y(y)

{}

 

Vec2 operator+(Vec2 const& rhs)

{

return Vec2(x + rhs.x, y + rhs.y);

}

 

Vec2& operator+=(Vec2 const& rhs)

{

x += rhs.x;

y += rhs.y;

 

return *this;

}

 

Vec2 operator*(float rhs)

{

return Vec2(x * rhs, y * rhs);

}

 

float x, y;

};

 

///POPPY

///IT IS WHAT IT IS

//AND IT IS READY

///TAKE A BREAK

///THERES NOTHING LEFT TO DO




She wasn’t picking up her phone. 

She stopped responding to his positive text messages and videos (he will never admit that she didn’t really respond to them to begin with). He felt a bit like a satellite falling out of orbit, work had slowed to a drifting halt; David had already made sure everyone was being paid; Brad had organized the donation; the testers were doing testing; everyone was carrying on as best as they could.

Except he couldn’t say everyone, because he hadn’t seen Poppy’s face in weeks.

He tried to recall the last time he went so long without seeing her badly kept hair and hunched shoulders and cute buggy eyes (the quarantine was really doing a number on him, maybe he would call Shannon for some Occulus-sex). He woke up that morning dreaming about Poppy’s wide mouth bent up in a smile and her dinner party hands, and that was the final straw. His mind was making up illusions of attraction, and it was trying too hard to recall every pixel he remembered from their last zoom meeting where she actually had the camera on; yelling at him obviously, about injustice and misogyny and--she was losing it. He was worried.

He missed her.



*****

 

388 //// PICK UP PICK UP PICK UP

398 //// DON’T HIDE FROM ME 

399 /// PICK UP YOUR PHONE

400 */




“You know I’m right!”

Poppy slammed the door of their shared office, jammed her headphones on. Ian stormed into David’s office, huffing and pacing and breathing loudly.

“Ian, I am happy that you’re back, really, I think, but I have work to do, and so do you.”

“Poppy is in there.”

“Yes…” David said slowly like talking to a small child, “You share that office…”

“I can’t go in there right now, she’s being unreasonable.” 

“It looks like she’s…” David peered through the glass office walls, where Poppy was in the zone, typing away at what she did best. “..working. Like you should be.”

Ian huffed. David almost laughed before he said slyly and half-joking, “Lover’s quarrel?”

To David’s shock and Ian’s embarassment, Ian’s ears pinked before he could even control them. 

“Hold on--are you…and Poppy?!” David looked scandalized, like he just walked in on his parents doing it.

All of it came rushing out of Ian’s mouth, “I didn’t let her kiss me this morning with her morning breath because, do you know how much bacteria accumulates in your mouth while you sleep?! And then she took it personally, so I tried to explain that to her and--”

“Wait--wait, this is--”

“And then she just got more angry and she was angry the whole way here, while I was presenting to her facts , and then she said it was fine but it clearly wasn’t because--!!” David waited before Ian finished in despair, “Because then she wouldn’t let me kiss her again when our teeth were brushed and we were in the elevator--”

David began to laugh helplessly. “First of all, if you  guys are an item, you really should get that cleared with Carol.” Ian waved him off. “And also, that you’re fighting because you wouldn’t let her kiss you, and now she won’t let you kiss her?!” 

“Yes! Because when she wanted to do it, it was unhygienic, and when I wanted to do it, it was because--because--” 

“You know Brene Brown says ‘vulnerability is at the heart of real apologizing and amends-making.’” David hummed before returning back to his laptop screen.

Ian gave David a look of disgust before turning back to Poppy in the distance. It dawned on him , like all his good ideas. He turned and quickly rolled David away from his computer.

“Hello? Ian---”

“Hold on, let me just do this for a second.”


****

class Paddle

{

public:

Paddle(Vec2 position, Vec2 velocity)

: position(position), velocity(velocity)

{

rect.x = static_cast<int>(position.x);

rect.y = static_cast<int>(position.y);

rect.w = PADDLE_WIDTH;

rect.h = PADDLE_HEIGHT;

}

 

void Update(float dt)

{

position += velocity * dt;

 

if (position.y < 0)

{

// Restrict to top of the screen

position.y = 0;

}

else if (position.y > (WINDOW_HEIGHT - PADDLE_HEIGHT))

{

// Restrict to bottom of the screen

position.y = WINDOW_HEIGHT - PADDLE_HEIGHT;

}



//POP

//POP LET ME KISS YOU 

//I WOULD NOT CARE

//IF YOUR MOUTH WAS GROSS

//MEET MY LIPS

//HALFWAY

 

****

“That is sweet in a disgusting kind of way,” David commented, looking over his shoulder. 

Ian looked back at their office where Poppy had paused. She then very slowly and deliberately brought the absurd Australian candy she had with her, Tim’s Toes or something, gnashed it between her teeth, mouth open. 

“Ew,” David said. 

And then she turned toward David’s office, where she knew Ian was watching, and blew him a kiss and continued to chew grossly.

“That is…just disgusting.” 

“Yeah,” and Ian said happily to David’s confusion, looking a bit like he did when Poppy had completely uprooted her presentation with her purse full of candy, and left as casually and as quickly as he could back to their office.  

He shuddered when he saw the privacy shades go down.


 

Poppy Li was sitting across from him, chewing her hair into split ends, reading through her code unblinkingly. Her pupils were flitting back and forth like hummingbirds.

Her eyes shot to him. "Do I have something on my face? You're staring at me." 

She did; there was a smear of chocolate that had missed her mouth entirely. Ian pressed his mouth into a convincingly neutral position and shook his head in negative. The tips of it quirked up helplessly when she squinted at him, like he was the strange one, and then resumed her proofreading. 

He kept looking at her. 

Poppy glanced up again and pinked, "Oy, dummy, stop looking at me like that. No kissing until we launch the update, or David is going to go ballistic. He got mad last time, remember?"

Ian's face turned sly, "He wasn't mad about the deadline, he was mad that he interrupted us while we were noodling in his office."

Poppy snorted, in a cute and disgusting way. "Yeah, so we can't get distracted. I can't get distracted; you're the big picture guy, right, and I'm the builder? I gotta build this shit. So go look at your big picture or take your noodle somewhere else, and let me finish." It was only a little mocking and exasperated. Ian knew better. 

My big picture, huh? 

Ian was a big picture guy. A big picture man .

He could see worlds come together from a grain of sand: Mythic Quest and Raven's Banquet, Hera and PlayPen, all unfolding themselves into his universe through the light of a life-giving star. But outside of work? His big picture had been mostly empty until recently; Poppy filled his bed pretty well, and ate enough to fill his fridge and talked back enough to fill the air and time. Poppy had a drawer in his closet (half of it was new hoodies he'd bought her in hopes that she'd trade up from her worn-down ones), she had a Tupperware full of candy in his pantry, a designated spot on his sofa. He didn't even remember how it happened really, they were partners and then they were partners , but he couldn't even begin to imagine a morning where he woke up and she wasn't there, half her hair stuck to her face because she had cemented it on with her drool. 

Ian started out of his reverie as Poppy blew a loud and wet raspberry and adjusted her debilitatingly poor posture in her chair to lean towards her monitor with sniper concentration. "I found you, you bastard." she threatened the code under her breath. 

And just like always, the final piece fell into place and it was obvious. Ian straightened, a smile starting to spread helplessly across his face. 

She looked his way, "What? You're being weird." She didn't even sound that annoyed, only fond. She was even smiling back at him. 

"Nothing," Ian said, clearing his throat. He glanced at her one more time, she had already returned to her screen. 

He opened up the code. 

 


****
if (buttons[Buttons::PaddleOneUp])

{

paddleOne.velocity.y = -PADDLE_SPEED;

}

else if (buttons[Buttons::PaddleOneDown])

{

paddleOne.velocity.y = PADDLE_SPEED;

}

else

{

paddleOne.velocity.y = 0.0f;

}

 

if (buttons[Buttons::PaddleTwoUp])

{

paddleTwo.velocity.y = -PADDLE_SPEED;

}

else if (buttons[Buttons::PaddleTwoDown])

{

paddleTwo.velocity.y = PADDLE_SPEED;

}

else

{

paddleTwo.velocity.y = 0.0f;

}



// Update the paddle positions

paddleOne.Update(dt);

paddleTwo.Update(dt);



// Update the ball position

ball.Update(dt);

///POPPY

///WILL YOU MARRY ME?

****

 

"Ian,” Poppy dropped her hair from her lips and bent over to the right to look at Ian. “Is this a fucking joke?” Her voice had gone to a strange pitch.

He was eyeing her from his own chair, a strange sort of expression scrambled all over his face. She couldn’t read it at all. He looked like he did when she first told him Sarian was the most beautiful thing she’d ever seen. He looked like he did across the table of the dimly lit diner where they first thought about Mythic Quest. When they first talked about Hera. He looked like he did when he was standing across from her in their stupid lineless office with nothing but gas station pizza, green soda, and himself to offer.

He looked at her like he always did. It filled her with love. 

“No,” Ian said, “It’s not.”

He didn’t even look worried, only hopefully confident. Smug bastard.

“Poppy, I thought you were always two steps ahead.” She wanted to wipe the smile off his face. She should say no, just to fuck with him for being so annoying. She was always two steps ahead, but she was also always two steps behind. They walked in time. One of them was always dragging the other, it had always been like that, but now they hold hands.

She turned back to her screen, relishing in the slight panic in his eyes before they disappeared from sight.


****



// Present the backbuffer

SDL_RenderPresent(renderer);

 

// Calculate frame time

auto stopTime = std::chrono::high_resolution_clock::now();

dt = std::chrono::duration<float, std::chrono::milliseconds::period>(stopTime - startTime).count();

}

}

 

Mix_FreeChunk(wallHitSound);

Mix_FreeChunk(paddleHitSound);

SDL_DestroyRenderer(renderer);

SDL_DestroyWindow(window);

TTF_CloseFont(scoreFont);

Mix_Quit();

TTF_Quit();

SDL_Quit();

 

return 0;



// YES

 


On the roof where they said their goodbyes to C.W. and where they had their most devastating fight, Ian Grimm and Poppy Li got married.

Jo said that one gift couldn’t wait, so the entirety of the MQ staff sat down like they had years before, as Jo pressed play on another video. The wedding party fell into silence as C.W.’s face appeared again on the screen.

“Greetings! My fellow artists and revelers! Cheers to my family on this joyous day.”

Ian turned to Jo, “What the hell is this?” 

Jo opened her mouth to answer but video-C.W. cut her off valiantly, “You are, of course, astounded by my foresight as to how this video exists, as it is, if you are watching it, I’ve already gone amongst the stars. But as you know, I was the chief storyteller for our beloved world, and with video games one must always have options. So, I have prepared several videos in the event that such events will happen.”

Jo whispered, “There’s a video addressing Brad in the case of a hostile takeover. And one with just him staring in case ‘a couple required his presence in a threeway’.”

Somehow, video-C.W. turned his eyes to address Poppy and Ian. “Long ago, when I was a very different man, I came across a store window and I saw all the possibilities in the world in a line and a dot and a line. I saw it again years later, two lines bouncing a single dot of an idea between them, approaching me at the renaissance faire, at the height of my chicken-making career.”

Poppy caught Ian’s eye, “Are you crying ?” She whispered under her breath.

Ian sniffed, “It’s beautiful .”

You didn’t even cry during our vows.

“We both know you’re not the greatest with words, this is a master at his craft.”

Poppy looked like she was going to make herself a widow, when Rachel and Dana hushed them, “You’re missing it!”

Video-C.W. smiled fondly, “A line and a dot and a line. And you made two dots become four, eight, a million, a billion; you both have crafted enough iridescent geometry to create worlds with possibilities as countless as the stars. Back then it was only a dream, and you made it real. And you did it together.”

“It was…” he paused as both Ian and Poppy’s eyes went round and shiny, “Inevitable.”

“I wish you both the happiest lives, you have my blessing in this world and the next.” He finished with a satisfied smile, and pulled back from the camera.

Poppy gave a watery giggle, “Okay, I’ll give you that one, C.W. is sometimes really good with--”

“And if you’re ever feeling a bit frisky, I have another video--”

Jo hurriedly shut it off, and everyone on the roof laughed, but Ian and Poppy didn’t hear any of it. They were busy exchanging looks with each other, having a conversation only they could understand.

Notes:

My easter egg is that the code in the fic is the C++ code for Pong :)

Also, I absolutely believe that Ian and Poppy would be unbearable to be around as a couple. In a way that pleases me as a tv show viewer but as a standerby would make me run.