I have often snatched an envious glance at the likes of Unity 3D, Ogre, UDK and thought 'why don't we have that in Blender GE?' Unfortunately the answer is plain simple:
Priority of development
Let me lay out the main issues that we face:
- An outdated Rasterizer (codebase ~10 years) which faces extensive bottlenecks
- Incomplete python intergration into the Game Engine (especially Bullet)
- Single threaded calculations for Logic, Physics and Rasterizer
- Little funding for paid development
- Crippling Shadow calculations (especially the soft shadow patch PCF)
- Inefficient GLSL Lighting calculation
This article attempts to isolate, and thus address the issues that the Blender Game Engine face.
Blender Game Engine receives very little official attention from the Blender Foundation; the majority of trunk additions refer to user submitted content, from developers such as Dfelinto, Moguri and Kupoman (congratulations to them!).
In order to make a fair case, i wish to compare our Game Engine to BlendElf. Samuel Anjam was programming his own Game Engine for his portfolio project, and what he has achieved has been superb. After noting that as a sole developer, for a portfolio showpiece, we still can see the difference that a single developer may have upon any project, albeit his own in such a case as BlendELF
Hold on, OpenGL 2?
I had mentioned OpenGL 2 as a disadvantage in the list aforementioned, but it had caused some confusion.
I was trying to highlight the position in which the engine stands. Whilst OpenGL 2 is not a disadvantage, it is an indicator of progress. The latest specification is OpenGL 4, and there are many waypoints in between that mark. The fact that we are currently contented with OpenGL 2, release 2004, suggests that we have not the need for a more advanced library - that the Game Engine is not able to make use of the more modern shading techniques and optimisations, because it hasn't moved with the times. It is not only a lack of new features that we face, but a lack of updates that keep our beloved engine constantly progressing, and moving forward to compare with other engines on the market.
Why users are 'jumping ship':
Following on from this, i shall note the lack of AAA Blender games; it's not that we have no skilled users, it's simply that people are realising their limitations, and moving to different engines. It seems somewhat idealistic to hope for a comparison between commercial engines and Blender Game Engine- an open source game engine, for that would be foolish, but there is a link between development and user base. When a developer receives feedback on what features the user base is most in need of, he will attempt to complete the task, in the knowledge that it both satisfies the existing users, but attracts others. With the BGE, it has taken the attitude of a side project - marooned amongst the mass of render enthusiasts. For this reason, it moves at a relatively slower pace to that of it's counterparts. This does not attract users, or moreover, it leaves the community with a high proportion of beginners who start with basic, incomplete projects, then jump ship.
Why the BGE is an asset to be preserved:
The Game Engine is an attribute. The BGE attracted me to Blender in 2.4, when i despised the unintuitive interface, i persevered in order to make use of the free game engine. Along my journey to 2.6, i picked up many of the benefits of the modelling environment, this is what probably kept me with BGE. In that time, the biggest change i encountered was an updated Python 3 API, whilst for the modelling environment, cycles has already been implemented into the renderer options. Anyone with a decent idea of cause and effect can see that the BGE would not be an asset to lose, and is in desperate need of attention
Suggested Course of action:
Complete the Poll!
Although i don't expect that by request development would move solely to the GE, i would like to take this oppertunity to sample the community in order see what they want. I ask the community to suggest improvements / modifications for engine-specific features, rather than scripts / content such as mouselook.
Please complete the poll with the area that you most believe requires development that would aid you best, and after a certain period of time, i shall submit it to the Blender Foundation. After this point, i will be asking for your help in conjunction with the response i receive, in solving these issues.
Whether we have to employ an independant developer, or call upon our own (Dfelinto, Moguri, Kupoman) we should not sit back and watch our community fall as Blender's Game Engine fades into the sea of free, powerful Game Engines, and ever growing market.
Features that have been considered/implemented:
- Nodal Logic - This has been proposed and worked upon, but is limited by the candidates funding
- Recast and Detour - The BGE finally has an optimised (C++) pathfinding resource
- Python animation handle - Moguri
- 3D audio
- Components* -Moguri
* denotes incomplete
Many thanks, agoose77