Sunday, April 21, 2013

Blender Game Engine: The Choice for Beginners


Some of My Test Files
Games are fun, right? But not every game meets the standards of our fantasy game. So many people have so many great ideas. But not all ideas can be actualized. However, some try even though they have so many restrictions. They want to create something of their own. Today the amount of people trying to actualize their dreams is growing. Indie game studios start popping up left in right, either solo groups or small teams. Even though the rate of people trying to develop games is growing  rapidly, the amount of success is not keeping up with it. 
Now let me tell you about some of the trends of these failing teams before I get into the main subject of this article. (However if you want to skip this part skip to the next bolded section)
Teams that start out in High School or Early College
These teams can be successful don't get me wrong. These teams are usually started by a group of bored friends that have no "real" knowledge of how game creation works. And most do not have the real drive to finish either: learning, planning, or creating.
MMOMakers
A whole bunch of people like the idea of an MMO that fits their needs completely, however they do not understand why no MMO fits anyone's highest needs. MMO's are big. Like Really big. Most teams don't understand how much effort goes into making  these kinds of games. There is a lot more modeling, texturing, and animating that a single player game. Not just the actual physical content is increased, but the programming and server development is the biggest issue. No game comes from gathering a group of people together and telling them to make it based off of their skills. There is a lot of money and effort that goes into R&D (Research and Development). Researching how to do these things is too much for a small group of people. So these people need to get over their pipe dreams.
Full Time workers with varying schedules 
Now this kind of team fails frequently by no fault of their own. If no one on the team can meet, then there is no time to discuss and direct each other in order to make it flow well. And there is hardly any time for private work as well.
Okay that’s out of the way, I can breath now.
Learning the Ropes
Now if you have a level head about you and realize that your first project might be crap, or at least not to your expectation, then you might be in good shape. The best way to lean the ropes of game dev is to be working on a project as you research; I think anyway. Now the things that you have to learn straight up is modeling, texturing, and animation; no matter where you go. But one of the main things that will give people a hard time is the programming. Programming is hard to do, probably he hardest for beginners and this is the thing that needs to be entered slowly.
Programming for the Newbie
Diving into learning a programming language will be extremely tough for the newcomer to do. So I suggest working with something that will smooth part of that processes over. There are some games engines that have you really just click a few buttons to make a game. This might be a good idea to do. It really just depends. But so you can get some taste of programming while hitting some buttons, I would say that Blender Game Engine is the best bet.
What is Blender?
Blender was primarily a 3D Modeling and Animation software. However, as time has went on, Blender has become more robust and has expanded it's portfolio. Blender now has nice Video Sequence editing,  3D Camera Tracking, and Motion Tracking, and a stronger game engine.
Learning Logic with Blender  

Logic Bricks
With Blender, a first time experimenter can really learn the ropes of Programming Logic, with out having to worry about language syntax. It uses things called "Logic Bricks" which you open up, choose what type of logic you will be performing, type in the variables you need and pretty much "BLAM" you have created some small feature to your game. Now there are some limitations to the specifics of what you can do, but that can be opened up with a little Python Scripting. (P.S. Python is one of the simplest languages to learn)
That's Not All It Is
Not just is Blender easy for beginning programmers, but it is fantastic for all of it's other features. The UI, to me, is very intuitive and simple (Once you learn the simple hotkeys, which are also very natural) I have tried using a few other 3D programs, but I never decided on them. I was able to get my hands on 3DS Max, (I received it from a Student because I couldn't afford it) and the UI was not very smooth to me. Because 3DS Max was so weird I did not try the Maya that was given to me since it too was made by Autodesk (So I have no real opinion on it). I also was able to beta Test a software coming out soon called "Ray Supreme". I am not allowed to give any details about it until it releases, but I can say that it was not my cup of tea either. I also tried some cheap software programs that didn't work out either. Needless to say, I stuck with Blender.
Solution for Just About Everything 
Animation Workplace
Another thing that makes Blender a perfect gamming solution is that you can run every feature you need in the same window or multiple windows with the same session. You can have UV Mapping, 3D Modeling, Node Editing, Animation Sequence Editing, Python Scripting and ..err… "Logic Bricking," all spread out over you display(s). I use two or sometimes three monitors for my work space. On one I'll have my view port, primarily through the game's camera. On another I will have my animation Sequence Editing coupled with the Logic Bricks and Python Scripts. On my Last screen I will usually have my UV Mapping with Gimp pulled up beside it or a Tutorial. When I work in Blender I usually am able to work very smoothly.
Documentation
Okay, I mentioned a tutorial like two sentences ago so let me tell you something. This I would figure is the most important topic when researching for an software, documentation. The community for Blender is extremely huge. There are several different forums all with almost infinitely amount of topics posted. There are several Blogs dedicated to it. The most exciting documentation to me is the endless video tutorials. Any problem I have ever run into, I have found someone with a solution.
Pricing
Now the final topic, and the one that hurts most staring developers, price. Blender has many high end features. It does not have some of the very complex abilities like some AAA engines, but it is growing, and quickly. A software with extensive documentation, amazing incorporated features, and an amazing community is defiantly worth a fair amount of money. However the value of Blender is much higher than the price asked of it, which is free.
It's Big Problems
Now I know it seems like I have been praising Blender beyond belief, but believe me I am not that big of a fan boy. There are some problems about this engine. The ability to optimally run a very high poly count is not as sufficient as others. Creating an online multiplayer game is not very likely (to my knowledge anyway). And the biggest downfall is the exporting abilities.
Licensing
To fully explain the exporting problems I need to get into the licensing. As I have said before, Blender is free. How is it possible for Blender to be free? Well Blender is an open source software that several people work on for free (some people are out sourced to I believe). And these people believe that there should be a robust solution such as this that is free to all people who need it. So the licensing it was put under is called GPL (General Public License). This license allows several things that people can do: create content for free, sell content created, and even sell the software, and so on. So how does this affect the export?

Exporting Problems
Scripting Workplace
Blender exports one of two ways. You can export as a ".exe" file which is typical, or you can export as a ".blend" file. First lets talk about the ".blend" file. If the game is exported as a ".blend" file then the player needs to have Blender installed so that it can be opened. But you don't want to do that do you? That would be extremely complicated for someone to have to do to play it and it would break down the size of your audience. Well okay then, I can just export as a ".exe" file that should be good right? Wrong! If you export as a ".exe" file then the game is compiled with the Blender Player incorporated. What's wrong with that? Well this goes back to the licensing. All of you material that you create in Blender, on its own, is your content, however, once the Blender Player is incorpor
ated into your file it is instantly placed under GPL because some of the content is Blender's. This means that anybody can take your game or your files, and use it for their personal use or even sell it for their profit.
 Exporting Solutions
However there are a few ways that you can get around these problems. You can do a search for these and you can find them after some work. What these solutions are, are engines that you can import your ".blend" files into, with all your programming and physically created content and it will compile it with out the Blender Player. Some can even export to mobile devices.
 Conclusion
That's about all I have to say on the matter. Summed up, I think Blender is a way for anyone interested in Game Development to get started. Look at it some more and see if it will work for you. And remember, there is no such thing as wasting your time. You need to learn it anyway and you need to go through problems, Blender just seems like the best bet to start out.

Pretty soon I' will post an article about some of the best games I liked that were made with Blender.

Thanks for reading, Bye!


No comments: