Jump to content

Building a Diablo type game - should I go for Babylon.js or Three.js?


tr00n
 Share

Recommended Posts

Hi guys,

Sorry if this has already been answered elsewhere but here goes :)

 

I'm in the early stages of building a game that is similar to Diablo (dungeon crawler, 3d characters etc.) in structure. I've been doing this in Three.js because it was the first framework that I came across. Then last night I found Babylon.js and it would seem that it is a strong alternative. Before I get too deep into development I would like your feedback on whether I should do the change to Babylon.

 

My requirements are as follows:

  • Animated 3D characters - I should be able to add multiple characters into the scene (both the main character but also NPC's/creatures) that have individual animations. Being able to blend between animations is a must. 
  • Overall gameplay is control the character by clicking and then having the character go to that location or using the character with WASD
  • 3D procedural landscapes which is to be explored 
  • Collision detection between bounding boxes of the character and the environment

The above is a little ambitious but I'm trying to get down what I'd like the game to like. It would probably be easier in Unity but I would like for it to run natively in a WebGL browser.

 

Any input is appreciated :)

 

Link to comment
Share on other sites

I am not really qualified enough to help you make a decision on that, but I started my last game-making-attempt with three.js, too and then switched to babylon because alot of things are just easier here. Most of your requirements are probably not that hard to do in babylon. Another (very important reason) for switching might be the community, you always find help here if you get stuck with a problem. And that's really freaking awesome!!

 

BTW: Here is how far I got the last time when playing around with something like that: http://p215008.mittwaldserver.info/moveWithCollisions/ (might need a lot of fixing tho)

 

I thought we had a playground showing the same things (including WASD movement) but I can't find a working version of it anymore :(

 

  • "3D procedural landscapes which is to be explored" - Do you mean something like a dungeon generator or more like "outdoors" - generating mountains and trees and that kind of stuff?
Link to comment
Share on other sites

Hello, 

 

You can do all your requirements with Babylon, and in my mind it would be easier to do it with Babylon than Three.js.

If you compare the two framework, you will see Babylon is easier to manipulate in order to make a game.

 

You will find all answers you need in the forum, the community is very reactive. For tutorial, you might want to check the documentation, my website and the github of several members here.

 

Good luck :)

Link to comment
Share on other sites

I would like your feedback on whether I should do the change to Babylon.

 

 

To this question I will answer simply YES. I've tested to make a play with ThreeJS and I never was also far with BabylonJS and is much more modern and clean and less bug that ThreeJS and to adapt also more because Babylon is to specialize “Games”
Link to comment
Share on other sites

Hi guys,

Thanks a lot for your answers. Sure does look like an active community. I think that alone has me convinced me to switch to Babylon.js :)

I will have a look at material that you've linked to. 

Thanks again.

 

Br,

 

Link to comment
Share on other sites

I have worked on both three.js and Babylon. Although both for non-game application. Did financial data visualization using three.js and doing kind of home interior related application using Babylon. I am not pro. I did just basic coding. But I can tell you from what I know, Babylon is best thing to do 3D natively in web. And I think from game point of view Babylon is much better than threejs. Threejs is still lower level framework while Babylon provides more feature out-of-box . The syntax is earlier and more readable in Babylon. And you must have realized by now that Babylon community is very active.  

Link to comment
Share on other sites

  • 1 month later...

I was also looking to create a 'game' (well, a 3d first-person sorta thing) and started with three.js but found that, as has been mentioned, it is too low level and requires handling all sorts of other libraries just to get started on such a project.

Babylon has most everything required built-in, and the activity of the community (especially the in-depth discussion on these forums) just put it over the top!
 

@tr00n: just one suggestion would be to make your models in a 3d modeling software such as Blender, and then import them. Even with animations this is extremely easy with Babylon and cuts down on a lot of overhead.

Link to comment
Share on other sites

Nothing I have implemented yet sorry! Still in the process of creating assets. I only decided to 'create a game' a couple of weeks ago... 'It shouldn't take long' I told myself :rolleyes:

However one fantastic general place to start is Amit’s Game Programming Information.

 

And there are many maze generation algorithms on Jamis Buck's site (source on github, which you will have to compile from coffeescript unfortunately).

Link to comment
Share on other sites

Hi tr00n, and welcome here!

First, you can also read this post : http://www.html5gamedevs.com/topic/14096-should-i-actually-use-babylon/

And for the points you're asking for, here are some resources to study:

 

Animated 3D characters:

http://www.babylonjs.com/simd.html

http://www.visualiser.fr/Babylon/character/default.htm

 

Overall gameplay:

http://playground.babylonjs.com/21YRPA

http://playground.babylonjs.com/#1NQTNE#11  (doesn't work in Firefox, not Babylon fault)

 

3D procedural landscapes:

http://playground.babylonjs.com/?21

(and many other posts in that forum, where people do more advanced terrain generation and procedural stuffs)

 

Collision detection:

http://blog.raananweber.com/2015/05/26/collisions-using-workers-for-babylonjs/

http://www.visualiser.fr/Babylon/Crowd/

 

And every demo on the BJS webpage : http://www.babylonjs.com

Have fun!!!

Link to comment
Share on other sites

On the recomendation of collegues at Lockheed Martin, we began doing all of our WebGL work in Three.js.  However, I discovered the hard way that Three.js is nowhere near as flexible as Babylon.js - especially in working with cameras and controllers - which are essential in a game, of course.  I spent countless hours with little progress until I switched to BabylonJS - and was able to develop many times faster with quantifiable results.  I doubt I would have finished my first project in ThreeJS - seriously.  It used to have tools that BabylonJS was lacking, but that was long ago.  Now the process is much faster to develop in BJS, and BJS has all the tools available in ThreeJS now - and advancing much faster than ThreeJS.  And the community of users in the Babylon world are far more active in developing tools and extensions for BJS, as ThreeJS has almost come to a crawl in advancing new tools.

 

The bottom line is that BJS was and is developed by gamers for gamers - but it is far more powerful than game development tools.  I can say from experience that there is no question that developing games is far more advanced and flexible in BabylonJS.  Please save yourself the trials that many of us had to go through in discovering Babylon, as ThreeJS is becoming a bit of a legacy framework, whereas BabylonJS is growing faster than any other framework at this time.

 

Now don't tear up DK.  :mellow:

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.

Guest
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.

Loading...
 Share

  • Recently Browsing   0 members

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