Unity versus Blender Game Engine

It was cacelled I think. Too bad:no:

I vote for .bge file extension. :3

but why won’t gamekit simply replace blender’s game engine? isn’t it a duplication of efforts? i guess with opengl it would be possible to render directly in blender’s gui with irrlicht or ogre?

Unity scripting language(s) are better
it’s not the languages themselves * but the scripting api. many people i know don’t like to work with logic blocks at all but prefer a complete, polished, well documented api which nicely exposes all functionality of the engine.

  • except maybe that they are faster and that they are sandboxed. i am not sure though if mono offers sandboxing out of the box or if the unity developers added this somehow.

That’s mostly true, but I think the term “level” is very limited to what actually occurs in production nowadays. I may ask a designer to block out city block or a house or dungeon or whatever. The environment needs to be built in a modular fashion where each piece can be added to the library and reused as much as possible throughout the project. In many cases, we build very large environments (think 3x3 full city blocks) that is reused for a large number of missions ala the sand box game play approach. Once I approve the environment, the designer will need to work simultaneously in the environment along with scripters / designers, programmers and artists to iterate it to a production quality environment.

The traditional level editor is going away in favor of a content assembly tool - something where all the pieces of the game come together and is synchronized (Blender is a good example of this, but from the art angle). The difference is that the editor is built for tying together pieces of content, not for creating content. I.e., it’s designed for the designer. If you take a veteran level designer and put him in front of Blender and say “make me a level”, he’s going to look at you like you’re nuts because it’s so different from the tool paradigms he’s used to. It may be powerful, but it’s not necessarily accessible in a meaningful way to the targeted end-user.

In short, it’s not so much about the UI (although that is a big part of it) or levels as it is the entire approach and usability for designers.

Maibe with some little tweaks to the interface, it could become more “designer-friendly”

Actually in Blender the most similar thing to what you said ( and the style I try to use when building a game ) is making the mesh, material, texture, logic etc. in a .blend file, group everything together, and in the level .blend import the group and place/instance it around; so there is ( kinda ) an asset management, it just isn’t well implemented:

For example, it would be nice to avoid groups, and instead have the possibility to just link all the .blend directly ( since when you make groups not everything gets linked, for example the rigid body constraints, and the scripts sometimes have to be linked separately ), maibe even drag and dropping the .blend in the target level, why not, in Unity style; another thing is, when you select an interface layout, it would be nice to have already as default some layouts like Mesh/Animation/Logic/Level editing, so the modeler select Mesh Editing and already have all the mesh panels set and ready to tweak the mesh, then the animator select Animation Editing and it opens all the animation tools, then maibe the level editor select Level Editing as layout and you get a panel with a list of linked assets ( and maybe the feature to drop .blends inside to link them directly ), then you have the 3D view as usual, and you have the object properties already opened up, and instead of adding groups as of now, you add instances of the linked assets, and you have the properties for the instance and not for an empty instancing a mesh…

I don’t know if I explained myself clearly enough but the point I’m trying to make is, with some little tweaks in .blend linking ( using real asset linking instead of groups ) and adding more game oriented interface layouts ( like in 2.5 you have to select “Game” to make all game related things appear, maybe it could be that when you select it, it automatically changes the available layouts adding level editing, logic editing etc. ) Blender could become an exceptional tool for real game editing, I mean, it already is fantastic for modeling, I don’t think it will be too hard to make it become an elite for game editing too, especially now that in 2.5 the interface can be user-customized freely.

The tools are already there, they just need to be rearranged to fit more the needs of game making, thats all…

Hope this makes sense to you,
Cya =)

EDIT: Interface Layout == Screen in Blender (I think interface layout fits more though :stuck_out_tongue: ) and another thing, the outliner is already a lot like the asset panel of Unity, showing all the objects and how they are linked in respect to each other, so maybe when you open the level editing layout ( screen ) the outliner gets opened too, and if you drag-and-drop a .blend in it it will get automatically linked…

As far as I know a level editor (or world builder) has been like this for at least 10 years. If you take UnrealEd, it imports assets from 3ds max, and it lets you tie the pieces together, tweak lighting, tweak animation, setup physics/colliders, write scripts etc.

How much does the traditional UnrealEd differ from Unity?

If you take a veteran level designer and put him in front of Blender and say “make me a level”, he’s going to look at you like you’re nuts because it’s so different from the tool paradigms he’s used to. It may be powerful, but it’s not necessarily accessible in a meaningful way to the targeted end-user.

Blender 2.5 is very programmable and customizable and it has ‘screens’ that can change/optimize the the GUI for particular purposes.

Can you be more specific and make a top 10 (or so) list of main tools/GUI items that your level designers need (assuming we can hide other things from the Blender GUI)?

Thanks,
Erwin

@ nxain:
Would a library style asset management system combined with the use of linked assets create more of the sort of system you’re talking about? Blender already provides for the use of linked assets, but up until now (2.49) the library management aspect has been lacking.

