• Be sure to join the discussion on our discord at: Discord.gg/serebii
  • If you're still waiting for the e-mail, be sure to check your junk/spam e-mail folders

Context Switch (redux)

Spiteful Murkrow

Early Game Encounter
Hello everybody. For those of you who hang out around where I do online, you might recall me saying that I stated that I intended to do some touch-ups of my first two fanfics this year in order give them a new coat of paint with some better writing skills. Originally I was planning on doing them in their order of release, but after realizing that my first fic needed a little more than mere cosmetic surgery to do it justice, I decided to go in order of path of least resistance and start off with a rewrite of Context Switch.

Okay, so for those of you with really long memories, you might remember that in the leadup to ORAS’ launch back in 2015, I released a 6-part short story here following the story of Game Freak making games in games in Hoenn and offloading some fancy pieces of paper on the small handful of trainers that actually bother to complete the Pokédex. That’s still the case this time around, though I’ve gone back and made some structural changes and tweaks to address some criticisms of the original, as well as to update the development gags a bit for new information that’s come out in more recent years regarding the beta and development versions of Ruby/Sapphire.

This series will be targeting per-fortnight releases, though if I feel a chapter needs a bit more time in the oven to do its rewrite justice, it may come a bit later than planned. As an advisory, but once the rewritten version of Context Switch is complete, the link in my signature will lead here instead of to the original version, which you can read by this link here if you want to see a side-by-side for how things evolved, and this opening post will also contain a table of contents to better organize the story relative to its initial version. I would like to take a moment to extend my thanks to @Tangent128 , @Venia Silente , and @Dragonfree for beta reading the first chapter, along with all the readers and reviewers of the original story who motivated me to try and polish my original vision a bit.


And without further ado, let’s get right into this yarn of everyone’s favorite superpowered creatures and programming in a fresh post.
 
Last edited:

Spiteful Murkrow

Early Game Encounter


Part 1 - Adventure adventure = new Disaster();




A man with short and vaguely green-tinted hair followed by an excited Corphish made his way down a metal catwalk from a ship to the ferry terminal it docked up against. He paused for a moment to take in his long-awaited destination in this balmy, strange new land. While dense, the town the ship had taken him to lacked the vertical height of larger seaside settlements he’d seen before in other regions such as Goldenrod City, and was a sea of mid-rises and tightly-clustered houses. East of the urban sprawl, the man could catch glimpses of a beach and sandbars with indistinct figures milling about on the sand and in the surf.

"So… this is Lilycove City, huh?"

The man's attention was diverted from the town beyond the dock by a light but sharp nip at his leg, which prompted him to turn his gaze down towards his Corphish that was attempting to drag him along towards the terminal building.

"Alright, alright! I'm coming, Bracket!"

The Corphish - named ‘Bracket’ by his trainer after one too many sleep-deprived nights - eagerly pulled the young man past the doors of the ferry terminal and deep into a sea of bodies. There, the man saw a passing boy accompanied by a white cloud-like sprite who gawked together at the tiny screen of a yellow device with a folding hinge. Bracket and his trainer carried along through the terminal, snaking their way along pathways lined with stanchions, and made their way down to a baggage claim where suitcases circled about on a conveyor belt.

The man’s attention drifted off as he waited for his baggage to appear, spotting a girl with a net and straw hat walked past accompanied by a yellow chitinous creature that warbled a crisp rhythm with black-and-green rhombal wings on the other end of the carousel. On a nearby seat, an older woman rested next to her luggage as she looked at what seemed to be a case filled with little badges with ribbons along with a purple creature with tiny eyes and cream lop-ears. The Corphish tugged sharply at his trainer’s pant leg, turning the man’s attention to a passing red suitcase labeled ‘Keita’ on the name tag that the man hastily snatched off the conveyor belt and dragged to the ground. After a moment to sigh in relief, Keita looked back down at the Corphish, the trainer’s mouth curling up in a small smile.

"Heh. Sure picked the right place for a tropical vacation, don't you think?"

The two quickly focused their attention on an approaching man in a lei, who cordially greeted Keita and his companion with a sunny "Welcome to Lilycove, where the land ends and the sea begins!"

Bracket tilted his head blankly, while his trainer amusedly guessed that the greeter was surely reciting the town's motto. It struck him as certainly appropriate, but…

"Heh, but isn't all of Hoenn a place where the land ends and the sea begins?"

Keita quickly noticed a dawning realization come over the face of greeter. One that indicated the man with the lei was deducing that he and his Corphish hailed from further afar than initially presumed.

"Oh? Not from here?” the greeter asked. “For a second, I was sure that since you have a Corphish…"

"Nah, he's my partner… and headache for customs," the younger man chuckled back.

"Well, I'd like to think that you two aren't any more of an invasive species than the normal crawdads and tourists around here," the greeter teased. "So keep your eyes open- I think you two will find that Hoenn's a land of surprises after you get a chance to look around a bit!"

"I'll keep that in mind," Keita chuckled back.

It was then that he noticed a worker holding a sign for a bus with an eye-shaped logo and two words underneath that he could just make out. While Keita’s blissfully illiterate Corphish maintained his cheerful demeanor, a cloud seemed to settle over the trainer.

"Though… getting a chance to look around might be a bit tougher than I'd like it to be."

Alas, as much as Keita wished he were there as a tourist, it wasn’t leisure that had brought him and his Corphish to this distant land.




The two had come to Hoenn for work, specifically to help develop computer software. A short bus ride later, Keita soon found himself and his Corphish in the common room of a motel that had been furnished with low tables and cushions for use as a makeshift conference room.

Idle chatter floated around in the background as Keita took a seat in the middle of the room and gaped up at a patch of blank wall that was lit up with text and images from projector slides. After a man with a head full of healthy-looking blond hair, the room quieted as all eyes and ears in the room trained their attention towards the speaker. Given the speaker's relative age to most of the rest of the crowd, whether that color was natural, a trick of the lighting, or simply the product of liberally-applied hair dye was anyone's guess.

"Good afternoon, everyone. And welcome aboard to the dev team for the next generation of Capsule Monsters games."

Keita couldn't help but feel that this presentation was perhaps a bit less impressive than he had expected. After all, a dingy "Cove Lily Motel" was hardly the prestigious office environment that he thought he would be working in to help develop the third installment of a smash hit video game franchise. The blond-haired speaker continued on with his surprisingly dry introduction to developing video games, as Bracket started to pick up on his trainer’s disappointment and began to fidget restlessly.

"As I'm sure you all know, this is an exciting opportunity for all of us. When the first Capsule Monsters games were released, none of us ever anticipated that they'd bring such joy to children’s lives across our nation, much less across the world."

Video games, television shows, comic books, trading card games, an ill-fated musical production… perhaps it really would’ve been daft to have expected a series to become a phenomenon capable of moving a pile of merchandise and toys the size of Mt. Moon in just a few short years. Keita wondered if that success’ unexpectedness would explain the lack of ceremony to this debriefing as the speaker carried on.

"As Capsule Monsters now ranks among the world's largest multimedia franchises, it places some rather unique burdens upon our team in order to ensure that our fans are satisfied with the experiences we provide them."

The speaker seemed to pause reluctantly for a moment before continuing on with his speech, "Given the… erm… various hurdles that were encountered during the development of past games, senior management has decided that it made a bit more sense for our present project to follow a different paradigm than the ones we grew accustomed to in the past."

The speaker’s comment puzzled the young man. The earlier Capsule Monsters games had been fairly simplistic and developed for primitive machines. Then, the question was just what were these…

"Hurdles?"

Keita found himself answered by no shortage of takers, all of them more versed practitioners of his same trade.

"Surely you’ve heard the stories if you’re in this business. Why the first games were glitchy messes that were prone to save corruption if you so much as surfed down the wrong patch of water!"

"And there was that whole flap about the localization office in Unova wanting to redraw all of the sprites to make them more 'audience appropriate'."

"Those blasted games almost put this house into the ground. We spent six years just getting it ready for the initial release! If it weren't for the help from our publisher, the other developer they tapped to help us out, and all the Eevee that they gave us to give away to shoo out people coming into our office in Celadon City, we'd probably all be making spreadsheets right now."

The direction of the speech began to stray a bit, as some arguments broke out among the audience and Bracket began to grow restive and attempted to scuttle off to pinch at a table leg. The speaker was not terribly enthused with the various interruptions, and hastily attempted to re-rail the debriefing.

"Ahem. While I see that we all seem to have a healthy knowledge of those past hurdles, as I was saying, it is the intent of the firm to advance beyond them-"

Which didn’t go quite as the speaker had hoped, as the young developer noticed that the chatter in the audience had actually grown louder as an increasingly-agitated Bracket was resisting Keita’s attempts to restrain him without resorting to drawing his Pokéball.

