Welcome to the GameFromScratch.com tutorial series covering the BabylonJS HTML5 game engine. The home page of the series is available here. For each tutorial in the series there is both a text and video version available. In this post we are simply going to introduce the BabylonJS engine, the scope of this tutorial series and discuss why you might want to use the Babylon engine and also some of the alternatives available should you decide not to. If you’ve already decided on using the BabylonJS game engine, jump forward to the next tutorial.
I’m not going to go into a great deal of detail on the functionality included in BabylonJS as I have already featured this game engine in the Closer Look game engine series. Instead we are going to take a quick top level look at the engine features.
Why Choose BabylonJS
So, why is the BabylonJS game engine a good choice for you?
- Open source (Apache 2 license) and free to use
- Full featured 3D game library (scene graph, physics, particles, models, sprites, etc)
- Compatible with most modern WebGL browsers
- Excellent tooling, including level editor, Unity exporter, model converters
- Good documentation, samples and other learning materials
You can read the full feature set here.
Why Not Choose BabylonJS?
So we mentioned a number of Babylon’s strengths, but why would you *not* choose to use BabylonJS? Well, beyond the fact you may not like how they implement things the biggest reason all comes down to your priorities. WebGL performance isn’t on par with desktop OpenGL or even OpenGL ES, so there is a bit of a performance penalty at work here. While HTML5 applications can be wrapped to run as applications on various mobile devices, again there is a price to be paid, in both performance and labor.
At the end of the day, personally, I think a lot of it comes down to your primary target. If you are creating a browser game first and foremost, I recommend working in a browser native library such as BabylonJS. This has the most direct workflow, is easiest to debug, etc. If on the other hand the browser is just another target for you you are probably better off working in a game engine that also targets HTML5, such as Unreal or Unity.
Alternatives to BabylonJS
Shockingly there aren’t actually a ton of HTML5 3D game engines or frameworks like BabylonJS. The most direct alternatives are:
By no means is that an exclusive list, but it does represent some of the most common 3D engines with WebGL as their primary target.
In addition to these engines several 3D engines offer HTML5 as a target including Unreal, Unity, Godot and many more. The primary challenge with these options is the generated code is often illegible, acting almost identically to a compiled binary. So if things don’t work right you are dependent on the engine developer to fix things. Or if you wish to use a native browser feature, you are again dependent on the engine developers to support it in some form.
Enough overview, lets jump into the technical details. I am aiming to keep each tutorial somewhat short and concise, both text and video versions. Stay tuned for the first tutorial covering getting BabylonJS up and running.