With this sort of system, artists or designers would block out rough assets to be used in design, but these objects would be managed externally as linked asset files. The artists could then add detail and textures to the modeling, and these updates would would be visible to the designer in the environment with a simple reload of linked assets (or Blender could intelligently check for changes in linked assets at given intervals). The library management system would allow the designer to select from the pre-existing modular game assets to reuse at any place in the game.

From what I can tell, Unity already offers these sort of integrated features, which would make it more desirable for team-based development. Blender currently possesses the beginnings of such a system. Would you recommend the maturation of this system as a priority in Blender Game Engine development?

Would you recommend the maturation of this system as a priority in Blender Game Engine development?

To me that should be exactly the target now, as GameKit will take care of the performance; also, you expressed what I was trying to but in a shorter and coincise way :slight_smile: I will have to work more on my English darn… :stuck_out_tongue:

Regards

Sry, guys, I can’t really say anything about Unity in comparison with the BGE as I have never used Unity, but maybe you could clarify some points:

  1. GameKit is hyped like the Holy Grail of Game Development and the future of the BGE. With each post of erwin and every answer following this hype gets more and more. “GameKit will solve all the performance issues” - “GameKit + Blender will be an AAA Game Engine team”, the only comment missing is “Wow awesome, with GameKit I can finally make my own Crysis”. Could please anyone elaborate why GameKit will be so much faster than the BGE? If Ogre is the answer to all performance problems (which I doubt), then why is it so much easier to integrate Ogre into GameKit instead of the BGE? From what I understand the GameKit is in early alpha and lacks many many many features of the BGE, so a super-fast-better-looking-than-crysis-omg GameKit will take a lot of time and not just fall out of the sky. Correct me if I’m wrong.
  2. Could anyone please explain why the GameKit is needed to protect .blend files? I am aware of the fact that the .blend files are not protected in the current BGE, but who says that you need a complete engine rewrite for that? According to http://www.blender.org/education-help/faq/gpl-for-artists/#c2130 it is only illegal to bundle a .blend file with the blenderplayer and release it under something different than the GPL. Why can’t we just improve the BGE so that there is some kind of layer that manages the communication between BGE and a protected .blend file. Does the whole engine need to be rewritten? There are projects like BPPlayer and although I don’t understand anything about the technical details, these methods at least provide some ways to protect .blend files. Every copy protection can be cracked, the question is just how much time you want to invest to get a ultra-strong protection or whether a basic protection is enough. Look at World Of Goo, they released their game without DRM or copy protection, they still made quite some money out of it. The majority of people can’t crack a basic copy protection and the real crackers will download a cracked version anyway - no matter how good the protection is.

I am just a bit afraid to see all the development going into GameKit with duplicated efforts in the BGE. I am very happy with the BGE and would rather like to see feature improvements instead of licensing improvements - do you really think that masses of new game developers will immediately adopt the BGE / GameKit just because the license is ISC/MIT/BSD style? You still need a good engine and a good documentation to make a game. Just my 2 cents.

It is not meant to be hyped like that. GameKit is primary a way to have a game engine based on the BSD/MIT/Zlib license. It uses Irrlicht (or Ogre), Bullet for physics. It is early work-in-progress indeed. Embedding Ogre into BGE won’t solve (L)GPL issues.

  1. Could anyone please explain why the GameKit is needed to protect .blend files?

You don’t need GameKit to protect your .blend files. BPPlayer might work just fine.

Do you really think that masses of new game developers will immediately adopt the BGE

That is not the point. (L)GPL is just not a good license for game engine technology.

Look at World Of Goo, they released their game without DRM or copy protection, they still made quite some money out of it.

World Of Goo is not a game released under the (L)GPL license, is it?
Thanks,
Erwin

Ok I’ve been playing with Unity, and one feature is really nice, I can drop a whole .blend file into my assets and it will all be loaded. Pretty random but I felt I should say that.

It gets better.

If you double click that asset in game, it opens blender to edit the asset and auto updates it on saving the asset in Blender. With textures from Photoshop, you get real time updates on saving with no new importing. Also, when you build the project, it strips out the blender file automatically and converts the textures to dds files. Also, it seems like the built-in FBX importer between Blender and Unity is better than exporting an FBX from Blender.

You’ve really hit it on the nail with that one. I know Blender supports much of this, but not in a way that is really ready for a studio. When my designers used SketchUp, they created a shared library of props to to place in the environments. The artists then used Max to replace the assets on a 1:1 basis. This was all fully destructible geometry. The engine editor was used for assembly and placement with lua used for scripting.

The pipeline varies much from studio to studio, but in studios where design is geometry heavy, they need to create a library of place holders that the art team can replace (using art to create blocked out geometry is just a waste of money). The placeholders are to script gameplay and A.I. pathfinding around and discover what’s working and not working from the paper design. Ideally, the level is 75% locked down before an artists touches anything in it. Many studios have artists working side by side with designers and treat designers more like writers (I don’t like this, but it’s common).

