Saturday, December 12, 2009

Game Industry Education in Turku

This Autumn semester has been a very interesting one for game development students in Turku, Finland. To start with there's a new university course called “Game Industry Guest Lecture Series”, where we've had the privilege to hear from different people involved in the game industry in Finland.

The course is part of a joint project between two universities, university of Turku and Turku university of applied sciences, called Game Tech & Arts Lab. The project is funded by Technology Industries of Finland Centennial Foundation for the purpose of organizing game industry specific education and facilities in the ICT building in Turku, where the IT-focused university departments are located.

This Autumn semester has been the first one where the benefits of the project have really started to show concretely. Here's just a couple of the highlights:

  • Two new university courses: “Game Industry Guest Lecture Series” that I already mentioned and “Introduction to Game Development Tools”, where the students are familiarized with different game development tools (mainly 3D focused) and the process of making games.

  • The game development enthusiast in the Turku area now have their own lab room in the ICT building where they can develop games using the latest hardware.

  • The lab gave a natural birth place for a game development club called LOAD where the students gather together every Friday to create, show, and talk about games and the industry.

  • The lab has now a game museum room with over a dozen of old computers from Vic-20 to Amigas and hundreds of games for many different platforms. Jokingly there's been talk about this becoming a place where old gamers can come for a pilgrimage.

In the future the Game Tech & Arts Lab board is also considering organizing an XNA game development course and inviting industry experts to hold game development workshops.

Next I shall go into more depth in the “Game Industry Guest Lecture Series” course itself.

Game Industry Guest Lecture Series -course

In this course we, the students, were given the assignment of writing a summary of any two lectures that we felt had the most impact on us.

For the first one I chose Joonas Laakso's “roles and careers in the game industry” lecture because to me that provided the clearest picture on what it takes to get into the game industry.

For the second one I chose Teemu Haila's “game projects, life and everything” lecture simply because I felt it was closest to actual game development. It gave me a real sense of how it is to do games in the Score game club, including both the good and the bad.

During the whole semester this course had a very high attendance. In a lecture room designed for 150 people we had on many occasion over 200 people in the audience. Here's a photograph that will give you an idea about how it was there.

Roles and careers in the game industry

Joonas Laakso, producer at Bugbear Entertainment, gave a lecture in the ICT building titled “roles and careers in the game industry” where he explained what people with different titles do in the game industry and how one can go about getting into the industry. The thing that resonated with me most in his lecture was his personal story of how he ended up in the game industry so I shall start with that.

Laakso has been in the game industry since April 2008, but before that he had a career in digital advertising and marketing with titles such as a project manager and a new media coordinator. During that time he already had aspirations of getting involved in the game industry but he was not really sure what he could do. Laakso had played lots of games as a youngster, built some of his own with tools like Game Maker and even learned a bit of programming to get more acquainted with the more traditional game development. As seems to be the case more often than not, he did not manage to actually complete any of the games he started.

Laakso applied for a job in Bugbear but his application was rejected, twice. They said he didn't have enough of concrete game related things to show. He did not despair however, rather on the contrary, he decided to improve his skills by getting even more involved with games. Laakso started his own blog, started writing game reviews for magazines, and also got involved in a real game development team. When Laakso applied for the third time for a position in Bugbear he did get in and was congratulated by being so actively involved with many game related things since the last application. They even went as far as to say: “you could not have spent your time any better”.

According to Laakso, the way you get in the industry is with three things: social network, portfolio, and an interview. From the employer's point of view you're evaluated on five different things:

  1. First you have to have experience in making games, without this you're not likely to be taken seriously. Doing your own small projects is also taken into account.

  2. Second, you need to be passionate about games, no one wants to hire a person who does not care about games or thinks of them only in terms of a job.

  3. Third is about your energy. This is the intuition people make of you. Are you a doer or do you need step-by-step instructions on what to do?

  4. Fourth you're judged by your portfolio, on what you have done earlier.

  5. Lastly the company is taking into consideration what they themselves actually need in terms of what sort of specialities you have. If they find a match, you're hired.

In addition to those points Laakso highlighted the need for people to have actual gaming experience. This is also more or less a requirement since it is very challenging to have a common vocabulary in games if you don't know what people are talking around you.

