blender vs unity

will blender ever be as good as unity 3d? i want to be able to make high quality games that can be run on linux, mac, pc, ios, android and perhaps even consoles and the web. What is stopping blender from being able to do this? what features does unity have that blender doesn’t? and what features are being developed for blender?

Answers are appreciated, because i want to make an informed decision before investing too much time.

1 Like

It has already been asked several times in the past, search the forums. Thought this will be the first time I reply in this subject so:

1 - blender and unity have their strengths and weaknesses; depending on the game you’re willing to do the BGE may already be perfect for you.

2 - High quality games depends more in you/your team than the game engine

3 - BGE is free, unity is crippled until a considerable sum of money is given; more features may involve money, in BGE most of the things are free and open.

4 - ioS and console licenses are paid separately in unity, and they cost a loooooot.

5 - unity by default seems to export for mac and windows, BGE offers you linux among windows and mac(maybe android in the future?); do not underestimate the linux market.

6 - BGE just need more dedicated developers, hopefully paid to do more cool stuff for it

7 - BGE uses python, which is a very easy language to do games with, thought not as fast as C++; but it will do in many cases.

8 - BGE has the best production workflow, no need to export models and code some graphic features/interface with other engine graphic features, the program you do your game on is the same you use to model, uv texture, animate and apply materials.

9 - You DO can publish your commercial game with the BGE, use bpplayer from C-106 Delta or do not embed all your game into the blender player executable.

The answers I have not provided may be answered by others, and i left some BGE benefits out of the list to keep it short.

I think the real answer is scope. What is the scope of your game. I have seen beautiful things from every engine available including BGE which proves that you need someone with who can take a tool and produce art.

I think if youre not sure what features will make or break your vision and what your scope is, then your probaly not ready to pick an engine.

My advice is grab blender (its free!). Starting making assets with it and produce some gameplay and when the time comes that it’s not enuff at least you have the peace of mind that you have a game with alot ofwork done that can be set up in another engine fairly quickly.

I would agree with Lunarts that the engine doesn’t matter that much, as long as you’re willing to work with whatever engine you have. You’ll have limitations with any engine you choose - Unity has some, especially with the Free version, just like the BGE has some.

If you want realtime liquid physics, for example, almost no engine readily available will have this feature. You’ll have to implement it yourself, basically.

If you want a simple 3D space adventure, then almost any engine would suffice. The BGE is powerful and feature-rich enough where you can make pretty much any game type in it and have it look and play very well.

If you want GLSL graphics, the BGE has it. If you want custom-written GLSL shaders, you can easily run them in the BGE, as well. If you want realtime physics, the BGE has this feature. If you want 2D objects (sprites), it’s easy to set them up once you know how. As an example, I’ve been making Soldier Of, a retro 3D action RPG game with 2D sprites, and I think it’s turning out pretty well.

You might say that this doesn’t seem to be stressing the Blender Game Engine, but the BGE is primarily a 3D engine, so doing 2D animation in it wasn’t as easy as doing 3D animation in it, which is similar to most other 3D engines. Now that I’ve done this, though, it’s easy for me, and everyone else, since I released my animation script for public use, even with a tutorial on how to use it. That’s another reason to use the BGE - the community here’s pretty good about sharing things, and we all want a better engine to use.

I would also recommend running with the BGE for its excellent workflow and for supporting an easy-to-learn programming language (Python). The main thing that you’ll find is probably this: When you find that it’s not easy to do something in the BGE, don’t immediately turn to another engine. You’ll have to both start from scratch with the new engine, as well as abandon your current work in the BGE. Rather than that, do some research, and ask questions on the forums. The answer is rarely, “It’s not possible in the BGE.” Even things that were previously thought to be too inefficient to run in the BGE, like voxels, are possible.

P.S. If you choose the BGE, try a build from GraphicAll, as some bugs were recently fixed in that one.

For me there is only one thing, that can launch bge, light years ahead of unity…performance!
I’ve been working years with blender as hobbyist and 2 years with unity professionally(means my payed work), trust me, if Blender had the unity performance, it will be the most fast,usable and reliable engine for indie games out there.

P.S. Ofcourse protecting assets and little things like that…will come in handy.