"Hey, I was there in the trenches developing the second Capsule Monsters games- we got through it with just four guys and a little outside help!"

"Having to bring in one of the board members from the firm that handles our merchandising and licensing after two years to refactor the source code is not a 'little outside help.'"

It was at that point that the speaker decided that he had had enough, and blurted out, "Would you all stop being a bunch of rude children and let me finish?!"

The blond-haired man’s outburst proved to be just the thing needed to deflate the uncontrolled chatter, and incredibly even helped to settle Keita's Corphish down.

"Anyways, that is why for this development cycle they are bringing the team responsible for our previous successes along. Bringing a team of people from all around the world is hard, yes, but we didn’t flinch from that challenge. For example we chose to host development in a place new for everyone-"

"Not me. I grew up in Petalburg," a lone voice protested.

"For almost everyone on the team," the speaker added in a somewhat irked tone. "We have been asked to develop these games for brand-new hardware that launches in a matter of months, and has a massive audience to cater to. So it seemed only fitting to choose a relatively new development venue to host a project with so much uncharted water to cover."

The speaker further qualified the challenge. "Make no mistake, this will not be an easy project to be a part of, regardless of whether or not you stay the course for it. There will be late nights, aggravating bugs to squish…"

Bracket gave a small cry at the speaker's last comment, and hastily retreated behind his trainer's legs. Keita chuckled a bit and patted the crustacean to reassure him. "Don't worry, he doesn't mean you. You're a crustacean, not a bug."

The speaker carried on, oblivious to the incident towards the middle of the room. "But I'm sure you'll also discover that there will be camaraderie, and that the bonds that you form during this project live on well past release. To top it all off, you will be handsomely rewarded for your work…"

Some murmurs went about the room after the topic of bonuses came up. After all, this was a prestigious project, so surely the reward for completing it promptly would be generous.

"If you can deliver on the concept and design work that has already been done for you and stick to the twelve-month timetable that the publisher has given us."

Almost immediately, there was an outcry from the other programmers in the room.

"Twelve months?!"

"Are you nuts?!"

"We didn’t even have a playable build in twelve months for the last set of games!"

Keita melted into his seat, as he began to get a sinking feeling that he had perhaps gotten himself further in over his head than he’d imagined. Bracket also seemed to share the same sentiment, as he pawed about with his claws and chittered uneasily.

"Some tropical vacation this is shaping up to be, huh?"
 
Last edited:

Blackjack Gabbiani

Clearly we're great!
That's a really cute perspective! Are they still called Game Freak like they are in the games?
 

Spiteful Murkrow

Early Game Encounter
That's a really cute perspective! Are they still called Game Freak like they are in the games?

Yup. This is the incarnation of Game Freak from the devroom in the Cove Lily Motel from the original Hoenn games. So even if the staff roll doesn't look fully like reality, the name is the same since that's game canon.

And I'm running a little later than planned, but I'm here with the second installment of this series. Special thanks to @Tangent128 , @Venia Silente , and @Dragonfree for beta reading the first chapter, which will go live for your viewing pleasure in the post right after this one.
 

Spiteful Murkrow

Early Game Encounter


Part 2 - Extraneous Variables​




11 month(s), 29 day(s), 21 hour(s), 28 minute(s), 9 second(s) to deadline

One tense meeting later and the development of Capsule Monsters AGB officially kicked off, a release name shelved off to sometime after more crucial deliverables such as a playable build were finished. After the meeting cleared out, it came time for Keita and his Corphish to depart the makeshift conference room for their lodgings. Much like the entrance, the lobby, and the conference room he’d already seen at this “Cove Lily Motel”, there was not a hint of grandeur to his surroundings on the walk over to his room.

The garish, peeling paint and weathered shingles on the roof did little to spruce up the building’s dated architecture, and the occasional patches of rust on the metal railing of the semi-exposed hallway that the rooms had been built along similarly didn’t help. Beyond the cosmetic imperfections, the fact that its owners still relied on metal keys to lock the rooms was just another sign the motel hadn’t been renovated recently. At the ground level, there was a deserted puddle of a pool surrounded by some sun-faded patio furniture downstairs that Bracket eyed in between pinches at the base of the second floor railing. The Corphish’s amusement and curiosity entirely failing to transmit over to his unimpressed trainer.

"This is going to be our home for the next 12 months?"

Keita sighed and slipped his room key in, twisting it to the right and, after a short struggle, hearing a dull click as the door unlocked. The sound of Keita’s fight with the door caught his Corphish's attention as Bracket turned up to see Keita with his hand on the doorknob.

"Guess we'd better see who our two roommates are…"

Keita walked into a small hallway and was immediately struck by the relative size of the room. The first thing he noticed was that the place had been laid out as a suite, clearly meant for customers that planned on staying for an extended period of time. The second was the fact that a good deal of the room’s free space had been taken up by added desks. On them various papers, PC towers, and bulky and boxy monitors were strewn about, along with oblong handheld devices tethered to squat white boxes with ribbon cables that the man presumed were the devkits.

Keita’s examination of the suite was interrupted by a small voice squeaking, as he and his Corphish saw a small, mostly-blue mouse with rounded ears bouncing in on a tail orb roughly the same size as its body. There was a moment between the man's Corphish and the surprise Azurill as the two cautiously sized each other up, leaving Keita to stop and wonder to himself where the little Normal-type’s trainer might be.

Before he could raise his voice to speak, Keita’s questions were answered by the sound of approaching footsteps from the room and an older man with bluish-black hair entering the hallway. When the two met each other's gaze, the first thing that struck Keita’s mind was his counterpart had probably worked at the firm for a good while… or at least his age certainly made him look the part.

"Oh, hello! Are you that programmer who's sharing the room?"

Keita blinked back in surprise, as he hadn’t anticipated that he would be paired with roommates that were visibly older than him, much less ones that wouldn’t be sharing tasks with him. Additionally, the papers on the man's desk and the contents of a boxy monitor on it, although ruining an otherwise unimpeded view of the sea, seemed to be unusually colorful, to which the young man spoke up, "Yeah, that’s right. I’m Keita from the new team brought aboard. And you're…?"

"Why, your maestro of turning ink and paper concept sketches into sprites, of course. I'm Satoshi from the graphics design team," the roommate responded.

With that mystery cleared up, the young man briefly caught a glance of the blue mouse cautiously nearing his Corphish. Bracket had not quite devoted his attention to the Azurill and was cautiously clicking his pincers, clearly sharing his trainer's curiosity for the mouse’s purpose here.

"And the Azurill?"

"She’s a bit of a newer friend I made out here,” the graphics artist answered. “You could say that she's become a bit of a muse. And what about you? Bring anyone along to fit the role?"

Bracket took the opportunity to cut in and answer the artist with a sharp chitter, waving a pincer cheerily at the man at the other end of the doorway.

"Yeah, I did, actually. That’d be my Corphish, Bracket."

No sooner than Keita’s words had left his mouth, Bracket scuttled forward in an attempt to nip at the mysterious orb attached to the blue mouse. The Azurill, narrowly dodging the Corphish's grip, squeaked and bounded up onto a counter in the other room. Keita quickly tugged his Corphish back, and after an awkward pause, sheepishly attempted to excuse his Pokémon's behavior.

"Sorry about that, Bracket's just a bit feisty."

"I can see that," the artist grumbled.

Keita attempted to clear the air with small talk, only to notice that there were three beds set out in the suite. Now that he remembered it, he could’ve sworn that in orientation, it’d been mentioned that...

"Weren't we supposed to have three people in this room?” he asked. “So then who's our other roommate?"

"You didn't already know?"

Keita heard the door open again, and as he turned, Satoshi motioned over his shoulder and said, "It's the Director, the guy in charge of this entire project"

Much to Keita's horror, it truly was the blond-haired speaker from the debriefing. The young programmer's face rapidly drained of color as it began to sink in that he would be spending a full year in the same room as the project's leader, with him hovering over his shoulder to scrutinize every little potential snag and pass it directly on to his immediate superiors.

Keita attempted to put on a brave, if obviously blanching, face and hesitantly put out an arm to offer a handshake to his senior.

"Er… n-nice to meet you, sir."

The Director for his part seemed to not be wholly unfazed by Keita’s discomfort as he reciprocated his handshake. All the while, a small teal Pokémon with a protuberance coming from its head, two arms on the sides of its face, and a black tail marched in with a commanding air headed over towards the Corphish.

"While I'm sure you were expecting someone a bit lower on the ladder to be rooming with you, I hope that it helps take some of the edge off of the experience,” the Director said with a wry smile. “After all, I don't bite."

It was at that exact moment that the teal Pokémon in the background let out an abrupt cry. All eyes in the room turned to see Bracket playfully grabbing one of the Wynaut's arms with his pincers, and the teal Pokémon abruptly slamming the Corphish into a wall to break free.