Having listened to Laakso's lecture I must say that although the things he mentioned were kind of straightforward it did make sense to me in a deeper level. Because game development is highly demanding and creative you should look to hire people who are up to the challenge. Having the technical skills and experience might not be enough. Being passionate about games is likely to help when the going gets tough.

The second part of Laakso's talk was about the actual roles in the game industry. I found that part also very informative and interesting. There was something for everyone as he went through all the different disciplines. I especially liked his clear explanation on the different roles the artists have as I previously did not have a consistent notion about them. They will of course become more concrete to me as I get more game projects under my belt.

Some other things that I found interesting in the lecture was the mention of Bugbear using Scrum as their management process, which later turned out to be a rather common denominator for all game companies featured in the course, and the notion of the vertical slice in game development.

The vertical slice in essence is the result of pre-production, where the game is prototyped to flesh out the core game mechanics and gameplay. The idea is to eg. create one small part of a finished game in a very short period of time. The point of this is to test different ideas before actually committing to something more time-consuming. A similar approach was used by Valve when they developed Half-Life 2. In a 2005 Game Developer Magazine article they mentioned using placeholder assets in level creation. Only after the fun aspect of the level was discovered, the artist and designers would get busy in fleshing out the details. This turned out to be a huge time saver for them in the end. In the project course on game development during Spring 2010 we're looking to employ this very same technique, so that students can get a sense of completion before the course is over and also to have the projects advance more smoothly.

At the end of the lecture I asked Laakso who they have as the product owner in Bugbear and he responded by saying that they try to give the publisher that role, but in some cases it can also be the producer's job. In my opinion games are different from other types of software because of the creative emphasis, so giving the leading position to someone outside your company might not be the best thing for the end product. After all, your company is the one that is living and breathing the making of games, so you should know best, right?

Game projects, life and everything

Teemu Haila gave a talk about a Finnish game development club called Score. Haila is not only a founder of Score, but he's also involved in IGDA Finland as a coordinator, in Demola as a project coordinator, in Neogames as an associate, in Nordic Game Program as a member of the advisory board, and in Microsoft as a student partner. To put it short he has many different things going on in the game development front. Currently Haila is involved in game development as a designer / programmer but he says that he's likely to end up in the production side of the game industry at some point in the future.

I view Haila's lecture as the most important one of the bunch in the lecture series because it was the most directed to what I personally needed to learn about. Haila started off by giving a detailed history lecture on what Score had gone through in the past.

After the game development club was founded on June 2007 the first big game that went into development was called Project Frayed. It was to become a horror game set in the school with very ambitious goals. However, the project was more or less a failure due to many different reasons. Two main things that Haila highlighted were that the team was too big, which lead to the problem of not being able to divide the workload properly, and the game was being written for over a period of one year with a huge design document that slowed the development to a crawl.

Earlier this year in Turku we had a similar project called Monstrum Maris Balticum (sic) where we had a team of over 10 coders and 20 artist working on what was to become a mmorpg set in the medieval Baltic Sea area. Although the project can be seen on some level as a failure, I see it more as a huge lesson in game development / project management. Without that experience the people involved would not have an idea what it is like to work on a large project with multiple people and what the problems are like.

During Christmas of 2007 Score got a Game Lab room in their school which Haila jokingly mentioned as being the “perfect gaming hell”. This is when things started to pick up in Tampere as the game development enthusiasts had now a place to hang out and do what they loved, create, talk about, and play games.

The most important things that Haila was discussing during his lecture were about game development and project management. He explained that the best way to create a game is not to try to put every single feature you want into a game and write some documentation around that. Instead you should play around with many different ideas at once, in parallel and try them out. His point was that you don't know what makes a fun game before you try it. Therefore the process they use in Score looks a bit like version control system tree structure where only the good ideas are left in and the bad ones are weeded out.

In a fascinating experiment the member of Score decided to do a project called 5D where 5 people developed 5 Xbox360 games with XNA in 5 weeks, whilst working 5 days per week and 5 hours per day. The most interesting thing about the experiment to me was that they used less than 10 minutes on the actual game ideas, and after that they started to work on the game. This was out of necessity because they felt they had to be fast in the development process. Afterwards they could then refine the ideas and change their approach as they saw fit. The result of that experiment was 4 finished games and a lot of experience in making games. The one game that was not finished was due to the developers starting to work on a better game engine to build the game on top of, which clearly was too time consuming.

