Software design lessons

I’ve decided to convert the video game I am making to C.

My hobby is making video games. I’d like to point out that my hobby is not finishing making video games, just making them.

I’ve had a lot of fun working on my current game and game engine. It’s in Objective-C and uses the Allegro Game Library. It was my second project in Objective-C. I decided I really like the language.

A few months ago I finished my first graduate course in Software Engineering. The main theme of the course was “favor aggregation over inheritance, and code to an interface”. It caused me to rethink the design of my code. I decided my design was not very good. It was object oriented, but not the best type of object oriented. I struggled with deciding how to redesign it and the option of converting it to another language. It was during that struggle that I learned an important lesson:

A programming language or programming paradigm will not help a bad design.

I stopped thinking about “making it object oriented” and converting it to different languages, and instead just thought about design. I used the application Dia to write out my ideas. It has helped a lot. And since which language to use it not so important, I decided to use the language I love the most: C.

I’m going back to my original plan from years ago, which was to make a 2D video game in C. And I decided not just any C, but ANSI C. Why? To make it more challenging / fun, and to see if I can do it. As I work on it I’m quickly reminded just how much I like C. It feels like such a pure and simple language.

Even so, I’m also excited for my next project: to make something in Python!

Comments are closed.