As the stunned crustacean hastily retreated behind his owner, Keita became acutely aware that the Director was leveling a withering glare over towards him.

"Apologies sir,” he insisted. “I swear that he's normally better behaved."




10 month(s), 20 day(s), 12 hour(s), 45 minute(s), 49 second(s) to deadline

Keita’s work typically consisted of a series of two-week cycles, in which the final product of a functional game to be sold to customers was inched towards little by little. Each cycle, new objectives were decided on, and then implemented to build out more and more of the games’ engine and its underlying logic.

There was a good deal of group conferencing, crude whiteboard sketches attempting to visualize logical flows for data and events, and division of tasks among Keita and his fellow programmers. However, in the end, the bulk of the work consisted of typing out text to be added to an agglomeration of computer code in a development environment and watching varying messages flash in a terminal. From there, that code, the source code, as it was called, would be forced through a compiler, a program which would turn people's snippets of text into programs containing instructions to be interpreted by one piece of hardware or another.

Indeed, even before the first cycle started up, Keita already knew that the process which was so fundamental to his craft probably would have struck an average passerby as less interesting to watch than the Taillow preening itself on his window balcony at that very moment. The man pored over some text in his terminal, pawing at his head in confusion over a stubborn bug when he noticed his Corphish tugging at the back of his pant leg.

"Oh. Hey Bracket… did you come to help me find out what’s going wrong with this callback?"

Bracket visibly paused at his trainer’s question. After all, what his trainer seemed to be doing appeared rather unremarkable, while his tone of voice sounded strangely playful. The Corphish, perhaps against his better judgment, humored his trainer’s request and gave a cheerful call as he awaited whatever his trainer had on his mind.

"Heh… I suppose it couldn't hurt to describe what I'm working on."

The programmer stooped down and lifted his charge up onto the desk, where the contents of a text editor were visible on his monitor.

Code:
///////////////////////////////////////////

void init_menu_callback(menu_evt * event) {

    if (event -> active == TRUE) {

        menu_type = event -> subtype_ID;
        render_menu(menu_type);
        lock_map_controls();

    } else {

        unlock_map_controls();

    }

}

///////////////////////////////////////////


"So this is the block that handles how the callback for the menu works,” Keita explained. “I'm pretty sure that this logic is correct, but the error messages say that something's coming from here. Basically, every time that the game detects that there’s a menu event, it updates a global static variable with the new type of menu, and then it uses it to-"

Keita trailed off into a brief silence as he noticed that the entire time, Bracket had not made a sound, but was eyeing the screen blankly.

"You didn't understand a word that I just said, did you?"

Bracket responded with a call that Keita could have sworn had a sheepish tone to it.

"Of course. Uhm… Should I use one of the dev kits to demonstrate?"

The Corphish then decided that perhaps it would be better to leave his trainer alone until he was less preoccupied with work and cheerfully scuttled off to go pester Satoshi's Azurill and the Director's Wynaut in the other room of the suite.

"Yeah, I didn't think that would help much either. I guess I'm on my own here," Keita sighed.




9 month(s), 1 day(s), 18 hour(s), 15 minute(s), 57 second(s) to deadline

Keita’s craft was one characterized by fits and starts of productivity, much as a writer finds himself oscillating between near-total lack of accomplishment on one day and great progress on the next. Alas, this day was of the former sort as the programmer attempted to puzzle out a strange error message from the compiler.

"Bah…"

Keita noticed that Satoshi, while on his way out from the room with his Azurill, seemed to hesitate as a faint sound from outside occasionally reverberated. After a moment watching the graphics artist linger, Keita in light of his lack of progress decided to give his mind a short break to go see what his coworker was looking at. On his way to the door, he was joined by Bracket, who had taken the opportunity to free himself from an attempt by the Director’s Wynaut to badger him into parting with an Oran Berry.

"Hmm? Did you see something out there, Satoshi?"

There, Keita looked down towards the motel’s unimpressive pool and saw a brown and green sauropod with what appeared to be a clump of yellow fruit attached to the base of its neck walking about in circles. The creature would periodically look about and call out, seemingly expecting a response from something.

"Is that little Tropius still pacing around the pool?"

"Eh?"

"You didn't see her this morning? She was pacing around and calling out just like this then, too."

As the Tropius continued her ritual, it dawned on Keita that the Pokémon seemed rather disoriented, as if she had gotten lost and wasn’t sure where to go. His attention lingered on the young Grass-type for a moment, and he couldn't help but feel some pity for her as she paced about.

"She’s been doing this since the morning?” he asked. “Where have the hotel staff been during all of this and why haven't they brought her to her trainer?"

The graphics artist said nothing, before shaking his head back with a sigh.

"I'm certain it will sort itself out, Keita. Just leave her be."

As the graphics artist and his charge departed, Keita watched the Tropius for a little longer before returning to his post. After all, Satoshi was a senior coworker, and if he was convinced the matter would blow over, there was no sense in making waves over it.




9 month(s), 1 day(s), 10 hour(s), 58 minute(s), 12 second(s) to deadline

That evening, Keita found himself making a run over to a convenience store to pick up some small snacks and a few drinks after a long meeting with his fellow programmers. The twilight trek back with Bracket and his purchases from the store was an underwhelming end to an underwhelming day, with the only excitement that he’d encountered thus far on his journey being a few local children engaging in an impromptu stunt competition with Acro Bikes right when he’d started his journey back to the motel from the convenience store.

The programmer made his way back through the motel lobby, and then back out into the open-air hallway. There, on his way to the stairs, he chanced to run into the graphics artist from his room.

"Heading back so soon?” Satoshi asked. “I'm surprised you're not off at one of the after-hours socials."

"Meh, I had a little more work to finish up-"

Keita trailed off after his attention turned towards the motel pool, where saw that the Tropius he and Satoshi had spotted at around noon was still there. She was no longer pacing about as she had earlier in the day and appeared visibly exhausted and distraught. Every now and then, she would crane her head upward towards the sky, seemingly waiting in anticipation for something or someone that kept failing to come. The pair’s Corphish and Azurill stopped and similarly looked through the bars of the hallway’s railing, as the two Pokemon and their trainers couldn't help but trade pitying looks with each other for the poor creature.

"Her trainer still hasn't come to pick her up after all this time?" Satoshi murmured.

"It feels strange that someone would just misplace a Pokémon that big,” Keita mused to himself. “Maybe she should spend the night with us."

The graphics artist turned his head back to his junior coworker. While his face betrayed obvious discomfort with the Grass-type’s plight, even then he couldn’t help but hesitate over the suggestion.

"I don't know… taking in a Pokémon that we don't have a Poké Ball for?” Satoshi asked. “In a room full of computers and devkits?"

"I'm sure that we'll be able to manage."

With his mind made up, Keita walked over to the gate to the motel pool and undid it. The young man strode forward onto the pool concrete with his crustacean in tow, and called out to the young Tropius as he approached.

"Hey!"

The creature instinctively got to her feet, and began to backpedal nervously, beating her four leafy wings a bit. The programmer noticed that one of them seemed to be stiff and moving slower, if lacking external signs of injury. Perhaps the Tropius had sprained it from overwork, or clipped it against a hard object while her caretakers were out.

Still, Keita knew better than to try and force another trainer's Pokémon into an encounter it was uncomfortable with, and hesitated a moment. After looking down at his bag from the convenience story, he dug out a soft drink and approached the creature with a noticeable berth. The programmer stooped down and undid the top of the drink, before presenting it to the Grass-type as Bracket waved to the young Tropius with a congenial chitter.

"Come on, don't be shy… you want a better place to sleep tonight than on that hard pool concrete, don't you?"

The Tropius paused for a moment, and then slowly approached the man before seizing the soft drink with her mouth and beginning to drink its contents. The Grass-type's guard had been lowered, and she seemed soothed as the programmer gave her long neck a cautious pat.

"Heh. See, we're not so scary, right?"




9 month(s), 1 day(s), 7 hour(s), 14 minute(s), 43 second(s) to deadline

Later that night, Keita backed away from his keyboard, deciding to leave his after-hours battle with the current sprint’s tasks aside and take them up again at a better hour. He turned over his shoulder, where the Tropius from the pool gawked around curiously at the room’s furniture and the various monitors and electronic equipment strewn about it, much as she had when he and Satoshi brought her in. The programmer heard the door to the suite unlock, and he looked over just in time to see the Director come in through the hallway, who at once noticed the young Tropius and raised a brow.

"Ah. Caught a local companion for your Corphish?"

"Er… Technically, I didn't. I found her down by the pool,” Keita sheepishly admitted. “I left a call for the front desk to ask around for her trainer, but I hadn’t heard anything back yet."