After having talked during the lecture for two hours straight Haila was gracious enough to visit our budding new game development club here in Turku called LOAD (the club is located in the Game Lab room of the Game Tech & Arts Lab -project). Teemu showed two game projects there to us, one called Villa Penguila and another one whose name I can't remember and will refer to as unnamed.

The unnamed one was more like an interactive demo than a game, which featured stylized silhouette projections of objects and wind that made the objects move in various different ways. The first impression to me was that this is a very polished production. Teemu ran the demo a couple of times and showed how the wind intensity can be controlled by the “player”, and how it affects the objects on screen. To me it looked quite impressive. However, when Teemu showed the source code itself I was surprised. It was nothing but a collection of procedural code glued together very inelegantly with huge variable names that didn't make any sense to anyone else than the author. Before we could comment Teemu admitted that it is definitely bad code but that it does what it sets out to do.

That was a moment of realization for me. During the summer I had worked for almost 3 months to produce high quality code for a game engine I was making with my friend Miika. After that time we were nowhere near to start the actual game creation on top of our game engine. Now here was this code that rendered things on screen that looked impressive to me but that was ugly deep within. To the player or anyone other than the programmer it does not matter what the code is like, it's enough that it does what is required of it. Of course there are things to say about re-usability, but if you're developing a demo you might as well develop something specific if you can do it fast.

The other game Teemu showed us in the club was Villa Penguila. It was also quite impressive to me. During the lecture Teemu explained that there's difference between creating a game and creating a game product. The product is many more times complete than just the game and can take an a lot of time to get right. In Villa Penguila you could see the polish pretty much everywhere. The intro looked good, the menu text was stylish, and the game itself had nice sounds and simple but adequate visual effects.

Sunday, August 16, 2009

Why It Is Beneficial To Listen To Podcasts


First, let's start with some basic math because it's a nice and objective way to chime in.

So, let's say you spend one hour every weekday to commute from home to work, that's two hours per day. Let's also say that you do solitary exercise like jogging or gym for one hour every other day than Sunday, that's six hours per week.

Because there is 5 weekdays in a week and 52 weeks in a year there is 5 * 52 = 260 weekdays in a year. That means you spend 2h * 260, that is 520 hours per year on commuting alone.

In addition, you spend 6h * 52 = 312 hours on doing solitary exercise. In total that is 520h + 312h = 832 hours per year, which is 832h / 8h = 104 full working days.

Of course in these calculations we don't take into account vacations and those sort of things and we also hypothesise that you can follow the exercise discipline like a machine. Still, this at least gives you a nice ballpark estimation on how much time that is altogether, so please bear with me.

In a normal European university that complies with the ECTS-credits standard a school semester equates to about 1500 - 1800 hours of studying, that's 1650 hours on average.

So, finally 832h / 1650h equals roughly 50%.

What does that mean?

Now, what if you were to use all that time to your advantage in such a way that you were actually doing something equivalent to studying whilst enjoying the whole process? Would it then mean that during one full year, you would potentially get an extra half school semester's worth of knowledge assimilated and at your disposal in very pleasant way?

Even if that is not the case, should that amount of time just be neglected and untapped?

I'm of the belief that that is not the case.

Podcasts

In the beginning of last semester (2008 - 2009) I was talking with a course lecturer about the benefits of podcasts. I mentioned to him that I listen to this one particular podcast called Software Engineering Radio whilst commuting to school. After explaining what the podcast was about the lecturer got instantly curious and commented that he'll definitely take a look at that.

A week later he mentioned having listened to one episode whilst jogging and that he really liked it. He said it was really nice to be able to use the jogging time more effectively and that it also helped him keep his heart rate from getting too high during the jog.

That is one of the rare cases where I've met a person who listens to podcasts regularly and even there it was only the beginning for that particular lecturer. Personally I know only two other people who do that and I don't really know the reason for that.

