Jump to content

Functions: Babylon vs Unity


Recommended Posts

Hi everybody,

i want to know what Babylon can do what Unity can't do and vice versa. This is not about which tool is better like "babylon is for web-development and using less ressources and unity is programmed with C#", but more about the functionality of the tools. Are there special functions that can be mentioned?
For example: Unity has the function NavMeshObstacle for objects to avoid by AI agents. Does Babylon has a similar function?

I ask this with the background thoughts of a multi-agent system which should be built, which I already mentioned in a thread:
As part of my work, I'd like to compare the capabilities of these tools through their API (Babylon: https://doc.babylonjs.com/api/ Unity: https://docs.unity3d.com/530/Documentation/ScriptReference/index.html ) (the only way I can think of to compare functions) and, of course, I don't want anyone else to do my work, but I thought if anyone already had the knowledge, I could use this approach.

I hope this kind of question fits in this forum.
Thanks in advance.

Link to comment
Share on other sites

  • 2 weeks later...

I'm about to compare them and can now list some of them:

AvatarBuilder - This class allows you to create custom avatars for your animated characters entirely via script, in a similar way to what goes on behind the scenes in the Unity Editor when you create an avatar from the model import inspector.

BillboardAsset - Billboards are a level-of-detail (LOD) method of drawing complicated 3D objects in a simpler manner if they are further away. Because the object is further away, there is often less requirement to draw the object at full detail due to its size on-screen and low likelihood of being a focal point in the Camera view.

CharacterController - A CharacterController allows you to easily do movement constrained by collisions without having to deal with a rigidbody. A CharacterController is not affected by forces and will only move when you call the Move funtion. It will then carry out the movement but be constrained by collisions.

NavMeshObstacle - A NavMeshObstacle is cylindrical in shape and can move around the surface of the NavMesh with a specified velocity. By default, the obstacle will only affect the agent's avoidance behaviour rather than the pathfinding. This means that the agent will ignore the obstacle when plotting a path but will sidestep around it while moving along the path.

UnityEngine.Networking - it generally contains classes for network connections, player connections, player communication, matchmaking etc.

QualitySettings - There can be an arbitrary number of quality settings. The details of each are set up in the project's Quality Settings. At run time, the current quality level can be changed using this class.

SystemInfo - Use this class to figure out capabilities of the underlying platform and hardware. For example, you can check which RenderTexture formats are supported (SupportsRenderTextureFormat), how many CPU threads are available (processorCount), and so on.

or some functions to make a scene more realistic:
Cloth - The Cloth class provides an interface to cloth simulation physics.
WindZone - Wind Zones add realism to the trees you create by making them wave their branches and leaves as if blown by the wind.


I think this is engough to read for now. I chose these functions, because i couldn't find the corresponding counterparts in babylon.
It seems Unity has more functions for AI and gaming.

Is there a date or at least a year where babylon was published?

Link to comment
Share on other sites

The ones we can do out of the box:

BillboardAsset : We support LOD and billboard mode so this is doable

QualitySettings http://doc.babylonjs.com/how_to/how_to_use_sceneoptimizer



We are not doing AI or network, this is not the goal of Babylon.js.

Cloth and Windzone could probably be done with our physics engine: http://doc.babylonjs.com/how_to/using_advanced_physics_features#cloth-simulation / http://doc.babylonjs.com/how_to/using_the_physics_engine#further-functionality-of-the-impostor-class


For character management, we have some features: http://doc.babylonjs.com/how_to/how_to_use_bones_and_skeletons


But the goal is not to compare to Unity, we are on a different scale :)



Link to comment
Share on other sites

Thank you very much for your help!

The keyword was 'LOD', so i think the counterpart for BillboardAsset is MeshLODLevel?


But the goal is not to compare to Unity, we are on a different scale :)

Well, to compare them is MY goal! :D


We are not doing AI or network, this is not the goal of Babylon.js.

Babylon has at least a pathfinder for AI, if i remember correctly. I think it was NavigationMesh.

Where exactly is the difference between Babylon and Unity? I always read that Babylon was meant for creating 3D games and so is unity.

I have also seen that Babylon's first commit was on June 27, 2013. I guess I can take that as release date.


Link to comment
Share on other sites

We do not have a Unity editor:) that is the main difference:) 

Navigation Mesh is an extension (ie. Maintained by the community) and you should check all the hard work done by @MackeyK24 here:http://doc.babylonjs.com/resources/intro

The main difference is also that Babylon.js is a community open source project, entirely free, built by passionate people. Unity is a commercial product :) so obviously Unity will have more features 

Link to comment
Share on other sites

Although I have marked the thread as solved, I still have one last question regarding the statement that babylon is on a different scale.
You mentioned that network and AI is not the goal of Babylon.
What is the goal of Babylon, if there is any? (If that is something that can be described as development is community based)

Link to comment
Share on other sites

We basically deal with rendering and sounds (WebGL/WebVR/WebXR/WebAudio)

If you want to provide extensions that deal with Network or AI, we will obviously welcome them on our extensions repo.

If you look at physics for instance, we support it through plugins, we are not doing the physics per se. So AI or network could be introduced this way if we wanted to

Link to comment
Share on other sites

The unity editor has a good solution for setting up navigation, editing meshes, and building worlds. Like Nodragem said, theres and editor for babylon, in which you can add particle systems, create and edit animations, and manage sounds. Currently, there are no features in the babylon editor to setup navigation, build an avatar, or build a world. I haven't used the editor; not really sure how.  

Because babylon is opensource,  anyone can extend the functionalities offered.  Here are some projects that inspire me.

SataGuru's  Character Controller

Samuel's EnergyJS  

Mackey's  Babylon Tool Kit 

Sergey's Power Planner

For better or worse, Unity has some well defined ways of implementing game features. Babylon does not. Unity encourages developers to use the Entity-Component-System pattern to develop your game. You will find zero ECS implementations for babylon (except this one(shamless plug))





Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...