The comment caused Satoshi to look up from some papers he was sketching on, an uneasy look spread all over his face; his Azurill seemed to pick up on it as the Pokémon shrank into a corner in response.

"Right, about that...” the graphics artist began. “According to the front desk, the Tropius is apparently a female stranded from a herd that flew through about a day ago."

Keita blanched and stiffened up, wondering to himself if he had misheard his colleague's words.

"Wait, what?"

"You didn't know? Tropius can fly,” Satoshi explained. “I mean, they have to exploit updrafts and glide for most of it, but they can cover some decent distance while airborne."

"So then… this Tropius doesn't have a trainer?", the Director asked as his eyes narrowed into a deepening scowl.

The graphics artist hesitated for a long moment, before speaking up with a grudging sigh.

"It doesn't sound like it, no."

Keita and Satoshi traded looks with each other as the Director buried his face into an open palm. All the while, the Tropius carried on poring over the equipment in the room as Bracket sidled up, blissfully unaware of the conversation between the three trainers. Keita blanched as a sinking expression settled over his face, while his senior colleague shot back a small glare reminding him that their present embarrassment was completely avoidable.

"You brought a wild Pokémon into our room?" the Director fumed before turning his attention to the graphics artist, "And you didn't stop him?"

"Well, I didn't know she was a wild Pokémon!” Keita protested. “And she's been really well behaved all this time!"

Just then that uneasy quiet in the room was broken by a sharp cry from the Tropius. Keita whirled around and saw that Bracket had latched onto one of the Tropius' wings, causing her to dash about wildly trying to knock him free.

After upending some furniture, she eventually succeeded at dislodging the Corphish after swatting him into the side of the bulky monitor at Keita’s workstation. The screen fell from the desk to the floor with a loud crash as the glass tube inside imploded and spewed shards onto the carpet. Back at the other side of the desk, the Tropius hastily retreated to the side of the programmer baying as Bracket hissed back indignantly at the new stranger and her overreaction to what was merely a friendly nip.

"Probably not the best timing there," Satoshi whispered. Keita gulped, turning back to the now-seething Director, who quite obviously had had enough of the chaos in the room.

"That monitor's coming out of your paycheck. Either get a Pokéball for her or else get her out of here!" he barked at the junior programmer.

"Ulp. Yes, sir."
 
Last edited:

Blackjack Gabbiani

Clearly we're great!
Ooh I wonder how the Tropius is going to play into their development.
 

Venia Silente

[](int x){return x;}
Congrats on the new release! And it's good to work that the code snippets work well.

Most of my commentary (both in-development and on release version) on this story would likely match my commentary for the old version, but one thing I wanted to more overtly state is that it's a good work to mention and have things work that make the story look and feel *specifically dated*. A good example is the "crude whiteboard sketches attempting to visualize logical flows for data and events", which not only calls back to a pencil-and-paper stage of development (and "un-finality" of the work) but also makes one reflect in comparison to more "modern" works that require lots more work to get the same final effect (*eyes hissingly at Umbrello*).

How to Try and Get Rid of a Tropius:

Director: "Either get a Pokéball for her or else"
- Famous Last Words o3o
 

Spiteful Murkrow

Early Game Encounter
Ooh I wonder how the Tropius is going to play into their development.

All in due time, good sir. But she definitely winds up leaving her mark on these games by the end of the story. ^^

Congrats on the new release! And it's good to work that the code snippets work well.

Most of my commentary (both in-development and on release version) on this story would likely match my commentary for the old version, but one thing I wanted to more overtly state is that it's a good work to mention and have things work that make the story look and feel *specifically dated*. A good example is the "crude whiteboard sketches attempting to visualize logical flows for data and events", which not only calls back to a pencil-and-paper stage of development (and "un-finality" of the work) but also makes one reflect in comparison to more "modern" works that require lots more work to get the same final effect (*eyes hissingly at Umbrello*).

Well I’m glad to hear that the story seems to be feeling period-appropriate to you. Since it’s really easy to wind up slipping into anachronism when doing a period piece in even relatively recent history.


- Famous Last Words o3o

Yeah… that didn’t quite work out quite how the Director was expecting. o3o;

Also, scheduling wound up shaking out a bit weird since the new installment wound up getting published with some… ahem other work. But the third installment of Context Switch (redux) is finally here! Special thanks to @Tangent128 , @Venia Silente , and @Dragonfree for beta reading this chapter, with Venia Silente providing additional help sanity checking some code through by running it through some old versions of the GCC and LLVM C compilers. As usual, today’s chapter will go live for your viewing pleasure in the post right after this one.
 

Spiteful Murkrow

Early Game Encounter


Part 3 - Features May Vary



6 month(s), 28 day(s), 10 hour(s), 2 minute(s), 12 second(s) to deadline

As the weeks went by and the shock of the encounter with the Tropius wore off, Keita found himself once again hard at work in front of a hastily purchased replacement monitor. With time, even the visibly mismatching monitor had melted into the normal order of things as the first quarter of the project gave way to the second and the team was on the cusp of finishing a playable build.

In the midst of the flurry of change over the past two months, there was yet another change to the programmer's routine. Against his better judgment, Keita had taken up the Director on his ultimatum, if not in the way his superior expected: he had sourced a Pokéball to keep the Tropius in and even, after a more sleep-deprived night, dubbed her 'Paren' in much the same fashion as he'd named Bracket. The Pokéball was a green-topped capsule with yellow rings, a design originating from a project by the local Devon Corporation that was fine-tuned for the needs of younger Pokémon.

To Keita's relief, his initial worries of how well Paren would adjust to life under a trainer's care had been premature, as it quickly became evident that she'd taken an unexpected shine to her trainer's environs. This particular day was but another point that reinforced his sentiments, as Paren drew near to the young man's workstation in the middle of a balmy Hoenn day.

"Eh? You're not going to go out to stretch your wings? I left the door open for you and everything."

Much to Keita's surprise, Paren seemed more entranced with the strange box and button-covered strip her new trainer was interacting with. The Tropius had already deduced in the past that he manipulated it somehow every time he sat in front of it, and seemed curious about what the greenish-haired man found so interesting about the screen and the multicolored glyphs that popped up in different boxes on it. Keita tilted his head back at the Grass-type for a moment, not fully sure as to why the Tropius had taken a shine to his handiwork now of all times…

"Oh, this? This is just some code that I'm trying to debug. Nothing special, really."

Perhaps the novelty of the human world had yet to wear off for Paren, perhaps she wanted to get to know her trainer better, or perhaps the Tropius had been motivated by the small rivalry she had developed with Bracket for their trainer's attention since her stay began. Whatever the cause, Paren's interest in Keita's work certainly made programming much less solitary for the young man, especially on days such as this one where Satoshi was busy with his peers from the art and sound teams down the hall.

Keita was quietly grateful for Paren's companionship, especially now when he was busy reviewing some new snippets he'd written up. In his field, programmers occasionally would sanity-check their work by explaining it aloud to an inanimate object like a rubber Psyduck, or in other cases to their Pokémon. And unlike Bracket's usual fickleness, Paren had always proven to be a fairly reliable muse, and even gotten Bracket to suddenly take an interest in sitting in on his work, leaving Keita to pull up a file he was working on for the viewing pleasure of his audience of two.

"Not sure how you got interested in this, Paren," Keita murmured. "Let alone how you managed to get Bracket interested in sitting still watching me code... but let me take things from the top."

Code:
///////////////////////////////////////////

#define SELECT_MON 0
#define WAIT_OTHER_SELECTION 1
#define CONFIRM_SELECTION 2
#define WAIT_OTHER_CONFIRM 3
#define SEND_MON  4
#define RECEIVE_MON 5

///////////////////////////////////////////

Keita began to scroll through line after line of code with subtle taps on his keyboard as Paren and Bracket followed along with their eyes. While the pair surely could not understand the characters on the screen, Paren seemed enthused with the differing colors that the text editor rendered different statements as, and Bracket was keen to project an outward sense of excitement to match her in front of his trainer.

Code:
///////////////////////////////////////////

while (_trading) {

    switch (trade_state.mode) {
        case SELECT_MON:
            update_selectmon(trade_state);
        case WAIT_OTHER_SELECTION:
            trade_idle();
        case CONFIRM_SELECTION:
            trade_conf();
        case WAIT_OTHER_CONFIRM:
            trade_idle();
        case SEND_MON:
            send_data(trade_state);
        case RECEIVE_MON:
            update_data(trade_state);
    }

}

///////////////////////////////////////////

The programmer explained the shifting lines to his charges, scanning the code with his eyes to ensure that his explanation matched up with the actual functionality of the lines of code on the screen.

"And this is a state machine for trading. That part there checks if the player wants to trade, and then waits on another player," he explained. "Normally the event that triggers the different cases here would be sent from a second console through a Link Cable, but we're allowed to cheat a bit for now. Anyhow, my problem is that something is going wrong with the last-"