Yes, if blender would be as fast as unity, then blender wolud more than a simple 3D modeling program, we just need developers, paid or not , we just need them.

‘What’s holding the BGE back?’

In my opinion, a load of cash.

The problem is that the BGE has always been on the sideline to Blender ‘itself’. Ton has stated (quite recently; tell me if I’m wrong) that he doesn’t want to fund the game engine.

So why isn’t there substantial development in the BGE, when other parts of Blender are improving at a constant rate?

Simply: There aren’t enough developers. And I’m sure there’d be a whole lot more if money was mentioned :slight_smile:

There is a lot of great work done by the community, don’t get me wrong. Candy Branch, X-Emitter/easyEmit, vehicle wrappers, advanced GLSL shaders, 2-D sprites; to name a few. The problem is unifying them into one package: namely Trunk.

If we could get everything the community’s ever done into one version of Blender (without it crashing), that would be the day that the BGE rises up to be more than a sideline, in my opinion.

in my opinon i ended up going to udk from unity mainly because of the realtime shadows and just the way it handles the graphics

If you have the time, why not learn them all? They all have free versions / are free, and nearly all of them use FSM or logic blocks along with scripting.

I think each has its own strengths and weaknesses, and to make a game on any of them involves compromise.

occlusion culling
navigation meshes ( which can be made manually?)
collision meshes(which can be done manually?)
i dont know what the feature is called, but when dynamic objects pick up light from their surroundings?
i know engines like unity, udk and cryengine 3 sdk, can all port games to various platforms with just the click of a button, how can that be worked into blender?
does the dynamic paint feature work with the bge?
can we have good real time cloth physics on the bge?
image based reflections?
also, is there difficulty getting community projects into trunk? because i want to learn to program more, and hopefully in future, when i know what im doing, contribute features to blender. So whether or not i would be able to get those features, should i actually learn what im on about (professional noob here), into trunk, would be an important factor. At the moment im only just beginning to learn the blender python api, but i want to pick up c and c++ further down the line.
I read somewhere that the bge rasterizer is slow because its not multi-core or something? is there work being done to speed it up?
I think i want to use the bge, instead of using unity or another engine just because it has a feature blender doesn’t, i would rather make the feature for blender…though obviously, as i am now, i couldn’t do that!

@pwolf - Is that list things that aren’t possible in the BGE? Occlusion culling is possible in the BGE - you simply use the Occluder physics type. Picking up lighting from surroundings might be something that you could implement yourself with custom-written GLSL shaders. Image based reflections is already implemented - reflections based off of an image. If you mean more complex reflections like cube-map reflections and such, martinsh has been doing work on that front in the Candy branch.

There is some difficulty in getting community patches and features into trunk, I think mainly because Blender’s a big program and it takes a lot to ensure that when things are submitted, they work well with the rest of the program.

The BGE rasterizer is slow because it renders a batch for every object, rather than efficiently placing similar objects into single batches. Someone should do work on this front. Moerdn, from this forum, was working on this and LOD, but he got busy, I suppose.

I would say BGE is more for hobby projects and people who want to get their feet wet with games development. Unfortunately, it is too rough around the edges if you plan to create commercial games.

With Unity you can create games for web and mobile with a decent performance. You get things like cloth simulations, ragdolls, realtime reflections, particle systems, pathfinding out of the box. Though, it has it’s drawbacks as well.
Some features are half assed at launch. Just take their version of Umbra Occlusion Culling when their introduced it. It was unusable. Flash support is also pretty buggy at the moment. And the new RNM Lightmaps also doesn’t work as perfect as expected right now. There are also some annoying bugs if you make bigger games and the official (unpaid) support is not the best.
I’m not a big fan of their forum community as well. You will find some really unhelpful and arrogant people there. “Fanboys” is a good term here. I barely visit that place. And you mentioned you want to deploy for Linux right? Well Unity does not support Linux Standalones but browser based games in Linux.
Not to forget that you have to invest some money in Unity to get the full power.

However, All in all I think Unity is the better choice if you are an indie developer who actually want’s to make money with games (seems so if I read your initial post). You just need to get over some of the mentioned drawbacks.
Personally, I use Blender and 3dCoat for asset creation and Unity as a engine. I also sell some assets in Unity’s Asset Store which is really nice for some extra income. Unity has many developers who willing to invest money into their games. So you can sell them assets or take some commissioned work while working on your own games. Something which is hard to achieve with BGE. Most people here are hobbyists and students with not much money.

