Share article
Disclosure: To support our site, Class Central may be compensated by some course providers.

Computer Science Instructor Has a Crush on Games

Written by Charlie Chung
5 minute read
0 Comments

Karsten Øster Lundqvist

Karsten Lundqvist loves computer games of all kinds: text-based, graphical, mobile, desktop, and others. He is hooked on Candy Crush Saga, and plays it 30 minutes a day. Karsten also has a PhD in Computer Science, and teaches it at the University of Reading. He believes games are a good way to learn the basics of coding, and is teaching a MOOC to learn programming, Begin Programming: Build your first mobile game, offered on the Futurelearn platform, starting October 20, 2014.

Games: A Great Way to Learn Programming

Traditionally people learn programming by solving simple problems, such as sorting strings or calculating equations. Karsten describes several reasons why games are a great alternative way to start learning programming:

1. Games, by definition, are fun

The best way to learn something if it is fun,” Karsten says. The idea of creating a good game is to get the user to step away from reality. Complex games create new worlds for the user and “there is nothing more fun than creating a world”.

2. Games present complex challenges

Since the purpose of many games is to amuse people, game creators intentionally design challenges in them. “Games actually have a lot of ‘problems’ in them, which are fascinating,” Karsen states. He gives an example which students will tackle in his class: having a ball moving on the screen, and having it ‘bounce’ off the edges of the screen rather than having it disappear. That is a basic design challenge, and there are a limitless number of these types of challenges when creating games.

3. Games bring together the creative and analytical aspects of programming

Karsten acknowledges that programming is akin to applied mathematics and logic, and that those who are mathematically inclined may initially have an easier time of it. However, Karsten contends that “we have created rules about what is creative and what is not, which are actually not quite true.” Programming is a very creative process because you are figuring out how to solve problems. And of course, creating a game adds a new layer of creativity:

Being creative does not necessarily mean being good at drawing or music or the creative arts. It is actually also in the problem solving experience. Creating a game is an immensely creative process because I have to think of a new world. I am creating spaces in that world and rules of how things are interacting.

4. Mobile development is hot right now

People are spending less time in front of desktop computers and more time with their mobile phones. An estimated 50%+ of people on earth own a smart phone. Thus, the demand for mobile programmers is very high, for both the Android and iPhone operating systems.

Mobile Games – Even Better for New Programmers

Some games can be highly complex. There is the dramatic action of first-person shooters, such as Call of Duty 4. The amazing art and storyline of Batman: Arkham Asylum. The limitless worlds in SimCity. These all take a large team of specialized, talented individuals. And this is where programming for mobile games is an advantage. As Karsten explains:

The screen is small, and the time span the players want to play is relatively small. If you are making games for desktop you need to be very good with graphics, and if you want to do something with 3D then you need a big team…but on the mobile phone you can create something that is great as a one person team. 

This may not mean that you will be able to create a best-selling app right away. But if you develop your skills, you could certainly develop something great in the future.

Programming – A Great Foundation to Have

What programming language should you start with? It doesn’t really matter, according to Karsten. He shares his experience:

I have coded in C, C++, C-sharp, objective C, Python, Ruby, you name it PHP. I have done them all. I like them all and I love them all. There are always features that I find annoying and there are always features that I find good 

There is much commonality between languages, and once you learn one, it is easier to learn others. But he does have a suggestion: Java would be a good general purpose language to learn. If you want to focus just on web front-end development, he would suggest PHP and JavaScript or Ruby / Ruby on Rails. The key is to pick something and have a foundation to build on.

Even if you are not sure about being a full-time programmer, learning a language can be helpful:

If you do not want to be programmer it can also give you an understanding of how a programmer thinks. For people who are working with programmers, with this kind of course you gain understanding and you will be able to talk to them more easily 

The Magic of Engaging Games

I asked Karsten what makes a game addictive. “If I knew the exact answer to that, I probably would not be sitting here because I would be a millionaire and have a swimming pool somewhere,” he replied. He says of his daily addiction to Candy Crush Saga: “I really don’t know why I play it…it puzzles me why this puzzle is so interesting. Just today I made it to level 200, and it keeps going and I am still fascinated”.

He then went on to describe the game’s attributes: it is very simple, it makes him think about creating strategies to beat the levels, and it keeps evolving and renewing itself with small tweaks to the rules. It seems that Karsten may know more about what makes a good game than he’s willing to admit.

If you too are intrigued by the lure of games and would like to learn programming by creating one, you can sign up for Begin Programming: Build your first mobile game, which starts October 20.