As Keita continued his explanation, he was interrupted by the sound of the room door opening from outside. The Director walked into the room and made his way over to Keita's workstation, giving him a skeptical frown along with his Wynaut after seeing the programmer and his two Pokémon crowded at the desk. He momentarily scanned his subordinate and his charges before speaking up with a quiet clearing of his throat.

"Hard at work, I see."

"Oh! Er… yes, of course. I was just reviewing the changes that I made to the state machine for trading," Keita explained while hastily turning to face his blond-haired superior. Bracket and Paren seemed to be taken aback themselves, as the pair traded sheepish looks with the Director's disapproving Wynaut.

The Director for his part was a bit more cordial towards the young man than his blue companion, too cordial perhaps. It became apparent in short order that there was more than it appeared behind the Director's amiable demeanor, as he had approached the programmer with an ulterior motive.

"Trading, eh…? In that case, perhaps you'd like to take a bit of a break from your current task," the Director suggested. "I actually just got a heads-up from some of the other programmers that they're presently having some issues with the monster data structure."

"Oh…?"

"If you could pitch in and help with their problem, I'm sure that they'd deeply appreciate it."

The programmer paused and thought for a bit. It seemed peculiar for such an abrupt change of work, but the Director wouldn't have approached him directly about this matter without a good reason.

"I suppose that I could help for a bit," Keita finally replied. "I mean, I think the problem that I'm encountering right now shouldn't be too hard to fix later…"



6 month(s), 28 day(s), 9 hour(s), 49 minute(s), 9 second(s) to deadline

A little over ten minutes later, Keita and his Pokémon walked the last few steps up to the doorway to the conference room where their project's initial debriefing took place. Bracket and Paren traded puzzled looks with each other for a moment as Keita stepped forward and pushed the door open.

"Hello, I heard that you guys needed some help with the-"

...only to find the room packed from one end to the next with monitors and whiteboards, along with roughly a third of the programmers on the development team, far more than Keita had expected.

"-monster data structure?" he asked. Keita stepped forward and entered the room with his Pokémon, the lot looking about their surroundings with freshly-evoked unease and suspicion that something was dreadfully amiss.

An older bespectacled man with an accompanying Porygon beckoned the younger programmer to come in and lend his aid towards what was quickly becoming evident to be some manner of serious quagmire.

"Pull up a chair, kid," the Porygon trainer insisted. "It's not like we've been making any progress lately."

"Eh? Why not?"

"Take a look at this."

Code:
///////////////////////////////////////////

typedef uint8_t Uint24_t[3];

typedef struct Party_mon {

    uint8_t mon_index;
    uint8_t h_item_index;
    uint8_t move1_index;
    uint8_t move2_index;
    uint8_t move3_index;
    uint8_t move4_index;
    uint16_t ot_id;
    Uint24_t exp;
    uint16_t hp_ev;
    uint16_t atk_ev;
    uint16_t def_ev;
    uint16_t spd_ev;
    uint16_t spe_ev;
    uint16_t indiv_val;
    uint8_t move1_pp;
    uint8_t move2_pp;
    uint8_t move3_pp;
    uint8_t move4_pp;
    uint8_t frnd_val;
    uint8_t cprs;
    uint16_t catch_dat;
    uint8_t mon_lv;
    uint8_t status_cond;
    uint8_t swap;
    uint16_t cur_hp;
    uint16_t max_hp;
    uint16_t atk;
    uint16_t def;
    uint16_t spd;
    uint16_t spa;
    uint16_t spd;

};

///////////////////////////////////////////

The Corphish, Tropius, and their trainer all traded blank looks as the man explained the meaning of the long block of characters on a boxy screen not unlike the one at Keita's workstation.

"That is what the data structure for Capsule Monsters from the last set of games looks like. We have this blasted thing kicking around still to support trading up from the last games."

"Yes? What's so strange about that?" Keita asked. "Wouldn't we logically be using a data structure not too different from this one for compatibility reasons?"

Some other programmers nearby interjected from their computers after hearing the question.

"Tch, you wish. We're supposed to throw in a bunch of hidden personality values onto this. Change the way that maximum stats for a monster are seeded, and give them abilities to make them different in battle on top of it all."

"And don't forget that set of stats for that side mode based off of Contest circuits the Director thought of. For guys who want every player's monster to be one-of-a-kind, they sure aren't helping with giving us 48 bytes to work with!", a man offered between exasperated rubs of his brow.

Ah… Keita had heard that the concept behind Capsule Monsters had been based around its creators' experiences training Pokémon when younger. So then it sounded like one of the goals of the new games was to make them more accurate mimicries of the Pokémon training that inspired it.

Even so, the young programmer still couldn't understand why this would be such a big bottleneck.

"But aren't you making the new data structure larger to accommodate all of this?" Keita asked. "I thought that's what you did for the last set of games."

"We've been trying," the elder programmer snapped. "Expanding the structure isn't the problem."

"It's getting everything down to 48 bytes for trading a monster over to the previous games, and then putting all of those extra bytes back when you trade it back up."

Keita fell silent, as Bracket and Paren traded worried looks with each other and the color drained from their trainer's face. Somehow, even they seemed to pick up the programmer's terrible realization of just why everyone was stuck here.

"I think I can see how that'd be a problem."



5 month(s), 29 day(s), 14 hour(s), 32 minute(s), 58 second(s) to deadline

Two development cycles later, the problem of what to do with the new games' data structure remained unsolved. The team had made attempts to dance around the issue and continue working on other parts of the project, such as ironing out bugs with the trading data states, but there was only so far that they could kick the can down the road before the bottleneck started to stymie their progress entirely.

The air was tense that day, a full month later of futile battling with the monster data structure. The lack of a breakthrough weighed heavily on everyone in the room, not least the Director, who was visibly racking his mind to try and present difficult words to the gathering.

"It has come to our attention that there are some… critical bottlenecks for being able to handle data transfer between the last set of Capsule Monsters games and our present project."

Voices quickly rose up from around the room in protest, their speakers exasperated with the lack of progress in attempting to coax these new features from the base of a legacy data structure that had never been built with them in mind.

"Look, it's been four weeks with no progress," a programmer at the front objected. "We've tried everything. We've tried making caches for the extra data on trading, we've tried injecting data into the unused byte at the 33rd offset to try and rebuild all the extra bytes."

"To be blunt, nothing's working," a voice from the back interjected. "We haven't even gotten one-way trading from the old games to work consistently thanks to that data corruption bug."

Low grumbles filtered about the room along with sharp scowls at the speaker's passing mention of the 'data corruption bug,' which had merely added insult to injury for the team's struggles. In spite of that, the Director remained undeterred and continued on speaking.

"Yes, I understand that. But the office is adamant that these new features be implemented," the Director sternly replied, to a chorus of frustrated groans from the audience. It was then that he presented a possibility that even the audience had not considered.

"Even if it means having to make a few sacrifices."

Keita instantly heard murmurs filter about the room, and began to wonder if his roommate was implying that they should make an entirely new data structure even though that meant...

"Wait, you're not seriously considering gutting backwards compatibility, are you?" the programmer at the front asked.

The Director reluctantly nodded. "Between this and the problems that the rest of your team have been encountering with the clock system, I believe that we will need to make some difficult decisions to make our deadline."

Keita noticed Bracket and Paren had begun to trade concerned glances. Apparently they had seen the visibly sinking expression on his face, and of those of the others in the audience.

"But half the material we've been given to work with assumes tight continuity and connectivity with the last game!" one of the scenario designers cried out.

"I'm aware of that," the Director replied. "And I'm saying that it appears that we're going to have to take a bit of a more uncharted approach to fill those gaps."

Another round of groans went around the room. This was a massive shift in the direction for the game, and the timetable that had been initially given to the team was already half-gone! Satoshi from the hotel suite raised his voice in protest, spelling out just what the Director's suggestions would entail.

"Director, how on earth are we supposed to come up with stopgaps for half a campaign and setting on top of throwing a game together?!" the graphics artist exclaimed.

Keita looked back blankly at the Director. Yes, surely making a setting and new story from scratch in less than six months was an obvious non-starter. After all, where on earth would they get all of that material from?

It was then that his attention was drawn to Paren reflexively batting one of her wings. Like Bracket, the Tropius also grew fidgety when kept deprived of distractions for too long, of which there weren't terribly many lying around in the dimly lit conference room.

Yes, it was as clear a sign as any that she needed some outside air, out in the tropical Hoenn weather. Out in that big region which was supposed to be a haunt for tourists.

Keita paused and blinked for a moment, as a spark of inspiration suddenly crossed the programmer's mind.

"Wait a minute… I think I actually know how we can do that," he interjected.