Our placeholders were grouped in prefabs, which could be layered on in a level (which was a prefab itself), enabling the user to checkout just the prefabs he needed from inside the editor (and thus allowing a whole team of people to work on the same level). Some of the designers were good with geometry and gave the artists very detailed geometry to work with. Others just put in block where they needed and relied on the library for props. Everything was a prefab - spawn managers, gameplay logic, geometry, enemy A.I., etc.

Now, imagine that you’re a level scripter or a level designer implementing gameplay. Mostly what you want is a way to manage assets, modify prefabs and edit text scripts in the language (there should be many templates available to address all the basic problems). Like I said, I know Blender mostly does this, but not without requiring a user to learn alot about Blender as an art tool first. Ideally, I would love to be able to hit the “game edit mode” button and have the UI and data filtering completely rearranged for level creation and logic scripting. I would also like to be able to create a game project that manages the game assets (these should not be blender files, but .prefabs of some sort).

Right now, if Blender had all the features it needed to be a production level game editor, training people to use it would cost a fortune and I couldn’t even really do it because of the state of documentation and volume of data someone would need to take in (as you can tell, I haven’t even come close to figuring it all out myself yet). I was able to learn all the basics things I needed to be productive as a designer in Unity in about 6 hours). I was able to be much more effective because I already knew how to use SketchUp and Blender (which is where I make all my placeholder art).

In some ways, I kind of wish Blender would be broken apart and each part focused on the usability of the primary function (making art/animation or making a game). I’m a little unsure about the non-linear editor, god knows Linux needs a good one. It’s cool to have, but I do go to Premiere or Final Cut for anything I need to do that doesn’t involve rendering from inside Blender.

I don’t think Erwin is going to make a license issue with hooking GameKit code (which is mostly his own code) ultra-tight with Blender to the point you just have to press ‘P’.

There’s a reason it’s called the Blender GameKit

there wouldn’t be a license issue. it’s no problem to include BSD-style licensed code with GPL code.

nothing from the current game engine could be reused though. as far as i know the current game engine also uses some blender code for animation and the python api uses mathutils. but engines like irrlicht and ogre come with their own animation and maths code anyway.

and i guess all the people who invested a lot of work into the current game engine wouldn’t be too happy that all their work was in vain.

You have to write special code anyway to hook the BGE with more Blender features like shape keys and modifiers, it’s not neccesarily a copy/paste job.

The GameKit could very well have its own code to handle Blender animation, if Ben2610 re-licensed his code to the same license as the GameKit than that code could possibly be re-used.

There was talk on re-licensing parts of the BGE code to the BSD/MIT license, if one could get Ben2610, Moguri, Campbell, Zaghaghi, and Brecht to do it with their BGE-related code Erwin’s job could be a bit easier.

I’d be willing to relicense parts I’ve contributed, but I have not contributed anything major enough. :stuck_out_tongue:

This topic was meant to discuss the benefits of Unity over Blender+BGE.

Can you please move further GameKit discussion to this GameKit topic:
http://blenderartists.org/forum/showthread.php?t=155310

Thanks,
Erwin

Hi Erwin,

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.

I have a question : in “Unity vs BGE” do you mean Unity or Unity Pro?
If you mean “Pro” also (same soft with more features?), is Unity Pro the best engine on its market (same price range) that the BGE should get inspired from?

Are there important reasons that would make the developers focus on Unity more than other game engines?
I don’t know much about other game engines, so I’m just asking.

In some ways, I kind of wish Blender would be broken apart and each part focused on the usability of the primary function (making art/animation or making a game). I’m a little unsure about the non-linear editor, god knows Linux needs a good one.
I completely agree with that. I think that the biggest issue with BGE at the moment is that it is entwined in a tangled web with all of the other Blender features. For any decently sized project, a separation of functions would have to happen before Blender could be a valid solution. The functionality of being able to drop assets from different files into a scene editor specifically designed to manipulate premade game objects needs to be clearly defined and separated from the modeling /animating functionality.

While I know very well that that will not happen, I would like to see Blender separated into a suite of separate applications based on function, with very tight integration between the separate parts (similar to Adobe CS design). While many may argue that it is convenient to be able to model, animate, and create a game all at the same time, that approach only works for small one person mini games. For any mid sized game project a separation of powers in design is more useful and could be implemented by even professional game studios. With the current design asset management becomes very messy very quickly.

Finally, even though I know that this doesn’t pertain to the topic, the non-linear editor could have potential as a great open source video editor. Video editing is also one of the parts in a media creation tool chain that does not have a competitive open source solution. I have to admit that while I use Gimp for image editing, inkscape for vector images, and of curse Blender for modeling and animation, for video editing and video compositing I have to resort to Premiere and After Effects.

I think that Blender is getting too powerful to be easily managed in its current interface, especially if game engine options are right next to rendering options.

At the moment, Blender is a Modeling Application with a Game Engine, and not a Modeling application and a Game Engine.