Unity versus Blender Game Engine

Can you help, giving 5 reasons why Unity rocks, compared to BGE?
Please vote (you can select multiple options) and reply with some explanation.

Please don’t start rants: I’m interested in this topic, because it might give some targets for Blender 2.5 and BGE/gamekit developers. I know BGE has some benefits (open source, linux support etc), but this thread is to find the top features that makes Unity great.

Thanks,
Erwin

Although I havent tinkered with Unity that much, I got one.
Unity Web Player: being able to play Unity games on any webbrowser. (ah didn`t noticed the poll)
Also FBO (framebuffer object) - being able to do an offscreen rendering… (for bloom/depth of field and other filters using reduced texture size)

Never heard of it before but I expect the sound works.

Sound works like it should in 2.5, this should be what Unity has what the 2.5 BGE doesn’t have.

I believe Unity’s real-time rendering is a bit faster, has more graphical options, has the web-player, has data streaming (see the Island tech. demo) and possibly more I can’t think of right off the bat right now.

Unity is the best indie engine that i know. Is so easy make extensive scenes with thousands of trees and with no FPS down ( The LOD system in Landspace and Trees is Incredible, mostly the Bilboard 3D with automatic transition ), The Web Plug-in is easy to install and the games maked with that can have a very good graphic quality. Iphone Games is a new great marketing to work and BGE too have not suport to that…

Unity is faster than BGE in many areas mostly with post process and Render to texture. ( VBO and FBO they lack the BGE )

The point is that Unity is all project to work fine… They have a great team work in full time to make this engine, cause this Unity is so good.
I love BGE, really, but i don´t think that BGE will be good like Unity unless have a Full time Team working on BGE source code.

I did try and get into the BGE before using Unity. IMO, the BGE could easily match Unity in usefullness if a few things were changed.

What I love about Unity:

The GUI. Having your scripts be Components of the actual engine is really nice. Being able to change variables on the fly (in Realtime no less) is really good for prototyping. Something similar could be done in Blender 2.5 with customizable panels.

The GUI API - Unity’s IDE GUI is the same as the game engine GUI. It’s extremely flexible, and skinnable via a CSS type structure. One thing that personally turned me off of BGE was it’s very very basic GUI rendering. Even printing text on the screen is a hassle in BGE.

Documentation - Honestly, this is the biggest thing for me. Unity’s documentation is all in one place, easily searchable API functions with examples. The BGE wiki is spotty in places, and completely missing in others. I know theres the Gamekit book, but having to purchase a book for basic documentation is just one more hurdle I didn’t care to jump.

There’s more I’m sure. But BGE definitely has it’s advantages over Unity. You’ve got Modifiers that work in game, and Shape Keys! The material and node editor alone kick the crap out of Unity’s Shader lab, which is very difficult to get into without having a specialty in shader programming. Plus, BGE runs on Linux. :slight_smile:

I’ll be very glad to participate, but there’s no Linux version, I guess?!

Unity is a commercial game engine unlike Blender. You can easily port closed source files to all major OSes.

Webplayer/phone + easier interface for sure. Tho the interface is getting much better at 2.5. So I think web/iphone player is the big advantage. The future is heading that way, blender will need to take the same direction one day or another.

All the rest are details that are inevitably getting solver with time.

in my opinion blender has the potential to be a better editor for games than the unity editor. it’s hard to beat a fully featured modeler which has the game engine built right in. :slight_smile:

the advantages of unity are the more complete scripting API (blender’s logic blocks are too limited and the scripting API doesn’t seem to be very complete/polished) and all the platforms it runs on. Unity’s languages have performance advantages because they are typed statically and use the mono jit compiler but personally i really like python and think its fast enough.

i think a secure webplayer is very hard to pull off for an open source project like blender. it also needs a lot marketing to reach a big install base of a webplayer. so it probably would be best to try cooperating with google in this regard. they also seem to be interested in 3d on the web.

and of course the GPL is a problem for many people.

I’ve been using it for a few days, and I love it! I’ve imported all my blender games into unity and they run waaaaay faster in it! The unity engine also has Boo (which is a python based language) so it feels like home. The interface feels like the Hammer editor or a quake map editor, making it feel like a real game editor, wheras blender just feels crowded and not aimed for game developing.

I’ve completely retired from blender games because of unity :slight_smile: I will be purchasing Unity Pro in the next few months. The interface is VERY easy to use and a very small learning curve.

That is all…

I still have a soft spot in my heart for BGE, and I really hope it becomes a serious engine someday. I went on to Panda because there were things I wanted that BGE couldn’t offer, and now I’m going on to Unity, possibly keeping Panda in my backpocket for now.

Here’s the pro’s and con’s as I see them.

Unity Pro’s vs. Blender

Asset Protection - This is huge. Like, omg huge. Dealbreaker huge. A game maker slaves over their assets, there should be a layer of protection that goes at least a little beyond double click. If someone has Blender on their computer, the .blend just shouts “Open me!”

Now, Blender does have a few script hacks, and also a full blown asset protection that works on Windows only atm (my hat is off to the creator of bpplayer), but in Unity, assets are protected right out of the box, and expect nothing from the user. .Net wasn’t working on my laptop for a while and Unity would still play. It runs on damn near anything.

Again, I’m more of an exception in this case because most people have all the .Net frameworks installed already, I have old systems. If I were to attempt a commercial blender game right now, Bpplayer would be the first thing on my list of resources.

License - This is also a dealbreaker. Unity allows you to sell your games with the free engine until a certain point, as I recall with the Indie license before it was free, it was something like 100,000 units (and at that point, if you don’t have more than enough money to buy the professional edition, you must’ve been spending it pretty darn fast). I could be wrong, this may be different now with the free version. I’m assuming the Indie license is the same, so please correct me if I’m wrong.

In Blender, it’s either have a nicely packaged .exe and a GPL game, or vulnerable assets and a technically legal game. On top of that, I still haven’t found a way to place your own icon into the top left corner of your game without recompiling the blender player- which, at that point, again you’re subject to GPL.

Web Player - Ok blender used to have a web player, I don’t know what happened with that project- but Unity’s web player is pretty badass. Panda3D is only now getting one, but the Unity Player download is speedy, and the install doesn’t even require you to restart your browser. Install- refresh page, you’re done. I can easily see this plugin becoming as ubiquitous as flash.

Speed - Unity is fast. Impressively fast. I’m getting framerates with scenes I wouldn’t have thought I could have gotten in any other engine.

Shaders - Another “correct me if I’m wrong” thing. Shaders in Unity run very fast- my experience with BGE shaders has been not to use them, they bog things down to a point of unplayable.

Instant Water - Unity has a readymade water material. That’s awesome. My last water test in blender involved rendering an animated video texture, writing code so that it rendered to texture, and a bunch of other things. Here it was, simple to apply. It may not be hydrax, but it gets the job done quickly.

Alpha - You all -know- the issues involving Blender GLSL Alpha. Let me recap. 14-15 steps?

Very Strong Documentation - Blender is also strong in this area, but Unity is probably stronger. Unity has a whole site, forum, and wiki dedicated to just game creation.

Out of the box server - Networked gaming is ready to go with minimal code. Yes, blender does have its own networked project, but this is designed to fit in.

In-game GUI - Okay, this is another big thing. One of the reasons I was poking through Panda3D was because of its directGUI api. The GUI’s I’ve seen come from Unity are -nice-. I haven’t gotten too deep but, what I’ve seen so far in the examples are just slick.

Blender Pros vs. Unity3D

Render to Texture - This feature is only available in the 1500$ pro version. Blender has it, but it’s still kind of crippled. You can’t have synched sound to video unless you try to program it in yourself somehow. Still, this is a really nice feature if you want to do things like mirrors, reflections, etc.

Python - Unity has Boo, but Boo only looks like Python, you can’t import python’s libraries.

Tighter Integration - No import/export process, it’s all converted at runtime. Downside is, with so many versions of blender flying around, this integration sometimes breaks when you move from one version to the next. Not Blender’s fault, it’s the nature of progress.

Morph Targets - Unity has them too, but you have to script them in, though I hear it’s not hard and the script is available. Right now, Blender supports native morph targets, and that’s pretty darn nice.

Conclusion

That’s all I can think of at the moment, there may be some things that need correction, but I tried to push forward only the things I was mostly sure about. In the end, Blender may be more suitable for university projects where the setting is more GPL friendly.

If you’re a serious game maker that wants to be able to -sell- your game at some point in the future, the web player, asset protection, and license are the main factors that just win you over.

The fact that Unity is specialized for this means that all the important pieces have been smoothed out, such easy packaging and distribution. When I first saw Unity I thought, “Wow, it’s like Blender but with all the things I’ve been needing.” Because Unity gets paid to be what it is, it has to make sure all the important parts are in check and working correctly- so all the biggest and most important aspects to building your game are there and solid.

Please don’t take this as knocking Blender, I’m still an avid user, for animation and some modeling (I’m holding out for Ngons now). Particularly its amazing UVmapping and blindingly fast workflow.

Seriously, the developers for the BGE are amazing. They’re pretty much doing singlehandedly what you would expect of a full blown company with a huge budget and backers.

It’s just the the crucial pieces are just not in place for an Indie to feel safe with BGE, and if BGE manages to champion itself out and become a serious contender in the game community like Blender has in the 3D community, I’ll probably come scurrying back. I just need a reason to give Blender the love. Right now though, I need to use the tool that lets me get what I need done right now.

– Raz

I’m getting at here the BGE forums are going to look pretty dead with these extremely good indie game dev. choices coming out in a year or so, BGE forum activity being like the CS community which is very quiet overall?

If the BGE doesn’t step up its game, most people in the BGE forums may stop using the engine, prepare to see just one new thread a week (or even a month) announcing a good looking Blender project (providing most threads will just be of newb projects that will fail) if this is the case.

I would strongly encourage the Blender developers to consider being able to plug in shaders to viewport preview. Shaders are becoming more complex and detailed as time goes on- being able to preview/view them while modeling in Blender would be a strong bonus.

Blender will always have a strong community, most people on here are linux users (i think) and unity isn’t for linux. Also being open source gives an added benefit for those hobbyists.

For any serious indy developer go get unity, the blender game engine just isn’t optimized enough for real game projects.

I also clicked the “Other” Option, second to “Iphone and web enabled”.

For me, unity exports are extremely fast, simple, and consistent. Be it web, dashboard, or iphone.

About speed there are a number of reports that the 2.5 BGE is a bit faster than 2.49, like 2.49 was a bit faster than 2.48. (when even the Yo Frankie! tech demo was running slow).

Considering the speed of Unity as reported there still is a ways to go, but the BGE is closer than it used to be. (If only Moguri (who has already been creating new patches), Dfelinto, Campbell, Zaghaghi, Ben2610, and others had more time to get the BGE faster and more fully featured for 2.5)

I developed a prototype simulation using BGE a couple years back and have been a full time Unity developer for 3 years. I’d say Delirium’s post pretty much nailed it. Prior to Unity becoming “free” I often sent aspiring game developers to the BGE as a free alternative, but now that Unity is free the only reason I can think of that you’d want to use it instead of Unity is if you -have- to develop for Linux. Even though it’s a closed source application, you’ve got lots of other ways of accessing the main application, through it’s API, through .NET, through ActiveX or even with a custom plugin (requires Pro).

But I’m also not knocking Blender either. I think using Blender with Unity is really the best of both worlds.

@erwin - I’d love to see Unity support Bullet physics. PhysX is OK, but the fact that it’s not cross platform pretty much means Unity will never get an updated version. I wonder if this could be done with a custom plugin?

The Blender Game Engine seems too much like a “feature” rather than a game engine. It seems to me like it is too mixed in with the normal Blender seeings/ features. I would like to see Blender become more modular in how it handles the game engine. I really like the role separation that Unity introduces in how individual assets are made in a modeling application, lets say Blender, and then they are imported into unity which lets the user combine them in various ways into a finished game. However, for me at least, that is not as option as I dislike Unity with a passion. Blender’s GE is at the moment, by my opinion, unsuitable for verbose and professional game development. Blender should make a sharp distinction between game assets and assets created for rendering. Creating a game scene should involve using a game scene editor into which imports assets from different blend files as well as sounds and other media and then lets the user position such assets in the scene along with special objects for game lights, spawn points, triggers, and other script defined objects. There should be a completely separate set of game options. Finally, Blender should be able to save the entire project as a standalone application with resource files; something a bit more optimized than playing a blend file. Materials should be edited as “game materials” and have different option sets from normal materials. I belive that the Blender Game Engine could become a usable tool for even professional game studios if such changes were to be considered. Making a game and making an animation are two completely different things, so I do not see why the boundary between the two is so arbitrarily defined in Blender. I know that I do not have the slightest right to complain about anything in Blender. I am truly grateful to the entire community for your hard work. I’m just pointing out that there is a void in good open source development tools for people who do not know C inside and out. I believe that Blender could be the solution, but it is not quite there yet.

Funny, didn’t think you had to change applications to load the game engine in unity, haha