Skip to main content

Game Prototyping in Blender


Too often developers prototype games using tools like, 3dsMax and Unity Engine. So many times I have watched developers waste over a hundred thousand dollars on a shamefully boring prototype with no future. If you are prototyping games in Unity with C# and PlayMaker, you are a complete fool

The ultimate tool for game development is Blender, and this is not well understood by game developers. The confusion partly stems from the BGE (blender game engine) and it being featured as a solution for game-dev. The BGE is not a solution for anything, its just a distraction that needs to be removed from Blender. The videos above do not use BGE, instead they run in the regular Blender view, with the game play logic abstracted away from Blender's internals.

Comments

Popular posts from this blog

Abstract Interconnections

Metadata and game logic abstraction are two major things that hinder game development. Often artist and coders have to keep in sync using naming conventions, which break easily. Tools like Maya and 3DSMAX are extensible, but they are bloated, and pipelines built on top of them end up being bloated as well. Blender can be fully recompiled from source in less than five minutes, its code base is tiny, efficient, and easy to modify. With Blender you are not limited to plugins, you can easily fork Blender, and fully define how your pipeline is going to flow from begining to end. Unblender allows for greater abstraction by changing the core data types in Blender, so that any object type can reference any other object by reference. This is done with real pointers, and not naming conventions. You are free to interconnect data in any abstract way, and not have to worry about losing those links when you rename an object. In this example the material type has been modified to allow

Metadata

Blender supports meta-data per-object using Custom Properties , these allow the user to attach any number of key/value pairs to an object. The problem with Custom Props is they only allow for values of numbers or strings, and not pointers to other objects. It becomes very hard to use Custom Props to define all the interconnections and relationships between objects you may need when exporting to an external game engine. Without pointers, your stuck with naming conventions. Unblender solves part of this problem by making standard common abstractions like: on-spawn-script, on-update-script, on-near-script, and on-collision-script. These are all language neutral and optional, its up to you to define how your engine importer parses each script. An integrated text editor, and library linking, are two key features of Blender that come in handy with these abstractions. Blender's integrated editor allows you to write code inside of Blender, so you are not dependent on external