Thursday, April 1, 2010

Blender - 5 reasons to use it

It's been quite awhile since I talked about something either work or uni related. At the moment, beginning the initial stages of my PhD, uni is going to quite rapidly become my work. I say 'become' and not 'is' because I only just recently acquired a cubicle and laptop to work in/on and am therefore expected to come in to uni to work (instead of bludging at home).

I also tutor. Currently I am teaching students (who are generally pretty good) on the finer aspects of Games Design and the basics of learning a program called Blender. I have been referred to as the 'Blender Guru' but I can honestly say I am quite the noob when it comes to the more aesthetic components of making games. As I am a programmer at heart, my knowledge of texturing, lighting and modeling in games is simplistic at best.

What I have noticed however is that, like last year, there seems to be this incredibly unwarranted and unfair generalisation amongst certain groups that Blender sucks. I am not sure where or how this originated but it has me baffled as to how this decision has come to be. Most of the students commenting negatively about it had not even used it yet. When I did the subject (when it was in its first iteration), we were practically forced to use the program Blender (with only a few exceptions). As my only Game Design tool experience up to that point had been the Unreal and Quake engines (and usually just level design, Unreal Script/QuakeC), I did not exactly see the requirement of using Blender to be a chore. Over the semester, there were mixed views on the engine. However towards the end, having even only scratched the surface of it, I came to the conclusion that it really wasn't that bad. My reasons are explained below.

Note: The videos contained after each point have nothing to do with the actual point's content. They are for demonstration of Blenders capability only

1. It is < 15mb
I do not know of a smaller tool that can do what Blender does for the size it is. I would really like to know, if not just to compare the two. For something that you can literally download within seconds (providing you have a good connection) and transport and install without a hassle, it is difficult to find fault with the mobility and convenience of the program at all.

2. It is free!
People nowadays like money. I like money! It keeps me alive, and living is good (I think). If you look at competitive products (e.g. Unity) you will notice there is a large difference between them. While there are free distributables of certain engines that you can pick up (e.g. UDK), the additional products necessary to make a game (such as modeling programs) are not exactly free themselves. All of this adds up, and not just money wise (refer to point 1).

3. It is not (that) hard to learn
It is not a difficult program. There are thousands of people who have successfully made models, games and machinima using Blender and so can you! I personally think the hatred of Blender's unusual UI stems from simple unfamiliarity with an interface in general. It does not function like Maya or Max, nor is it designed to. When Word 2007 came out I hated it with a burning rage. Eventually however I got used to it. The same thing can be said with using Blender. You just need to use the middle mouse a lot.

4. You don't need to be a programmer to make functional content
I once used an engine called Torque to make a game. I was the programmer. I'll be honest in saying it was a pain, not because it was difficult to code (pfft) but because of the level of abstraction the engine and its entities allowed me to have control over. Everything was prebuilt and the ability to change stuff without going through and radically changing the game dynamics was very limited. I did not really end up making the game I wanted. Blender on the other hand doesn't give you all that. It gives you a physics engine, an empty game loop and the ability to create and apply logic/script to objects in this virtual space. It is a very empty and abstract game environment. The difference is that applying control and game dynamics does not require copious amounts of code as there are tools set up to do it for you at will. Making an object move in Blender from a keypress is dead simple (logicbrick system). Making an object move in Torque was still simple, but required actual code (obviously). Making an object move in an game engine coded from scratch (OpenGL, D3D) is much, much more difficult. Compare 50-100 lines of code to a few mouse clicks and you will see what I mean.

5. It is a sufficient enough tool
For the expectations of the unit I am tutoring, Blender is a more than suitable tool for creating the games we expect students to be making. As nice as visual aesthetics like detailed textures, high polygon count models, fancy lighting and shadow effects may be, if they are not accompanied by a working game with a working game mechanic, they are all for naught. This is Advanced Games DESIGN after all.