I wake up on my sixth birthday and run downstairs. My mom wishes me, “Happy birthday!” I beeline to the presents in the living room and rip open the wrapping paper. Within a few minutes I open a Nintendo 64 and Super Mario 64. My dad plugs the console into the TV, and I collect my first few stars. We spend the afternoon racing go-karts and playing mini-golf, but despite all the fun, I look forward to playing more Mario in the evening. My love affair with video games has begun.
Twice a year, my elementary school hosts a book fair. Today is the day we get to take the books we purchased home. Among my stash is a book for kids about building your first website. As a kid who loves playing on my family’s Windows 95 computer, I am drawn to that book. That weekend I start learning about HTML and make an incredibly basic personal website that can only be viewed on my local hard drive. Even though HTML is technically only a markup language, this is my first taste of programming, and I want more.
I want to make a video game. After extensive research on the subject, I decide to learn C++. I boot up the outdated Windows 95 computer that now resides in my room and install Dev-C++. With a few tutorials from cprogramming.com I try to learn the language. Programming, it turns out, is more difficult than I thought, and I give up.
Over the years, I have picked up a little Java, Python, and C knowledge but fail to produce anything of note. My roommate takes a few programming classes and asks for my help. This reignites my passion for programming and my desire to create games. I discover a framework called LibGDX and use it to make some basic games.
I still only have a few basic game projects under my belt. Programming is still difficult. My skill set can only be defined as “mediocre novice” at best.
I watch How I Met Your Mother on Netflix. Near the end of an episode, Ted Mosby gives me some advice that hits me hard:
Unfinished. Gaudí, to his credit, never gave up on his dream. But that’s not usually how it goes. Usually it isn’t a speeding bus that keeps the brown, pointy, weird church from getting built. Most of the time it’s just too difficult, too expensive, too scary. It’s only once you’ve stopped that you realize how hard it is to start again, so you force yourself not to want it. But it’s always there. And until you finish it, it will always be…
And I realize I still want to learn C++. Even if afterwards I go back to using LibGDX, making a game in C++ is still a mountain I want to climb. Middle school Matt is going to be proud of the future version of myself.
So I download a copy of Beginning C++ Through Game Programming. Because this time I am going to finish the fight.