Games

Game Dev: C#, C++ or Python?

My friend Jake slid into my DMs last night, screen capped three YouTube tabs, and typed: “Which one first? Unity/C#? Unreal/C++? Or Python for mods?” He’d spent 4 hours watching “How to Make a Game” videos and was now stuck—like someone standing in a grocery store staring at 10 types of milk, overthinking every choice. I get it: every game dev tutorial acts like their language is the only one that matters, and if you pick the wrong one, you’ll “waste months.” But here’s the tea: there’s no “wrong” language—only the right one for what you want to build. Let’s break this down like we’re picking a game to play: no jargon, just straight talk.

First up: C# and Unity. If you’re new to coding (like Jake was, until last week), this is your starting line. Think of C# as the “beginner-friendly but still powerful” option—like playing Stardew Valley before jumping into Elden Ring. Unity uses C# because it’s easy to read (no weird symbols everywhere) and forgiving if you make a small mistake. Jake tried a Unity tutorial last weekend: he wrote a line of code to make a cube jump, and when it worked on the first try? He texted me a video of him cheering. “I didn’t even have to Google 100 things!” he said. That’s the vibe—C# lets you focus on making a game instead of fighting the code. It’s used for everything from 2D mobile games (like Among Us) to 3D indie hits (like Hollow Knight). If your goal is to build something playable fast, C# + Unity is your best bet.

Then there’s C++ and Unreal Engine—this one’s for the “I want to go big” crowd. C++ is like the Dark Souls of programming: steeper learning curve, but super powerful once you get the hang of it. Unreal uses C++ because it’s lightning-fast—perfect for AAA games with huge open worlds (like Fortnite or God of War) where every frame matters. But here’s the catch: C++ doesn’t cut you slack. Jake tried a Unreal/C++ tutorial after his Unity win, and he spent an hour fixing a “syntax error” (turns out he forgot a semicolon). “This feels like trying to build a rocket with a wrench,” he groaned. That’s normal—C++ is for when you’re ready to dive deep, not when you’re just starting. Most people learn C# first, then pick up C++ later if they want to work on high-performance games. Think of it as leveling up: master the basics, then tackle the hard stuff.

Now Python—this one’s the wild card. It’s not usually for building entire games (though you can with tools like Pygame), but it’s amazing for game scripts and mods. Jake loves modding Stardew Valley, and he found out Python is used to make mods that add new crops or characters. “I wrote a script to make my farm rain gold coins—just for fun!” he texted me. Python’s also great for tools: devs use it to automate boring tasks, like generating in-game maps or testing enemy AI. It’s like having a Swiss Army knife—small, versatile, and super useful, even if it’s not your main tool. If you want to mess around with mods or build helper tools while learning, Python is a solid sidekick.

So what’s the learning path? Here’s what I told Jake: Start with C# + Unity if you’re new—build a simple 2D game (like a platformer or a puzzle game) to get the hang of coding. Once you’re comfortable, try Python for modding your favorite games—it’s a fun way to practice without starting from scratch. If you fall in love with game dev and want to make bigger 3D games, then dive into C++ + Unreal. No need to pick one and stick to it—most pro devs know 2-3 languages, just like how most gamers play more than one genre.

The biggest mistake people make? Overthinking it. Jake spent days worrying he’d pick the “wrong” language, but the truth is: the best language is the one you’ll actually use. If C# feels fun, keep going. If Python modding makes you excited to code every night, stick with that. Game dev is about building, not perfecting your language skills.

Last week, Jake sent me a link to his first Unity/C# game: a tiny 2D cat that jumps over boxes. It’s simple, but he built it himself. “I stopped worrying about picking the right language and just started,” he said. That’s the secret. So grab your keyboard, pick a language that fits your goal, and start coding. Your first game might be janky—but it’s yours. And who knows? Maybe one day, someone else will be asking which language to learn… because of your game.

Featured Article