Blender Game Engine is not a game engine,

Every month someone posts a thread about the newest version of [insert name here] game engine, or compares the graphics of blender games to [insert game title]. And then the discussion turns into a war between people who insist that blender could be up to scratch on creating that sort of thing with focused development, and people who think BGE is useless.
I’ve gotten tired of ruffling through these, so I thought it’s clear things up a little:
BGE is not a game engine

What is a game engine:
A game engine is a program that, when you press the right buttons, runs a game. Much like a car engine. You lower it into a car’s body, turn the key, and it makes the car go. When you turn a key in a car, you expect it to go, and to run until it runs out of gas. Thus when you hit the right buttons on a game engine, you expect a game to come out and work.

But here’s the thing:
BGE is not a game engine

It’s a combined physics and rendering engine

On the surface, it’s similar to a game engine, but at a much lower level. It’s like the cylinder block of an engine. You don’t turn the key on a cylinder block and expect it to run.
To turn a cylinder block into an engine, a mechanic has to:

  • Wire up the distributor.
  • Add pistons
  • Add connecting rods
  • Add some oil
  • Adjust the timing
    After that, he then lowers it into the car, bolts it in, turns the key, and the car roars to life and rolls away.

To turn blender ‘game engine’ into a game engine, the user has to:

  • Program the core mechanics
  • Add in the character/player setup
  • Add in a multiplayer system
  • Smooth out the level transitions
  • Fix bugs in the code he wrote to do the above things
    Now the user can lower the engine into the game of his choice. So now the user has to:
  • Make the artwork (panelbeating)
  • Assemble the levels (Weld it all together)

Even lower than the ‘cylinder block’ of BGE is the spark-plugs of the likes of irrlicht, or some of the purely rendering engines. You don’t see people in those forums complaining the engine isn’t up to scratch, because people there realize that the program they’re using there is only a small part of the overall game.
With blender, most users don’t realize it is not a game engine because it appears so similar. It’s a hybrid, a midstep between low and high level.

***For those of you who didn’t read all of that, here’s the summary:

  • It’s only a small part of a game engine, the bit to do with physics and rendering
  • To turn it into a game engine, you have to program your from the ground up.

***If you want a game engine you can just lower your game into the likes of Unity, UDK, Unreal, whatever. They’ve got a nice, simple system where you can make a million virtually identical games.
But if you want to develop your game with blender, expect to get your hands dirty with a little mechanics work.

Hello, personally I always understood blender like a pre-render tool and its bge like an extension of it.

Maybe the rename of the “blender game engine” to “blender realtime engine” or “blender interactive engine” will be more suitable to it ? because without the game engine name attached it will no more seen like a normal game engine and it wouldn’t compared directly to others game engine.

What novices need to understand is that even if you can make game with blender and its bge, blender isn’t a game engine at first.

This is the problem, by definition, blender is a game engine. The definition of a game engine is quote loosely defined, but commonly interpreted as a system which combines various systems; logic, physics and render to name but a few. Networking is a rare feature despite what one may believe.
The real problem is the people who use the engine. For example, comments which follow the line of ‘the BGE needs this’ or ‘here’s a completely random feature I just found, why isn’t this in the BGE’, and sometimes ‘I like toast, lets work on this project’ really shows the overly unprofessional manner some conduct themselves with. This is not to say we are professional, but some discussions really bare tenuous relevancy at best, or appear to be introduced in order to sound clever or interested.

Sent from my Nexus 5 using Tapatalk

I understand what you are trying to say but I don’t understand the difference between the bge and the other “real” game engines you mentiond at the bottom.
Neither of them has a button labled “Generate good looking game directly from my imagination”
Take Unity for example. (as far as I know) You can’t just check a button that makes your character jump. You have to connect a script to the node that you either coded yourself or got from the asset store.
Every element of a game is created by the game developers the engine offers just a set of tools.

A game engine is a render engine in realtime + stuff to make games (sound, physics, keyboard, joysticks, etc.)
BGE is a game engine : it has a logic brick programming system and python scripting system.
BGE has a sort of editor … more than an editor, it has an integrated modeler ! (it’s my vision :slight_smile: )
Bge can be extended by addons and shaders.
It’s not a GAME MAKER for newbies… ok ! But it’s a game engine for me !

I think this sounds more like the definition of a game launcher ;).

My understanding:
A game engine is a middle ware. It provides “reusable” parts of a game. This allows the game developer to focus on the details of the game rather than the repetitive details.

Using the Car analogy: The car is the game. The pre-build engine, the pre-build wheels, the pre-build doors and so on are the game engine. You might not need all pre-build parts available. But all pre-build parts should fit together. The designer can focus on the color and the little detail that make the car unique ;).

In my understanding the BGE is a full game engine. It is not a authoring tool (higher abstraction) nor a render engine (lower abstraction).

The tendency to achieve the impossible, makes even the best game engines become obsolete.It is an obsession of the human being, of ever go beyond . What today is fantastic ,tomorrow will worth nothing according to critics who look at everything with a magnifying glass.

If I want to make a game, I’ve got three choices.