It was more than a little daft, but at this stage, what did the team have to lose? So it was that the young man stood up from his seat, raised his voice, and made the fateful suggestion that would make or break the project over the course of the remaining six months:

"What if we took some notes from our surroundings? And then used that for the game's setting and campaign?"
 
Last edited:

Spiteful Murkrow

Early Game Encounter
Author's Note: Special thanks to @Tangent128, @Venia Silente, and @Dragonfree for beta reading this chapter.



Part 4 - Amelioration Patterns



5 month(s), 28 day(s), 8 hour(s), 41 minute(s), 22 second(s) to deadline

Not long after the fateful conference in which it was decided to scrap the existing campaign plans of Capsule Monsters AGB, Keita and his roommates found themselves far removed from their hotel room for trips out into the field about Hoenn in search of inspiration. Their journey that day had taken their assigned group to a barren waste of sand hemmed in by mountains north of Mauville City. In the distance, a Trapinch could be seen pawing at the ground outside a sand pit, seemingly attempting to doodle something into the earth with its feet.

The desert had some charm with its rolling dunes and ever present glimpses of phantom water just beyond the horizon. But then there was the blistering heat, and the sun beating down on the team and their Pokémon as they stared wearily at rolling dunes ahead of them.

"How on earth did you ever get us into this, Keita?" Satoshi asked while wiping away some sweat from his blueish hairline.

Keita gave a sheepish look back at his coworker, with a quick glance over at Bracket and Paren evidencing that even his own Pokémon were visibly unamused with the current day trip. Sensing that the party as a whole was a bit agitated with their current field work, the programmer spoke up and attempted to check his companions' less-than-welcome reception.

"Well, hey, it's one way to get out of the hotel room, isn't it?"

"Do keep in mind that there is a practical purpose to this. This is field work for getting ideas for the game," the Director reminded. The Director's Wynaut was quick to mimic his trainer's feelings by sternly pointing at Keita and giving what the programmer presumed was a withering scowl just like the one his blond-haired superior was giving him.

Satoshi's Azurill began to tug impatiently at her partner's pant leg. The graphics artist stooped down and attempted to soothe her with water from a plastic bottle, only to find it bereft of all but a few drops.

"Well, what is there to take away from this aside from deserts being terrible to stay hydrated in?" he said in exasperation as Keita began to climb a dune in front of the group.

"The brochure mentioned that there was supposed to be a ruin of an ancient tower somewhere along the route that runs through here," the programmer explained, before raising a hand to his brow. Bracket and Paren traded puzzled looks with one another as they tried to follow their trainer's gaze, only to find nothing but a mound of rocks and a Sandshrew burrowing underneath it.

"If we can find it, maybe we can take inspiration from that-"

As Keita neared the top of the dune, he had the misfortune of having a clod of sand from the ridge thrown into his face by a strong gust. The programmer recoiled, jerking back and cradling his eyes as he attempted to spit sand out of his mouth.

"Ackpth! Okay, so that's why they were selling those goofy-looking goggles back at the rest area!"

As Keita's Tropius and Corphish rushed to his aid, Bracket took a perhaps ill-advised attempt to wash out the sand from his trainer's eyes with a Water Gun. As Keita flailed and protested, the Director glanced at the unfolding chaos, thoughts stirring in his mind.

"Hmm… the sand and wind acting as a barrier…" the Director mused. "We do need some ways to keep players from wandering into parts of the world they're underleveled for. I think something like this might be just up our alley…"



5 month(s), 21 day(s), 4 hour(s), 45 minute(s), 13 second(s) to deadline

A few days later, Keita and his roommates found themselves and their charges walking down a route encrusted in a never-ending rain of light-gray volcanic soot. In somewhat grayed foliage, Spinda with perpetually dazed expressions moved to and fro erratically around their surroundings.

"So… this is where all the ash for those glass-blown flutes comes from…"

Keita had read of this place on yet another travel brochure, but seeing it in person was all the more mesmerizing. The Pokémon with them seemed to likewise find the novelty of the gray land around them entrancing: spending time lazing about drawing patterns in the soot as they traded playful calls with each other.

"It's like a snowy landscape…" Keita mused. "Except it's hot and muggy and much worse for your lungs."

The Director raised a hand to his chin and looked about, and noticed that the Pokémon playing around them were starting to take on shades of the surrounding soot as it clung to their bodies.

"I notice that the ash tends to stick to you as you move through it…"

"Er, well of course," Satoshi explained. "It's how people around here gather the soot in the first place. They carry around a bag and let nature do the hard work."

The Director said nothing in reply at first, before quietly murmuring to himself in realization. They did need some places in their new games' world to show off the power of the new hardware they were developing for. And this strange route, with an almost monochrome appearance that seemed like something straight out of one of the first Capsule Monsters games, could be just what they needed to inspire such content.

"Hmm… we do need a few routes in the setting that are more than just normal tall grass and patches of water. Let's keep something like this place here in mind…"



5 month(s), 15 day(s), 15 hour(s), 6 minute(s), 40 second(s) to deadline

A few days afterwards, Keita and his roommates found themselves in an island town of whitewashed buildings that overlooked a caldera lake at its center. Given the plethora of eateries and souvenir shops, the town appeared to be a popular haunt for tourists, but they all were strangely empty that day.

The reason for the seeming incongruity was quickly discovered after Keita and his roommates found a young child from the area, who told a tale of a particularly stormy night just a couple months before the start of their project that had abruptly upended that year's tourist season.

"And the sky was dark and thundering, and the earth was shaking- And there were these red and blue Pokémon that were all 'Rawr, I'm gonna eat you!' and 'Bump wiggle wiggle' with each other!" he exclaimed. "And then this green sky gecko showed up and the two got bored and left."

Keita and Satoshi traded blank stares with each other after hearing the child. Even the Pokémon with them seemed to feel as if perhaps the explanation the child offered was a bit… incomplete, and not quite telling the full, likely far more worrisome story.

"I'm starting to understand why that news coverage of the big storm last year seemed like it was missing something," Satoshi murmured.

"No kidding," Keita replied.

Meanwhile, the Director seemed to be rather enthralled with the child's story. "'Bump wiggle wiggle,' eh?" he mused aloud to himself, "Very interesting… and I think we have our new plot climax…"



4 month(s), 20 day(s), 5 hour(s), 43 minute(s), 0 second(s) to deadline

After roughly a month, Keita and the others on the development team completed their last-minute inspiration gathering and returned to the thick of virtual battle with the different builds of their project.

The game was at long last beginning to resemble something more than a handful of test results from a compiler, and it was finally robust enough to host a battle between Keita and Satoshi. The pair squared away with two devkits linked by a data cable for the occasion at the former's workstation, both the graphics artist and the programmer selecting monsters for their match through a debug menu that the two had grown increasingly acquainted with.

At that time, the build was sorely lacking in presentation, with all of the sprites other than those for the menu and its icons still filled with placeholder sprites. Still, that did little to dampen Satoshi's smug self-confidence as he moved his selector icon twice to the right over along a 2-line list of attacks and made a final, decisive move.

"And another victim goes down to Champion Satoshi!" the artist crowed.

Satoshi's Azurill happily cheered him on, while Bracket seemed adamant on protesting his trainer's loss. Paren gave an unimpressed glance up at her trainer, before quizzically tilting her head and trying to examine the machines in the hands of the programmer and graphics artist. The young Tropius finding herself as at a loss over just what the two other Pokémon and their trainers had gotten so worked up about.

"Yeah, yeah," Keita grumbled. "When are you ever going to hurry up and implement character sprites instead of these floating question marks?"

"You can't rush art or battle prowess, young grasshopper," the graphics artist tut-tutted in reply.

It was then that the Director, attracted by the racket the two and their audience were making, came in and after a little chin-scratching, turned his attention over towards the still-jubilant graphics artist.

"That's the tenth time that you've been able to defeat him with more than half a team left, Satoshi," he remarked. "Just what is the team that you've been using against him?"

"Ah, just something thrown together with later-game monsters," Satoshi replied, giving a beaming grin back. "That new six-move limit really opens up a lot of possibilities. Why, my team lead has four offensive moves, a recovery move, and a status move!"

"The thing's a blasted juggernaut. I honestly don't know how anyone's supposed to counter it with that sort of type coverage and recovery abilities," Keita harrumphed.

The Director quirked his brow at the programmer's sour expression, as paused and mulled to himself for a moment about Satoshi's string of good fortune.

"Hmm… what would happen if we cut things down to the original system of four moves each again?" the Director asked. "Could you two quickly reset the match so that the last two moves of each monster have no Power Points?"



4 month(s), 20 day(s), 5 hour(s), 32 minute(s), 12 second(s) to deadline

