How I learned computing Part III


In addition to IDEs and hitting ‘compile’ or ‘run’, I soon began to be introduced to non-programming aspects of computer science like e-commerce and the attendant web development, web data analytics, payments, and web marketing. Through these, I gained exposure to how computer science fits into the big picture of global commerce.

I shared some of the gleaned insights at the Global Entrepreneurship Summit (Marrakech, 2014; Joe Biden was in attendance as the keynote speaker); at a Commonwealth policy-development meeting at the Marlborough House (London, 2016; representatives from the CIA and the US Department of Justice were in attendance as fellow speakers; photo-taking wasn’t allowed… scary to say the least); at some universities; and online through interviews like the one with Forbes.

With the e-commerce company humming on, I began to develop a dream of exploring another aspect of computer science. Around this time, I watched Halt and Catch Fire. Movies and TV series have long informed my action in times of impasse; watching HACF, it hit me that I related to Cameron so much because making video games was what I wanted to be doing.

At first, I set my ambitions high. Unreal Engine, of course. That was what I needed to be learning. So I purchased two textbooks, downloaded the software, and began to study. Yet by chapter six of the 20-or-so-chapter textbook, there was still nary a mention of how to build or animate a character. I realized that 3D game programming, with all its considerations: character animation, world building, game mechanics, sound effects, etc in addition to in-game monetization and marketing, would be quite the task for one person who was learning mostly from scratch. Usually, when something is described as having a steep learning curve, that’s my cue to dig in. In this case, however, I was happy to sell off my Unreal Engine textbooks on eBay and find a more realistic conduit to my game development future.

Six chapters into Unreal and still not a character to be animated in sight. A steeper learning curve than I was ready to handle.

I realized that I like games like Prince of Persia, Mario, Street Fighter, Dark Seed, Papers Please — and more recently, Ultros — for how they embed adventure or action within a 2D space. I also love Grand Theft Auto and would happily just stream GTA players on Twitch for hours. Still, I sometimes find 3D games disorienting (see: My Horse, a horse grooming and dressage 3D game I tried playing on mobile some years ago, and kept landing my horse avatar/self on its head). In terms of what I could build myself, it also seemed 2D games were the way to go. This conclusion wasn’t defeatist, as my old-school self quite loves a retro 2D game, anyway.

So after some research, I bought a textbook on GameMaker and started reading it. I did not enjoy the book. It seemed like it was written for the opportunity to present an in-demand theme for a well-known textbook brand, and not at all from the joy of imparting knowledge about a topic the author thought was fun. I also figured that the types of games GameMaker was often used to build: disposable, fast-consumption mobile-leaning games with little thought given to the art or game play, weren’t what I wanted to start my gaming career learning. With the knowledge I had gathered from trying to learn two game engines so far, it was back to the drawing board for me.

Around the time of the lull in my game studies, I did a 3-metre long acrylic painting of a world: a Lagos that isn’t dystopian and isn’t post-anything, but whose stylized aesthetic is unique in its own way and screaming for a narrative. Replete with Lagos landmarks: national theater, mosque, cathedral, fountain, cable-stayed bridge, it became the medium for a game I began to dream up. All I needed was a language through which to program it to life. I even developed two characters whose dance-like sprites I had begun to animate in my mind.

Part of the open world for the game.

Inevitably, my research into game engines led me to some mention of C++. At some point during my extensive study of C++ at university, some professor must have mentioned its nimbleness as an advantage in high-refresh-rate uses like game development, though I don’t remember. Stumbling upon websites like gamedesigning.org, where the advantages of C++ for game engine building and game development are spelled out, has been an eye-opener. C++ isn’t so outdated after all: it has a rich, in-demand ‘applied’ side that I can begin to harness.

Being a C++ programmer can be be tiring in the sense that many companies hire us to work on .NET or Java or even JavaScript or Perl projects, with the tacit understanding that we would use our C++ base knowledge to pick up C# or Java or Python on the go. However, it is C++ that I love! Now, knowing where its demand lies in industry has been the impetus for me to refresh my knowledge of it, with a lot of excitement. It has even been easy for me to select the best C++ textbooks to help me on my journey, the first of which arrived in October.

Now, I’m on Chapter 9 of the ten-chapter text. I have an idea forming for my first game, and I have been researching libraries like raylib that I’ll use to incorporate the graphics I need so much into this language I enjoy so much.

How I learned Computing Part I
How I learned Computing Part II


Leave a comment