It makes so much sense to me to listen to these things. I get to kick back and just immerse myself in a topic by having some experts analyse and chat about it. Occasionally I take notes of interesting tidbits or websites I should check out. Sometimes I stop the playback completely and let my mind work at some new idea that occurred to me whilst listening and then I write that down in my notebook or cell phone for future reference.

All in all I have to say that I enjoy listening to podcast quite a bit.

Nutrition For Your Mind

I think about listening to podcasts the same way I think about reading useful books. It is simply awesome to start your day by tuning in on an intellectual conversation about some topic that you're interested in. It can be like catching up on news in a way that is very pleasant as you don't have to do much but just listen.

There can be some podcasts which you cannot really listen to easily eg. whilst commuting. I found that some se-radio episodes are so tightly packed with knowledge that listening to them demands a level of concentration that I just can't attain whilst travelling. What happens is that I valiantly try to keep up with the conversation by pausing, rewinding, and even taking notes but still to no avail as I slowly but surely am left guessing at what the people in the podcast are talking about.

One of such episodes that comes to mind dealt about service oriented architecture. I tried to listen to that episode actually 3 times whilst commuting and it always had the same result sooner or later. I believe it was the result of the topic being too abstract to me and of one of the hosts way of presenting information in a very straightforward German fashion with almost no fill up words or sentences where one could relax even for a second or two.

Listening to those heavy hitters require you to just sit down and listen to apprehensively in a place where you can concentrate only on studying.

Rob Walling of Micropreneur Academy suggests in one of his learning modules that you should be taking notes when you listen to podcasts and audio books or when you read books, magazines and blogs. This way you start eliminating resources that don't generate actionable items and that results in you filtering out unimportant chaff. So in his philosophy, non-actionable resources equal unimportant.

A Look Into the Future

Now that was about podcasts. Naturally you can also choose to listen to an educative audio book every once in a while. You might just as well take up on studying something that is directly beneficial to your main studies at school or at work.

I believe this learning through podcasts and/or educative audio books is still very much a growing phenomenon and not yet a mainstream thing. I don't think it is mainstream because eg. in my social group I'm among the very few who actually do listen to these things.

I foresee podcasts becoming a general way of acquiring any type of knowledge and different school systems adopting them as a new way for the students to "attend" lectures. This opens up a new channel for the students to get to the course material and as such it's only a positive thing. Some universities are doing this already.

Another possibility for universities is the outsourcing of lectures. Now that the economy is down and costs have to be cut, how about contracting an expert in some field to lecture a course he or she is a top scholar in? That could be possible by simply using the Academic Earth video lectures as the course lectures themselves. It could lower the costs for the university as the person organizing the course could be supervising many more courses than the currently.

To finish off, here's a couple of simple things to keep in mind when listening to podcasts:

  • Pause the playback for a while if you think you need time to process something that was said. It is always good to let your mind work out the details instead of just listening passively.
  • Rewind the podcast back if you missed something that was said. If you don't do this you might find yourself falling out from continuous stream of thought that listening to a podcast creates for you and that is a bad thing.
  • Take notes when you hear something of value. It is all too easy to forget what you heard if you don't make an effort to remember it. What I do is just write down a couple of words in my cell phone as a txt message and then save it as a draft.

The podcasts I currently listen to regularly are (in no particular order):
I'll write a blog post later where I review each one of those and give comments on what I believe I've gotten from and why I listen to them.

Thursday, August 13, 2009

Grinding At Work

I had an interesting idea this morning whilst commuting to work by bus.

I was listening to This Week In Startups podcast episode 11. At one point in the podcast Lon Harris mentioned how Jason Calacanis is sometimes unreasonable as the CEO of Mahalo.com by suddenly demanding something new and expecting it to happen instantly.

Lon mentioned that it gets a bit crazy sometimes at work at Mahalo and that he'd wish Jason would give people more time to adjust so that the company would feel more stable as an environment and not like a mad house.

Jason took the open critique, which he specifically asked for earlier, maturely as something constructive and then began to analyze the situation. He conceded that he can be difficult at times and also revealed that he sometimes flips out and yells at people at work. That's not something he's proud of but he reckons some of it might actually be useful, like somewhere around 10-15% of the cases.

Jason then commented that with growing companies the situation tends to be such that if the CEO is not constantly expecting more from the company and trying to come up with something new, the company might as well go out of business. It's these kinds passionate people who make the companies what they are with their unrelenting urge to constantly reach new levels of awesome.