Once the Director's limitations were imposed and the pair progressed through the debug menu, Keita and Satoshi found themselves in virtual battle once again. This time however, fortune had turned against the graphics artist, and Keita was pleasantly surprised to find that luck had for once smiled upon him.

"Ha! Knew that things would finally turn around!"

Keita's glee rubbed off onto his Pokémon, as Bracket and Paren eagerly cheered on their trainer for his success with the mysterious handheld object. The programmer's victory came at the expense of Satoshi's visible dismay, who was still staring down blankly at his own devkit.

"Agh… that one wasn't even close."

While his two subordinates bantered with each other over the outcome of the test battle, the Director rubbed at his chin and mused to himself. If expanding the games' movepool in a casual match could cause such a radical difference in outcome, it couldn't help but make him think that…

"Hrm… maybe it is a little unbalancing to be adding more moves to monsters."



3 month(s), 30 day(s), 11 hour(s), 48 minute(s), 5 second(s) to deadline

Two months after the team's field work completed and the project was rebooted, the dev team's work was finally starting to resemble a game. During a bout of free time, Keita found himself glancing out the window while Bracket and Paren watched a young trainer on the sidewalk below toss small, colorful blocks from a dispenser to a Zigzagoon. The programmer tapped his foot impatiently, seemingly waiting on something, before shuffling over to check up on Satoshi at his workstation where he was poring over his monitor where a pair of dolls depicting black cat-like creatures with bells on them, monsters from the last set of Capsule Monsters games, sat on top.

"Eh? You're still working on those sprites?"

"That's right, I just finished up the base form of one of the starters."

The programmer looked at the screen, and paused with a small frown. On it was a creature that looked vaguely like a Torchic with what looked like a set of prominent head wings. Keita looked on as Bracket and Paren eyed the screen curiously, before giving a puzzled frown at his coworker.

"Eh? That's certainly different," the green-haired man said. "Isn't this supposed to be the starter that turns into that 'Latiiken' thing?"

"Not anymore it's not," Satoshi explained. "I got a memo stating that the line didn't seem to mesh well with the other two, so… we kinda binned everything and started from scratch."

"Hrm, a bit of a shame. I kinda liked those overgrown birds," Keita mused while looking over the screen. In another tab, he spotted a glimpse of another monster that appeared to be a creature like a Treecko with a banded stomach and bladed leaves like a Grovyle, a sign that perhaps their field work a few weeks ago had given these new Capsule Monsters games more of a Hoenn theming than he'd initially expected. Satoshi returned to playing with color values in his editing program, only to catch himself and look back at Keita puzzledly after he realized his younger coworker had been idle and away from his work for an uncharacteristically long time.

"Wait, so what are you doing right now?" the graphics artist asked.

"Oh, just waiting on a prank that I prepared for the sound team," Keita explained. "Some joker there tricked me into running a script with a hidden recursive delete command and made me wipe out a night's worth of work, so I figured I'd repay the favor."

Satoshi shot back an unimpressed frown back at his younger counterpart, and turned in his seat to face him.

"You should consider yourself fortunate the Director's out at the moment," the blue-haired man sighed. "And just what does your prank entail anyways?"

Just then, the abrupt sound of a cacophony of MIDI instruments could be heard blaring from the room next door, all tuned to a singular, distinctive instrument. Much to the displeasure of some voices from the neighboring room, which included the cries of displeased Pokémon and their similarly displeased trainers.

"Hey! This is supposed to be a test of the entire soundfont! Play one of the other instruments already!"

"That's what I've been doing!" another voice cried, "Everything's playing brass!"

Just as the graphics artist and the other Pokémon in the room turned towards the programmer and began to piece together just what he had been waiting on, Keita gave a contented smile and chuckled as he explained himself.

"Just gave them a little help editing their soundfont," Keita explained. "I was just waiting to hear their reactions to having some more trumpets in their lives."
 

Spiteful Murkrow

Early Game Encounter
Author's Note: Special thanks to @Tangent128, @Venia Silente, @Dragonfree , @Virgil134 for beta reading this chapter.



Part 5 - Driven to Debugging



2 month(s), 0 day(s), 4 hour(s), 59 minute(s), 1 second(s) to deadline

Soon enough, the development of the new Capsule Monsters games began to draw to a close, but relief proved to be ever-fleeting. On an evening when the rain came down in torrents, and dark blue, wraith-like forms of Shuppet gathered under the eaves of the motel, Keita found himself once again wrapping up a session of typing into his text editor.

Code:
///////////////////////////////////////////

void add_listener(list, callback) {

    int last = LENGTH(list);
    list[last] = callback;
    list[last + 1] = NULL;

}

///////////////////////////////////////////


"Whew… Finally. No errors from compilation,” he muttered. “I never expected that generalizing event handling would turn out to be such a chore."

Bracket and Paren were once again sidled against the programmer watching his progress, and the Corphish and Tropius turned looking quizzically at him. After all, it seemed as if their trainer had finished his work and ought to be free to play outside by the pool with them… and yet his attitude seemed to be every bit as stressed as when he’d started his current task.

"Yeah, I know, we're almost there. But first comes…" the man squinted and furrowed his brow as he braced himself for an oncoming trial, "Merging."

As the man fired up his terminal, he couldn't help but feel some dread for what was about to happen. The team had reached the point of their projects where he and all of the other programmers working on their portions of the games could no longer silo any parts of their work from the playable build, and would have to piece everything together.

It wasn't so much putting all of the code together that worried the programmer. Why it was just a matter of entering a few commands into the terminal and resolving any conflicting snippets of code with each other… except after resolving those conflicts, everything had to work.

"Here goes,” the programmer said. “Once this thing gets all the conflicts sorted out, we should have a complete playable build… I hope."


Keita reluctantly pressed a button on his keyboard, and watched as a wave of messages flew by on the terminal's window. He braced himself after the text stopped outputting to his terminal and scrolled over the messages, where much to his astonishment, he saw none of the conflicts messages he was dreading to find.

"Huh? No conflicts at all? Must be my lucky day."

But as the green-haired man attempted to compile the patchwork of code, he realized that fate had not been nearly as kind to him as he had thought... an inscrutable message flashed onto the screen:

"'Bus Fault'?"

Keita grimaced at the message, which came when programs attempted to access locations in memory that just flatly didn’t exist. A far more arduous task to isolate and sort out than merely reworking text in class files. A sinking realization crept onto the man's face, as his Pokemon began to notice that something was amiss.

"Maybe I should have kept my yap shut…"

And they all began to understand that Keita’s ordeal was far from over, and that even at this late stage of the project, there would still be unpleasant surprises lurking in wait.



1 month(s), 19 day(s), 17 hour(s), 52 minute(s), 53 second(s) to deadline

The root cause of Keita’s bus fault proved to be one of the dreaded logical conflicts, times when the different parts of the patchwork of code would manage to be close enough to each other in form to not yield any errors while merging, but have critical differences in their meaning. A variable here, a function there, each with two or more completely incongruous expectations foisted on it by different portions of the game’s codebase.

After about a week of long and sleep-deprived nights, Keita and his compatriots were able to coax their codebase’s different components into complying well enough. On the day the programmer was able to finally wrangle the game's code into a compiling state, Bracket and Paren were there playfully batting cardboard tubes at each other as he let out a triumphant cry from his workstation.

"Ah! It compiled! It finally compiled again!"

The Tropius and Corphish put their papery distractions aside and cheered for their trainer. After all, he was happy, meaning that surely his problems had come to a close? Right afterwards, the programmer loaded the compiling build onto a devkit, started it up, and immediately after his employer's logo flashed on the screen, promptly watched the game crash to a white screen along with the celebratory atmosphere in his portion of the hotel suite.

"You’re kidding me."



0 month(s), 2 day(s), 0 hour(s), 2 minute(s), 34 second(s) to deadline

After getting the game’s build to compile again, it was time for Keita to join in with his coworkers on the oft-dreaded but ever unavoidable task of every practitioner of his craft, debugging. A time when one unforeseen problem after another would be discovered from the codebase, and would then have to somehow have their culprits teased out and fixed.

It was a sisyphean process, with bugfixes that would expose other components to erratic behaviour, or "improvements" that would spawn completely new bugs, all in the 48-hour race to the finish. And one particular nemesis had been particularly stubborn and time-consuming to put down - a weird stack overflow error that kept creeping up while adding game events to their corresponding listeners.

Keita looked over a list of problems while taking a Lava Cookie from a mostly-emptied box in the hopes that its alleged medicinal properties also worked on migraines. There were problems with attack animations causing the game to freeze, berries somehow giving monsters negative stats, the player character was apparently able to access illegal places on the map…

"There's no way that I'm going to get through all of these…"