#1 I can write the game from the ground up. I need to program everything, from the UI to the graphics and AI. If I’ve got the time and inclination I could also add other things like networking, web compatibility, 3d rendering, physics. Some people do take this route, if they are making a simple game, or if they have a big company with hundreds of people. however, these days even big companies are shying away from this one, as making a completely new “game engine” for every “game” is somewhat of a waste of time and resources.

#2 I can use code libraries such as pygame, or Libtcod and other prewriten code modules to construct my game from various sources. This is a common way of making simple games, people make modules or libraries to handle a certain feature like pathfinding or UI or physics, and other people use it for free, or for a fee. Some game engiens are also constructed like this, using a rendering library or a physics library along with some custom code to allow the user to interact and make their games.

#3 I can use an existing game engine and modify it to make my own game. A game engine might have a small palette of options or it might include a full suite of tools. When you mod an existing game, this is what you are doing too. Many large studios these days take this route, they buy or buy the rights to use an existing game engine and then they introduce their own content. They may drop some existing elements, and introduce new ones. In any case you either have something which is fully featured but is specialized towards making a certain kind of game, or you get something barebones which you can use to make almost anything.

The line between the different approaches is pretty thin. Some people would say that pygame could be classed as a game engine, others would say that using a scripting language like python rather than Assembly Code, or whatever the matrix is made out of is cheating if you’re making a game from scratch. It doesn’t really matter.

The basic thing is that the more specialized your tools the more difficult it is to make different types of games. It’s not that hard to make half-life using the quake engine (they did you know), but you would be foolish perhaps to try and make Civilization or Sim City with it. On the other hand, the more bare bones your engine, the more work you have to do to make a game. With the BGE you can expect to have to write (or put together using logic bricks) a custom AI, UI, dialog system, multiplayer, and all the other stuff a game needs. However you won’t have to write a new rendering library, or develop a new physics implementation. You can also leave things out, I’ve seen lots of BGE projects which didn’t use physics, and others which are essentially 2d. The reason people use BGE for these projects is because it’s got a fairly active and helpful (or at least enthusiastic) userbase, and the engine itself is easy to get to grips with. It also helps that it is free, and that people probably already know how to use the 3d design part of Blender before they get involved in the Game engine stuff.

Personally, I don’t really want to see more features in the BGE, I’ve got no use for built in AI or level editor. What I’d like to see is more compatibility, making it use-able on phones or i-pads or whatever, or some kind of HTML 5 integration so it can run games directly in your browser without a plugin.

It can take just a few weeks to make a really terrible first person shooter with a fully functioned engine such as the cry engine, but with BGE it can take years to make even a really terrible FPS. That’s why I’m so impressed with everyone who’s actually made a finished game in Bender. :slight_smile:

The final word is that you’re never going to find the perfect game engine. The more features you include, the more specialized it becomes. RPG maker is quite useful for making an RPG, but quite terrible for making a FPS. But… the more you leave out the more work the user has to do to bring the game up to a finished state. Making a MMORPG with BGE is a lifetime project, where as you could take an old game like Neverwinter nights and Mod it to make a game which resembles your dream game to some extent without too much trouble.

Which kind of game engine you use should depend mostly on your ability, or your ambition. If you have little of both it may be better to join a modding community for an existing game. If you’ve got ambition oozing from every pore, BGE can deliver, if you put in the time and energy to develop your ability and skills.

I always lived under the impression that Blender game engine is a game engine in its real sense.
It’s a collection of physics libraries, audio libraries, openGL renderer, etc… and we users (game developers) control ours games according to data that is output by the game engine. A generic user of the game engine never touches the source codes of the game engine itself, and therefore is “in the hands” of the game engine.

Ha, I always forget audio libraries, even though I’ve worked with them before, setting up microphone input for a game a long time ago.

Also BGE gives you access to input from keyboard, mouse etc… It actually does a lot of stuff that you don’t even have to think about.

I don’t think bge lacks many of these attributes (and those lacking are available via plugins or can be made yourself).

The main difference between bge and other engines is that you need to do pretty much everything yourself. Most engines come with a plethora of assets, effects and presets. In bge you need to code everything from the ground up, which I actually prefer. I like knowing exactly how things are working in my game, not just where it is or what it looks like. You get a more in-depth understanding of the core of your game.

Some really great stuff here guys, some of which I agree with, and some of which I don’t (isn’t it always like that!)

but some discussions really bare tenuous relevancy at best, or appear to be introduced in order to sound clever or interested.

Totally agree

What today is fantastic ,tomorrow will worth nothing according to critics who look at everything with a magnifying glass.

And the philosophers. You forgot the existential philosophers.

Personally, I don’t really want to see more features in the BGE, I’ve got no use for built in AI or level editor.

Really enjoyed your post smoking_mirror. It mirrors pretty much what I feel. To me this hybrid approach of BGE is great for us, but confising for the new people who come along and expect it to be a drop-in-assets-and-go sort of engine. I do not want to see blender becoming one of these.

The core functionality typically provided by a game engine includes …, artificial intelligence, networking, streaming, memory management, threading,

