Saturday, January 26, 2013

DevCorner: Blender Game Engine

While Blender3D is one of the premier FOSS projects out there, its integral part the Blender Game Engine (BGE) is often belittled as not a serious game engine.

While the criticism is certainly not completely unfounded  and the integration of limited "non-programming" game code creation (via logic bricks) gives it a bit of a "RPG maker" image, it really is a quite interesting platform to work on it seems.
Ok, probably as of now the BGE is really more of a rapid game prototyping engine, but previous experience during the Yo, Frankie! project has actually shown that at least compared to some other well known FOSS engines, it is a serious contender (that Blender Foundation project originally started on Crystal Space, and after many problems was implemented in the BGE in a few weeks only).



So what makes it so interesting? Well for one there is the full integration with a creation tool (obviously Blender3D) so that getting your content into the game is only a matter of making it. No exporters or anything needed... it just works. Then of course there is the fully scriptability via Python, also integrated tightly. Basically you never have to exit Blender, and testing your game can be done right in the editor with one click (no compiling etc. necessary). Oh and did I mention the great physics capabilities via Bullet, also build right in?

In addition your created game will be immediately available on any platform the Blender Game player has been ported (all major desktop operating systems, with an Android port under development and a browser plugin, too). In addition you can choose to publish your game as a single .blend file, giving the users a direct access to all the source files of the game; a wet dream of any true FOSS game developer!
The tight integration with the GPLed Blender Player, has been a major source of discontent with the predominately propitiatory game developing users of the BGE however. Thus there now exists also a few options to encrypt your game and/or run it on an external engine that can be kept close source (but I will not go further into that here). 

You can find a lot of (sometimes really awesome looking: 1, 2, 3) game projects on the Blenderartists.org forum. Now as I said, most of it is sadly closed source with propitiatory artworks, but I also have the feeling that some simply don't know or care about the legal implications of their "freeware" game (which sadly shows that even many people who use a great FOSS tool, mostly care about the "free as in beer" aspect of it). 

One of the more interesting projects right now (which might or might not become a full FOSS game) can be seen in this video:



It shows the most recent work by Martinesh, who is basically BGE's resident game art guru. Two years ago we already featured previous awesome work by him, but sadly that Air Race project is by now canceled.
What he is now working on is however rather a show-case for the really nice new graphical features in the BGE which he and others are developing in the so called "candy" development branch (on his blog there are also more details and nice videos from some time ago).

Another cool recent project it the rewrite of the the logic bricks visual programming idea via nodal logic blocks called Hive.
While not completely integrated into Blender yet, you can already try it via an external editor (the created python code works fine inside Blender). There are also some tutorials and a documentation for it.
Since my programming skills also lack somewhat, I find that an interesting tool... however most likely it is rather a nice way to do some level scripting, than actually programming the real guts of a game with it.

So where can you get started with developing your own game using the BGE? Well, the blenderartists.org sub-forums are always helpful, with some nice beginners video tutorials linked here, here, here and here ;)
There are even some books available (this one in particular is quite recent, which is a plus given the fast development of Blender3D) and there is of course the official Blender documentation.
Oh and a good source of content is (besides our friends opengameart.org of course) Blender Swap (nice interview with one of the creators here).

If you have further questions please comment below or ask over at blenderartists.org!