The programmer sighed as he leafed through the still-massive list much as a doctor would perform triage, attempting to identify which of the problems were most important to prioritize next in the last two days. It was a crude and inelegant process, but there was only so much that could be done before the publisher’s timetable ran out, not that Bracket and Paren seemed to have much of an awareness of the gravity of the situation as they helped themselves to the unattended Lava Cookie box.

"At least they're all mostly small bugs that QA should be able to catch and send back to us-"

Only for his heart to sink as he attempted to shove aside a boulder on the devkit. Much to his horror, the pixelated boulder not only failed to budge, but the game immediately stopped responding to any of his devkit's buttons.

"What?! Impossible!"

Keita reloaded the build. And then again. And again. Only to find that the same glitch reappeared in each case. He then went to his workstation, and looked over a debugging log:

"How?! I'm clearly sending the correct event flags, and there's no exceptions or errors! So why is-?!"

"Ahem…" a voice interrupted, which immediately caused the programmer to turn from his monitor. His Corphish and Tropius similarly turned from the box of Lava Cookies they were raiding, pieces of their snacks still dangling from their mouths… as the Director had walked up and was staring down with a stern frown.

"Oh… Hello, Director… er…"

"Not to interrupt your work,” the blonde-haired man said. “But there's a bit of an urgent meeting that's going to start in about 5 minutes…"



0 month(s), 1 day(s), 23 hour(s), 43 minute(s), 38 second(s) to deadline

A short time later, Keita found himself watching the Director speaking before a small crowd of people in a familiar dingy room. The programmer looked about the room as his coworkers appeared visibly agitated, and others disheveled and visibly short of sleep much as he had been for most of the past week.

"So… As you all know, it's presently 48 hours until we have to deliver a build for final QA to the office… and… Well."

Keita noted that Bracket and Paren seemed uneasy about the atmosphere in the room. They apparently also felt the thick tension clogging the air as the Director attempted to tease out a way to break some less-than-pleasant news to his audience.

"Last I was aware, we had at least a dozen known bugs that render the game unplayable."

Some murmurs began to go about the room, as varying voices began to complain of the current state of affairs.

"Well, looks like we can kiss those bonuses goodbye," a man towards the back said.

"Grr… This is all the fault of those new programmers!” one of the veteran programmers fumed. “If it was just a team of four like last time, we wouldn't be in this mess!"

"Our fault?” a man with a Chimecho demanded. “We aren't the ones throwing in GOTOs every other function!"

"It's a perfectly acceptable practice when it's properly documented!"

The murmuring quickly evolved into heated bickering as the Director pinched his brow and attempted to rein in the project team with a sharp reprimand from his podium:

"Quiet! Quiet!"

The arguments began to die down as the Director took a sharp breath and started addressing the room.

"Look, it's a challenge, yes,” he reminded them. “But we as a firm have made it through tougher obstacles, and this one is no different."

The Director looked about his audience and, much to his dismay, found his reassurance had failed to lift his subordinates’ spirits. The man let out a quiet sigh and shook his head before continuing on in a quiet, resigned voice.

"All I ask is that until the deadline passes," the man pleaded, "you try your hardest. If we succeed, we succeed. And if not, well…"

There was an uncomfortable silence around the room, which the Director himself finally broke:

"We'll get there when we get there."



0 month(s), 0 day(s), 0 hour(s), 29 minute(s), 57 second(s) to deadline

Just a little over 47 hours later, Keita found himself at his workstation again. He had not slept a wink since the emergency debriefing. And by some stroke of luck all of the game-breaking glitches had managed to be caught and patched…

"Argh! WHY?!"

With one solitary, stubborn exception. The very same glitch he’d discovered with the boulder two days ago, which had eluded all remedy since then.

"I don't believe this!” he fumed. “30 minutes left, and my bonus is going to be withheld over this stupid boulder glitch!"

The programmer set down the devkit and slumped his head against his desk. This was how he was going to spend these last 30 minutes, just sitting and letting the inevitable pass. If there was a Duskull passing by outside which for some reason wanted to cart off the project’s spirit to the underworld, the man would not have resisted. It was then as he rested his head against his workstation that he felt a presence brushing at his arm.

Keita turned, and saw that it was Paren, the same Tropius that had spent most of the last year with him through his ordeal. Its highs, its lows, and now she was here to witness the deadline's expiration without a finished product.

"Hey girl, did I wake you up?" he sighed.

The Tropius curled her neck around Keita's shoulder and nuzzled her audibly troubled trainer, letting out a low, worried whine.

"Yeah… I know,” the programmer sighed. “I thought we were going to be done too…"

Much to Keita’s surprise, Paren nosed at the monitor. It crossed the programmer’s mind that Paren probably wanted to be amused by the images and text from the screen again... only to realize that at an unholy hour like this, she must be trying to egg him on to keep working, thinking a cheer would resolve his down mood.

"Don't worry about it,” Keita murmured. “It's not as if anything can be done about it right now."

The Tropius was not satisfied and proceeded to nip and drag one of her trainer's arms over to the keyboard before looking up at him. Keita shook his arm after Paren let go and looked back at the glow of his monitor, realizing that she must’ve wanted him to explain his work to her again. As foolish and pointless as it probably was after two days of failing to find his bug’s origin, surely there would be no harm in humoring her.

"Eh… Fine, I suppose that one last step through can't hurt…"

The man pushed the devkit aside and opened up his text editor, beginning to go through various files one by one.

"Uh… I guess I'll start from the top."

Code:
///////////////////////////////////////////

struct player player_data;

///////////////////////////////////////////


"This is the player struct, which handles all the information the game needs to keep tabs on about the player character," Keita said, before moving his fingers along his mouse’s wheel as he scrolled down with an audible whir.

Code:
///////////////////////////////////////////

player_data.controls = TRUE;
player_data.event_listeners = game_state -> strength_listeners;

///////////////////////////////////////////


"And this is the part where we actually track the event listeners for the player,” he continued. “It’s really a list from the global state, but it’s still important to do some bookkeeping like this."

Code:
///////////////////////////////////////////

add_listener(player_data.event_listeners, player_strength_callback);

///////////////////////////////////////////


"And here is where we add the Strength callback to the event listeners," Keita explained, before moving his mouse’s pointer on the screen opening another file.

Code:
///////////////////////////////////////////

if (case == STR)
    strength_player_event = dispatch_event(player -> event_listeners[index(STR)], & data);

///////////////////////////////////////////


"And this where the events are dispatched, it checks if the case is equal to the enum for Strength,” he explained. “The save state I left off on on my devkit has me walking back and forth in-game. Each step that I make sends out an event that the player's listeners respond to.

“Everything works. Except for this."

The man quickly loaded up a save state onto the devkit, right before his accursed nemesis for the past two days.

"When I try to move a boulder, I can move the rock just fine."

And indeed the pixelated boulder did move, only for the devkit to become unresponsive.

"But then it paralyzes my character and I have to reset everything just to get it to work again!” Keita exclaimed. “And I for the life of me I just don’t know why this is happening!"

It was then that his Tropius companion nosed at a line on the screen with a terminal cursor blinking beside it.

"Huh? Paren? What's it that you see?"

Code:
///////////////////////////////////////////

void player_strength_callback(hm_evt * event) {

█   if (event -> active = TRUE) {

        lock_all_controls();

    } else {

        unlock_all_controls();

    }

}

///////////////////////////////////////////

Keita looked for a moment, then realized which line the sauropod was attempting to point out. He did not know whether or not it was a lucky guess, or perhaps Paren genuinely understood the problem, but there was indeed a critical error with the portion of the callback on the screen…

The code didn't say "event->active == TRUE", which would have checked for equality, but rather "event->active = TRUE". It wasn't checking to see if the event was active, it was always making it so!

"Uh… yeah. That… would be a problem."

Keita hastily edited the typo in the code, compiled it, and after what seemed like an eternity, saw that no errors had arisen during compilation. He then sent the build to the devkit, and with bated breath, he pushed the pixelated boulder again.

And then he moved forward. And then backward. And then he accessed the menu. And quickly discovered that all of the buttons and their bindings were properly working.

"Yes!"

Keita threw his arms around Paren, gratefully hugging and patting the Tropius for her help. The Grass-type squirmed initially from Keita’s surprise intimacy, before easing and nuzzling her trainer back with a small smile.

"It's official, you're allowed to pig out on berries until you get sick!"

The programmer quickly stopped himself, realizing that it had been over 50 hours since he last slept and that his body and mind were harshly protesting any further deprivation.

"Er… could we put a pin in this until tomorrow?" he asked with a sheepish smile.

Paren obliged with a small nod, and Keita turned his attention to hastily uploading the fixed build. The upload terminated mere minutes before the deadline rolled over, with the young Tropius leading her trainer to a triumphant and well-deserved rest on his hotel bed, the Grass-type curling beside him as fatigue quickly claimed him.
 
Top