Exactly what I was saying.
(To me the memory management is dynamic, loading only what is necessary into RAM when it’s necessary. like advanced LOD)

The main difference between bge and other engines is that you need to do pretty much everything yourself. Most engines come with a plethora of assets, effects and presets. In bge you need to code everything from the ground up, which I actually prefer. I like knowing exactly how things are working in my game, not just where it is or what it looks like. You get a more in-depth understanding of the core of your game.

This is also exactly what I was saying. I think we may be agreeing here?

Perhaps this will clear up my view on things:


The BGE already has the building blocks traditionally associated with a game engine (logic bricks, an API that can control logic related to sound, input, collisions, movement ect…).

Back when the BGE was first developed, a lot of the game engines back in that day did not have ultra-high level components that you snap together and have a completely system of logic as a result. If the level that the BGE’s logic is on does not quality it as a game engine, then GameMaker and a lot of the engines used back then wouldn’t have qualified either.

Heck, the BGE back then was one of the few engines that had a visual programming interface (along with GameMaker and Virtools), so in a sense according to the logic here, it was more of a game engine than most, it’s just that the definition of that word moved away from that as engines like Unity started giving higher and more complete levels of logic (which also contributes to the ‘sameness’ seen in many games made with certain engines).

Back then, the average commercially available game engine was little more than a world-building app. with an API that had game-specific functions, would they not be considered engines anymore?

Amazing thread,

Bge is a toolbox full of tools,
The developer sometimes rebuild tools.

One program, when ran on a cpu, does not have the potential of a GPU version.

So as I have matured, the things I have wanted to change have matured as well.
I have thus far seen no bottlenecks to my own games. I don’t understand the negative sentiments of artists that can’t code, if you don’t have a team, be the coder.

I used to be one,
but why not just learn to code?

As far as the definition of a game engine,
It is a collection of pre made assets.
Bullet physics is VERY developed these days.

There is not many parts of the bge that are growing to keep up.

Actually, Ton Roosendaal mentioned that in 3.0, he intends to retitle BGE from “Blender Game Engine,” to “Blender Interactive mode,” so you’re spot on. :wink:

I completely agree, and that’s just the wonder of BGE. They don’t give you all the things game engines do, they just give you a cube and the Blender interface and say “here ya go!” That’s why BGE is the perfect crossover engine to larger projects. If you can successfully make an impressive project, then you understand the mechanics that make whatever game engine you’ll use in the future tick. I’m a big fan of understanding core mechanics before claiming to understand the face.
While I completely agree with your argument, I have to have an antithesis: I can see why people want BGE to be a full game engine. It’s kind of a self fulfilling right to create a game in BGE, because you know that everything in the game is all on you. You don’t have to say, that water that looks so good, or that tree or that lens flare that all look so good, that those aren’t yours. In BGE, you have to create those effects on your own, and do it within the limited framerate granted by Blender.
So I agree, but don’t expect people to stop toiling over this. BGE is a journey more than anything, and people always want to find the easiest way to get from point A to point B, and sometimes making a better engine means just that. It would ruin the ritual that is BGE, but that’s just part of the journey…

The Blender Game Engine is a game engine, but you still have to hook up the transmission. Are you building a standard transmission, or an automatic one? What about the carburetor, fuel injected? cooling system, brakes, exhaust, electrical wiring, starter, battery, suspension, axles, differentials. And that’s not everything, it all depends on the type of car (game) that you want to build.

The problem is when you want to build a 4x4 truck, and your engine is only 4 cylinders.
You need the right engine for the right car (game) that you want to build.

Those people who say they want all these presets included the the game engine, they don’t just want an engine, they want a complete rolling chassis.
They just want to paint the body, put on custom chrome wheels, put on a big spoiler, and then say they built a car.

There are game engines that will give you a complete rolling chassis with the engine.
I agree with you @sdfgeoff, if you want something truly unique and custom, you’re going to have to get your hands dirty and start building.
And that’s the fun part :slight_smile:

Edit: And to build a good car by yourself, you need to be both a painter and a mechanic.

Now, not everyone is skilled enough with the hammer and the anvil. And so having a build-in features would greatly speed the “making of the game” process. So yes we need new features!

In conclusion , BGE is way better than UnrealEngine6 except that we don’t know how to fix bugs and code new features. Without advanced programming we are stuck in the 90’s. LOL

Me too! I want to make game not game engine.

Me too! I want new features. But before that we need to figure out how to increase the number of bge dev. Why after so many years we still can’t attract enough dev to sustain the development? Without this top problem being solved, any request is deemed to be futile.

To me, bge is a great but undone engine. Unfortunately, i’m not skilled enough to render a hand to the engine.

“Personally, I don’t really want to see more features in the BGE, I’ve got no use for built in AI or level editor. What I’d like to see is more compatibility, making it use-able on phones or i-pads or whatever, or some kind of HTML 5 integration so it can run games directly in your browser without a plugin.”

I 2nd this comment smoking_mirror, great post overall.

I just tried some games @
http://geta3d.com/
is this real? a plugin for blender files to the web… seems too good to be true :wink: