Adventures Of An Accidental Indie Games Developer – 0 – Bearcat

I’ve never really been into video games.

Sure, I had an Amiga, PC and XBox throughout my childhood. Sure, I occasionally liked to play a bit of Doom (1, 2 and Final. None of that Doom 3 nonsense) and some Morrowind.

But it was never really my main passion.

I was much interested in other stuff. I wanted to be a writer, or a coder. Video games didn’t really interest me all that much. When I eventually sold my Xbox, I thought that was it. That my time gaming was well and truly over.

So, naturally when I went to University to get a degree in Computing, it just so happens the final assignment of the first year is to create a video game. This should be fun.

Requisites, and stuff. 

So, let’s first talk about what I have to do in order to get a passing grade. The video game must be developed in the C programming language, and use the SDL (or some derivative of) graphics libraries. OpenGL is acceptable. 

We also absolutely must include and make use of a particular library called Chipmunk.  We are assessed on two things. How much effort we put into the project and how creatively we used Chipmunk.

So, what’s this Chipmunk then?

Depends on who you ask really. It could be a fairly terrible rapper from East London. It could also be three furry forest creatures suffering from severe helium toxicity. In this instance though, we’re talking about Chipmunk, the physics engine.

Without going into too much depth (Don’t worry, I’m going to do that later), Chipmunk is a beautiful, cross platform library which allows you to simulate gravity, friction and particle physics. It has some wonderful, cross platform bindings and just generally rocks.

With it, you can make fun puzzle games like World Of Goo, or just create fun little physics simulations. It’s really something else.

Finding Some Inspiration

So, growing up the only two games I really played religiously were Pokemon on the Gameboy and Doom on the PC.

Doom was cool because it was immensely customizable. You had these files called WAD files, and they contained all the textures, logic and metadata required to create a level in the Doom universe. And it wasn’t just ID Software who could create these WAD files. Anyone could make them.

Of the millions of people who played Doom, thousands were inspired to create their own levels. In many respects, Doom was host to the first real modding community of any video game.

And Pokemon? Well… I just really enjoyed it. It was a charming, top-down RPG game with a great storyline. You could easily pick up and play, and it was (in my humble opinion) perhaps one of the best games ever to be released for the Game Boy console.

So, what does Pokemon and Doom (two wildly disparate games) have to do with my computer science project?

Well, to explain that, I’m going to have to explain a thought process I had the other day.

Now, suppose you want to be a film maker? Well, that’s one thing that is decidedly easier today than in was in the past. You just get a camera, shoot some footage, edit it and then upload it on to Vimeo. And you can do that on a standard home computer.

What if you want to make music? Well, most laptop computers have a microphone and a webcam. You can sing a song in your bedroom and be seen by millions, as people like Kina Grannis have done.

If you want to be a writer, you can just open yourself an account at and start writing. Trivial stuff. There are even specific communities on the internet that cater entirely for fiction writers.

All these creative pursuits are vastly simpler as a result of the Internet and computer. But it’s not gotten any easier to create a video game. Not really.

What if you wanted to create a piece of interactive fiction?

What if you just had to edit a single JSON file to create a room in a video game?

What if you could learn how to create an engaging, entertaining, top-down RPG video game in just 30 minutes?

My Plan Of Action

As part of my undergraduate degree, I plan to write a program that interprets a specifically structured JSON file which describes a room. That JSON file will contain information pertaining to what the room looks like, what it contains and events that occur when prompted or interacted with by the user.

The aim is to simplify the process of creating interactive fiction drastically and to profoundly lower the bar to entry when it comes to video game development.

In the process, I aim to become a more competent C developer and to gain a deep understanding of the SDL and C libraries. And hopefully create an end product that just plain rocks.

And I’ve decided to call it BearCat because I’m really terrible when it comes to naming things. And because bears are powerful, and cats are elegant and I want my end solution to be really powerful, but also really elegant.

And, naturally, I plan to blog about it every step of the way, along with other topics that I think are relevant to the field of games development.

Because, y’know… It’s me.

Interested? Want to be the first to know when a new blog comes out? Just put your email address in little box located in the side bar, and you’ll be the first to know whenever I write something new!

About Matthew Hughes

Matthew Hughes is a software developer, student and freelance writer from Liverpool, England. He is seldom found without a cup of strong black coffee in his hand and absolutely adores his Macbook Pro and his camera. You should follow him at @matthewhughes.

Leave a Reply