Cherreads

Chapter 2 - Chapter 2: Lines of Code, Layers of Learning

10th April 2025, 11:00 AM

Chris's Command Centre, UK

Two hours had evaporated in a haze of introductory videos and Unity interface tours. Empty mugs sat beside keyboards, and the initial buzz of simply installing the engine had been replaced by the slightly daunting reality of the sheer volume of information available. They'd clicked through Unity Learn modules, paused and rewound YouTube tutorials covering the absolute basics – manipulating objects in the scene view, understanding the hierarchy, the inspector panel, the difference between a project and a scene. It felt like dipping a toe into an ocean.

"Right," Chris announced, stretching his arms back with a crackle of joints. "Okay, initial recon complete. We know where the buttons are, mostly." He looked at Max, then Tyrone. "If we're going to actually build something without stepping on each other's toes constantly, we need lanes. Roles."

Tyrone perked up, momentarily distracted from sketching a cartoon explosion in a notepad. "Ooh, dibs on making things pretty! And noisy! Art, sound effects, maybe even some chill background music later? You guys handle the… you know." He waved vaguely at Max's screen, which was already displaying lines of C# code from a tutorial. "The Matrix stuff."

Max smirked. "Gladly. I can focus on the core programming, getting things to actually do stuff. Logic, physics, input handling. Happy to contribute to game design ideas too, obviously, but I enjoy the coding side."

Chris nodded, pulling a blank sheet of paper towards him. "Okay. So, Tyrone: Art and Sound. Max: Lead Programming, Systems. That leaves me with..." He tapped the paper. "Game Design – mechanics, level flow, core loops. Narrative Design – story, characters, world-building, if any. And I'll pick up scripting where needed, connecting the dots, maybe UI implementation, managing the overall project structure."

"So, Captain Serious is also Loremaster Chris and Script-Kiddie Lite?" Tyrone teased.

"Something like that," Chris said, ignoring the nicknames. "It makes sense. Max handles the heavy lifting on code, Tyrone makes it look and sound good, I focus on the 'what' and 'why' and help glue it together. We all overlap on game design. Agreed?"

"Sounds like a plan, Stan," Tyrone saluted.

"Works for me," Max confirmed, already opening new browser tabs for C# and Unity API documentation.

With roles defined, a new phase began. The clock ticked past eleven, marking the start of a marathon seven-hour deep dive. The atmosphere shifted from shared exploration to focused, individual learning, punctuated by occasional questions and shared discoveries.

Tyrone plunged into the world of 2D sprites and primitive 3D modelling. He installed Aseprite for pixel art and started exploring the very basics of Blender, his screen soon filled with tutorials on extruding cubes and UV unwrapping. Later, he'd browse free sound effect libraries and watch videos on importing audio clips into Unity, occasionally making 'pew pew' noises under his breath.

Max was lost in the digital corridors of C#. Variables, functions, classes, loops – the building blocks of logic. He meticulously followed tutorials on creating simple movement scripts, understanding Update() versus FixedUpdate(), getting player input, and the crucial Debug.Log() for figuring out why things inevitably broke. Frustration flickered across his face when encountering cryptic error messages in the Unity console, followed by quiet satisfaction when he finally squashed a bug.

Chris, meanwhile, straddled the conceptual and the practical. He sketched diagrams of potential game mechanics on paper, researched different approaches to narrative in indie games, and experimented with Unity's scene editor, laying out basic shapes, playing with lighting, and figuring out how colliders and rigidbodies worked. He looked into simple state management and started outlining the structure for a potential first project, keeping an eye on the clock and the overall goal.

The hours blurred. Lunch was a hurried affair of sandwiches scoffed at their desks. The drone of tutorial narrators became background noise. Questions were fired across the room: "How do I get this image to show up?", "What's the difference between a vector3 and a quaternion again?", "Anyone know a good site for royalty-free ambient sounds?" Sometimes they had answers, sometimes it led to a shared Google search, a collective pooling of their rapidly expanding, yet still shallow, knowledge.

Around five PM, as fatigue began to set in, Chris paused his work. "Okay, one crucial thing we haven't tackled. How do we actually... combine all this? If Max writes a script, and Tyrone makes a character model, and I set up the scene... how does it all end up in the same project without emailing files back and forth like cavemen?"

Max nodded, having anticipated this. "Right. We need version control. We need Git." For the next hour, Max took the lead, explaining the core concepts – repositories, commits, pushes, pulls, branches. He walked them through setting up accounts on GitHub and creating their first shared repository, named simply "Project-Genesis". There were confused expressions, hesitant first commits ("What do I put in the commit message?"), and a minor panic when Tyrone almost committed a huge audio file before Max showed him the .gitignore file, but eventually, the basic workflow started to click. It was another layer of complexity, but they understood its necessity.

Six PM arrived. The focused learning phase was over.

"Alright," Chris announced, standing up to stretch properly this time. "Theory's great. Let's build something. Anything. Just to prove we can make our parts talk to each other using Git and Unity."

They agreed on the simplest possible goal: a controllable shape in an empty scene.

The Task:

* Create a basic 3D scene with a ground plane. (Chris)

* Create a simple C# script to move a designated object left/right using keyboard input (A/D keys). (Max)

* Create a simple visual for the object – even just a brightly coloured cube prefab. (Tyrone)

* Add a placeholder sound effect for movement or a jump (even if jumping wasn't implemented yet). (Tyrone)

* Integrate it all using their new Git workflow. (All)

The next three hours were a flurry of focused activity, testing their freshly learned skills and their newfound collaboration method.

* Chris created a new scene, added a plane for the ground, and set up basic lighting. He committed and pushed the initial scene setup to the Git repository.

* Max, working in his local copy of the project after pulling Chris's changes, created a new C# script called PlayerMovement. He coded the logic for detecting A/D key presses and translating the object's position along the X-axis. He tested it using a default Unity cube, committed the script, and pushed it.

* Tyrone, after pulling the latest changes, created a simple material – bright red – and applied it to a standard Unity cube, saving it as a Prefab called PlayerCube. He also found a free, short 'blip' sound effect, imported it into Unity, and saved it. He committed his assets and pushed them.

* Chris pulled both Max's script and Tyrone's assets. He dragged the PlayerCube prefab into the scene, attached Max's PlayerMovement script to it, assigned the 'blip' sound to play on key press (a temporary hack, but functional), and positioned the cube slightly above the plane. He hit 'Play'.

On Chris's screen, the bright red cube hovered above the grey plane. He pressed 'A'. The cube slid smoothly to the left, accompanied by a faint 'blip'. He pressed 'D'. It slid right, 'blip'.

It was absurdly simple. A cube. Sliding. Blip.

They gathered around Chris's monitor, faces illuminated by the glow. Nine PM. Twelve hours since they'd first gathered, filled with learning, frustration, collaboration, and a ridiculous amount of caffeine.

"It... works," Tyrone breathed, a wide grin spreading across his face. "Our cube. It moves! We made a thing!"

Max allowed himself a small, satisfied smile. "The script runs, the prefab loaded, the input's detected. Basic, but functional."

Chris looked at the screen, then at his friends. They were exhausted, eyes slightly gritty, but buzzing. "It's not much," he admitted, "but we built it. Together. From scratch."

The red cube sat stationary on the screen, a silent testament to their first, tiny victory. The journey had begun, not just with a decision, but with the first tangible lines of code, the first coloured pixels, the first successful merge. Project Genesis was live.

More Chapters