That means the companies that are growing can be hectic to work at from time to time.

Lon then commented that the reason why he likes to work at the company is that he feels he is growing personally as the company is growing. It does not feel like grinding at a boring desk job where each day is similar to the other but you can actually see the progress taking place.

Now the thought that came to me at the moment was that that very notion is quite similar to how the term grinding is understood in computer games. You do some boring menial thing repeatedly ad infinitum which you don't care about at all to get to some far looming goal.

Does it make sense to be grinding at work day after day, or would you rather do something that you care about and make a real difference?

Tuesday, August 11, 2009

Becoming a Game Developer

Contrary to my first blog post this one is going to be a bit more personal one, akin to something like a real diary entry. So, if this is not your cup of tea, please feel free skip this one :)

I've always been intrigued by game development. The idea of experimenting with a bunch of novel game concepts and game technologies, building something truly your own, and then unleashing it for other people to enjoy is somehow inherently very compelling to me.

However, I'm yet to do anything notable in the area of game development. So far my own projects have been very modest at best, ranging from a simple worm game (Java applet link) and a pong clone to a game of life simulation (Java applet link), which hardly qualifies as a game in the first place.


I've also participated in two larger projects that had to do with game development. Both of them were university of Turku (a port city in Finland) project courses where we, the students, were tasked to design and build a game.

Neither of these project courses however resulted in an actual working game.

Now, a lot could be said about both of those courses in terms of what went wrong there, but a much more fruitful discourse can be given in the light of what was learned.

I shall go into more depth with this in another blog post, but to at least give you some idea of what was going on in the courses here's the combined lessons I learned from them:

  • Work does not equal the work process. You might think you're doing fine when you have a nice work process going on and when you can measure progress, but concentrating on executing this process alone does not necessarily yield the results you want. The project can still end up being late one day at a time. This lesson came to me when I was acting as the scrum master for the first time and was happily leading the project in a very waterfall like way step by step. I honestly did not see that one coming until the course was over. A huge lesson learned there.

  • The existence of a project leader is vital to a project's success. I believe this holds at least in the setting where our projects took place ie. when there are many (10+) students involved with no strict guidance. In the other course we did not have a designated project leader, which resulted in democratic voting (and arguments) to take place whenever there was something of importance to be decided. As you can probably guess this was not a very effective way to work. There are many other takeaways from the course but I think this one was one of the main lessons.



From studying to teaching

In March of this year an opportunity arose for me to take my game development interest to another level altogether. As we were discussing with the teacher ways to make the course better for the next Spring, we suggested having a practical introductory course in Autumn where the students could get a base level understanding on game development before the actual project course took place.

The idea was immediately very compelling to the teacher and we then set out to plan what sorts of things should be discussed in it. I began listing things with a friend that we would have liked to have known before this year's course:

“Basic understanding on graphics engines would kind of be useful, right?”

“Yup, definitely”

“Also the scene graph, graphics primitives, and linear algebra should be familiar to those steeped in code because those are likely to be used often.”

“Oh, and of course the coders should have practical understanding on the chosen game development technology itself before the project course.”

...

After we were done with the “laundry” list the teacher asked my friend if he would be interested in giving a course that covered such topics in the coming Spring. My friend agreed and then after a while he asked me whether I would be interested in participating in the course as a teacher myself.

“Well, I don't understand much about those topics at the moment and I've never been a teacher myself. I am very willing to learn however and I do believe that I can teach what I've learned to other people. So, yeah I can agree to be the co-teacher if such a course will take place. :)”

That was one of those moments that it just made a lot of sense to say yes even though I had every reason to say no as well.

The funny thing with promises something like that is that it's a kind of spoken contract which you will want to honour. You put yourself in such a bind where you're supposed to do something that you would like to do anyway. This creates sort of an external motivator for you to deliver what you signed up for and that is a very good thing indeed.

So now, after studying practical (meaning coding etc.) game development and game engine architecture for the whole summer 2-3 days per week I can proudly say that I've acquired knowledge that I believe is worth passing on to fellow students during this Autumn's introductory course at university of Turku in Finland.