The power of BGE is it’s open source nature. Theoretically you could push it as far as you want it, assuming that you have the C++ or Python skills. But as mentioned here before, there are just a couple of skilled devs working on the BGE in their spare time. That is simply not enough to skyrocket in the same manner as Blender’s modeling and rendering does right now.
As for me, I need a engine that has a lot features working out of the box. I simply don’t have the time to fiddle much around to get trivial stuff working, or waiting for certain features or upgrades.
But if you have the time and dedication to make some BGE features by yourself and use BGE to gain some coding experience rather than make commercial games, go for BGE.

Btw. Nice game SolarLune. I like the retro feeling :slight_smile:

Unity look like a great program, I would recomend, now, Unity, BGE have lots of bugs, and you may face them on your game, its better to get something more stabble.

I work with BGE but somethimes, well It get me nervous, you cant count with the blenderplayer after the 2.49b version of blender, and that is really terrible.

some good answers here. I think i will stick with blender for now! for the main reason that i want to learn to develop features as well as games, i want to work under linux and i dont want to pay much money!
however, i dont even know how to get the system console in linux, in windows it has the “toggle system console” button under help, but in linux it doesn’t have that, any advice? i dont like using windows so i want to get back to linux!
im looking forward to various experiments and the likes

Yes in this case, BGE is a good choice. Especially if you would like to work under Linux.

I wish you a lot success with your endeavor :slight_smile:

Not sure if this is it, but try executing Blender from a console.

2 Things I miss in the bge! Rasterizer performance and mobile support. Mobile support will be tackled in this year gsoc. I hope it goes well!

I have to say I totally love the bge. I have played(and still play) a bit in unity. It is a nice engine for sure. But it is not a “click on button and everything is done” application! You still have to work many things out and develop creative solutions for ideas! Same goes for blender. Blender has almost every feature, you just need to go there and do some stuff manually.
Lots of stuff I can do in Blender I am asking myself… oh crap… how would I do this in unity? Well I have to say I am much more familiar with blender than with unity. But hey, I think thats the point. If you get used to an application you can work around its limitations! In my opinion unity has crap physics(nvidia physX)! I just don’t get physics run properly! I think it is possible but out of the box blender better has much better physics handling(bullet engine).
Many people see AAA Games by big studios and don’t even know how much developement is done for effects and features that unity does not provide out of the box! Same goes for blender. Unfortunately no big studio has yet tried to create a game with it! But look at martinsh demos. With some further work you can achieve awesome looking games!

For me the bge will never be abandoned! But of course I would love to see further developement! Performance is a big point. I hope the blender foundation will be more active in bge developement in the future! That is my main concern!

when choosing keep in mind that blender is an all purpose 3d application while unity is solely a game creator. one of the best things about blender is that its free and under the GPL so its easy to distribute. unity is free to begin with but distributing your game with it can be VERY costly (3000< for some licences). however unity is one of the simplest ways to get your game to iOS, Android and consoles. if you are planning on creating a large game like an FPS or RTS game unity would probably be better but blender is still capable. Both have limitations and areas of where they excel, so it all depends on your budget, plans and knowledge of the programs.

hope this helps

cool, so am i right when saying , that when developing a game with the blender game engine, one should use logic bricks, unless it cant be done(at least not easily) with them? i read somewhere that they are faster than python.
Also, should i get the gamekit from the store, the one thats about yo frankie? from what i gather it goes through the development of the entire game , step by step. I get the feeling that would be handy!
do the lessons still apply with blender 2.62 and 2.63?

pwolf> use what you need to use- logic is faster than python (since it is pre-compiled) but for complex actions you will need to use Python eventually.

Logic is great though, but unless you are organised (and LABEL THINGS!!! Something I always forget to do :wink: ) it gets confusing really quickly.

For an illustration of what logic can do, have a look at Peach Story- and take a look at how many logic blocks are used and how everything is labelled neatly.

As a general note, is the BGE that in danger of being ignored by the Blender ‘management’?