In some later post(s) I shall discuss the particularities of the game technologies we chose to utilize and the architectural aspects of the game engine we've built for the purpose of creating a scifi first-person adventure game.


Tuesday, August 4, 2009

What Twitter Is About and What Are the Benefits?

First the short answer. Twitter is a simple social media website that can be harnessed as a crowd sourcing tool to filter in news that are relevant to you personally. In other words it increases the signal / noise ratio.

That is done eg. in four different ways. First by following the updates of people you care to listen to, second by following trends ie. generally hot topics, third by utilizing simple string-based search, and fourth by tagging.

In the first case you are not forced to follow anyone so you don't have the problem of spamming as in with email (unless a person's account is hijacked). You get updates from the people you follow as requested be they interesting to you or not. On episode 10 of the TWiST podcast Chris Tolles, the CEO of Topix.com a local news congregator, commented that Twitter is now replacing rss because of this social news filtering feature. On the same episode Jason Callacanis commented: "On Twitter I get the level of curation I want", by which he implies that he can rely on other people to give him the most important bits of news.

The filtering that happens here is only that of selecting the people you want to follow with no further granularity such as 'follow this person on topic x'. This can lead to problems where a person that initially seemed like a good source of news turns sour and instead starts eg. spewing unnecessary details about their private / social life ad infinitum, and thus plummeting the signal / noise ratio. I've definitely seen this happen and am in the process of narrowing down the people I follow.

Some might say that detailed social life updates are exactly what Twitter is about as is kind of expressed on the service's front page, but as I see the trend here is that people are looking for value in the form of news in the updates on Twitter. Social / private life updates are better left on sites like Facebook.

Twitter is different from Facebook because it focuses on doing one simple thing really well: short status updates ie. micro-blogging. Facebook on the other hand is a more complete platform in the sense that it allows for people to add various applications to their profile. Thus users are telling or sharing more about themselves to other people or interacting with other people in numerous ways, such as playing chess or doing comparison tests. To put it simply Facebook is the social gathering site, as pretty much everyone by now can tell.

In the second case with following trends one can quickly get the latest news on wide variety of topics. Whilst it will take bloggers and newscasters in the order hours to produce their material, on twitter people can post news in a matter of seconds or minutes.

What this results in is that we're speeding up the rate of which we're consuming news. The reaction, analysis, and aftermath cycle is now done in 5 days as Leo Laporte commented on the TWiT podcast episode 206, which makes a person fall back in news much more quickly as before. The events of Monday are already ancient history by the time Friday arrives.

Third we have the search capability of Twitter. What this essentially allows the users to do is real time social searching. If for example you see or hear people shooting fireworks in your neighbourhood the most obvious place to check what all the fuss is about is naturally on Twitter. You can search for live updates on the events at your current location simply by using the event and your location as the search strings.

This is at least how it is in the US at the moment. In Finland Twitter hasn't yet come to mainstream such as Facebook, but I guess that's only a matter of time. It took Facebook two years to become mainstream in Finland after it was mainstream in the US.

Fourth way to increase the signal / noise ratio is by utilizing different types of tags. By tags here I mean simple textual markings such as @vesanieminen or #twist that signify something special in Twitter, but only by convention. There's actually nothing special about the tags and they can be thought of as complex emergent behaviour in a very simple system. Personally I find these kinds of things highly facinating.

With these tags people communicate publicly to each other or signify that a particular tweet is about this topic. I think of this as analogous to IRC. People send messages to channels and the channels are tagged with a name such as #gunslingers on the IRCNet. Imagine having that channel publicly available world wide to people with very little computer skills. That can be used to create huge communities way larger than anything on IRC.

There also exists a huge list of third party tools that have been built on top of Twitter by using its public API. There are too many ways to take advantage of Twitter to mention here but via these third party tools we're likely to be able to experience new types of emergent behaviour in this neat little system.

So to wrap up, what are the basic benefits of Twitter?

Twitter is concise, so it takes less time to get to the important stuff.

Twitter provides us multiple streams on the happenings of the world while the blogs and news sites are mainly concerned about giving holistic views.

Twitter is a many to many conversation tool that has various possibilities and business opportunities that people and companies are only beginning to tap in. The benefit here, naturally, is the ability to make money ;)