📜 ⬆️ ⬇️

Half a year working with Blend4Web. Is it worth it?



In August of last year, I noticed an interesting WebGL engine for developing my browser projects. I was bribed by its tight integration with Blender and the Russian development team. And just recently a peculiar report on the past year and plans for the future appeared on the official website. I thought, why not speak out on this topic, but from the point of view of my experience and time of working with this framework. On Habré there are already quite a few tutorials written by me about Blend4Web. Among other things, I talked about current problems. Now I want to summarize the accumulated positive and negative evaluations into something whole. Please note that this is only a personal opinion.

I was often asked the question: “Why Blend4Web?”. At the time, there was a problem with Unity WebGL, which practically did not exist. I was forced to look for something else. Blender is my workhorse. Models for games, compositing for TV (where I work), 3D video on order and all this was done only in Blender. In addition, I paid great attention to the popularization of this wonderful editor. In general, with Blender very much binds me. It is no wonder that accidentally read article on Habré about Blend4Web interested me and I decided to try.

Blend4Web is an interesting framework with its positive and negative sides. On the one hand, active development, monthly releases, developers' attention to users, on the other hand - lack of examples in the API documentation, frequent replacement of current functions, constant re-adjustment of settings in Blender, licensing. But about everything, as they say, in order.
')
The strongest side of the framework is the close relationship with Blender. And it is very convenient. Modeling, setting up the scene and physics - everything is done in the editor. Yes, I know that many successfully work with clean engines that do not have a normal scene editor, but I do not belong to this. Probably, the long use of Unity left an imprint on my opinion on how the game development framework should be - first of all, convenient to use.

And indeed, all the work happens in Blender. And this is not limited to a simple installation of objects on the scene. The developers of Blend4Web have implemented a bunch of their functions on the editor panels. They complement the standard options. For example, setting up the material happens in the usual way and is no different from what you would if you just worked in Blender (by the way, this is a strong side of the engine, almost any model created in Blender can be used without any problems in Blend4Web). But here, if you take a closer look at the materials panel, you can see additional windows: Terrain Dynamic Grass, Water, Collision, and some others.



This is an example of the implemented b4w options. The developers of the engine are trying to use the standard Blender settings to the maximum, and those that are not applicable for realtime just hide. Therefore, knowing the problems with the construction of the scene from a knowledgeable Blender will not arise.

Another major, but ambiguous feature of Blend4Web is blanks. The developers have added a lot of global features straight to the editor. I do not mean the post-effects, various lighting effects, environment settings - all this is there and activated by several checkboxes in the corresponding options, the conversation is about something else. For example, there is a Wind Blending panel. This is an amazing thing, allowing you to create realistic animation of trees, grass under the influence of the wind. And it is logically complete. But there are those that are in doubt, for example, Character. In fact, these are the physical settings of the behavior of a humanoid character: walking speed, jumping strength, running and ... Waterline. I guess what the last option is for, but others are needed, so why is Waterline?

I understand that "casket just opens." Developers implement only those functions that they need to solve current problems. The same Character, most likely appeared due to the game “The Tale of Pyatigor” being developed in the depths of the company. Of course, this preparation is very useful for a human character, but it is not suitable for a fish character. I spoke with one of the Blend4Web programmers on this topic and received a logical answer: “We did not expect this use of the Character preset”. And if not a fish, but a bird, or a spaceship, or a centipede robot?

In the article “ Development Goals for 2016 ” on the official website, there is a point (hereinafter quotations are italicized): “ ... it is planned to be able to set the parameters of the characters and NPC directly in Blender, without the need to write code ”. I understand that the existing Character will be greatly expanded and this is good. But it may be worth it for developers to collect data, what is needed by end users in such blanks, by polling on the forum or by raising a special topic. Of course, there will be a lot of slag, as well as some useful comments.

By the way, what is important is that the developers of Blend4Web really have high-quality support from their users. And it does not depend on the type of license. Practically every question on the forum receives an intelligible answer from specialists and often they prepare a test project with a solution to the problem. This is a rarity in our thoroughly adventurous world. Such responsiveness, plus also in Russian is expensive.

There is one more positive quality - quick reaction of developers to errors and required features. I already noticed that the creators of Blend4Web also read my articles on Habré. In one of them, I complained about the inconvenient function of turning off and turning on an object in the scene. Before that, she reacted only to one object, and if he had a hierarchy, then she had to go through the entire chain in a loop and disconnect them separately. An amazing thing, literally in the nearest release, the developers improved the Show function and now it can manage the entire hierarchy as a whole. Similar examples abound. In one of the forum threads, we talked about the necessary Transform node (moving, rotating and scaling an object without writing code). In the current release (Jan 16) this node is already there.

All this is due not only to the responsiveness of the developers, but also to the company's unique release plans. Every month - a new build. Is it good or bad?

In general, the question is not unambiguous. We are all accustomed to the measured appearance of various game engine releases. Once a quarter, half a year or even a year, but not as monthly. On the one hand, the experience gained is stalled. You used to see this option in this panel, and she jumped and appeared in another. Or, the API function used is suddenly deprecated. To the credit of the developers, they try to minimize possible problems. So the engine in the console will warn about the use of deprecated-functions, and they will be physically removed only after a few months. On the other hand, there is a rapid development of the framework. Users get what they need literally in the next release.

Such a system of publishing builds was first alarming. Frankly enraged by the transfer of projects from the old version of the SDK to the new. This is quite a time-consuming operation, since the project files are scattered in different folders (such are the SDK requirements). There was a very real chance to forget to copy something. However, in one of the autumn releases, a web manager appeared who not only solved this problem when updating the engine, but also added many convenient functions in project management.

So the policy of frequent releases has its undoubted advantages in the form of the speed of introducing new functions and closing errors, but you need to exercise some caution and test the project after the update.

The sore question of Blend4Web is licensing. We are all used to the fact that popular game engines have become free, and their developers earn on maintenance and cloud solutions. In our time, it seems strange the separation of licenses for Free and Pro. But again, everything is ambiguous.

If we recall the licensing policies of game engine developers of past years, then the most popular were two approaches: Free / Pro, where the free version was greatly reduced compared to the paid version and the royalty model. Then the unimaginable happened - the main players in this field, Unity and UE suddenly became completely free. It is clear that the developers also want to eat, so the calculation was on the mass and income on the associated options. So for Unity there was a subscription to the Professional Edition with its buns, as well as a lot of services. But in general, you can download the free version and create a full game. Although in the future most likely you will have to pay money for a subscription, because over time the appetite only increases with work. You always want great amenities or freedoms.

With Blend4Web, everything is simpler and more complex at the same time. There is a clear Open Source license that allows you to develop non-commercial or commercial applications, but with the opening source. Actually, Blend4Web is positioned as an Open Source solution, which means that the engine code is also available in free. This is a significant plus, because you can quickly correct the necessary part of the code to fit your needs. On the other hand, for commercial projects it is somehow not customary to disclose its source code, including the Blender files. The developers have left one indulgence for those who would like to use the free version of the engine, but do not want to disclose the source code. The official website clearly states : “ In the case of playback of exported files by the standard web player Blend4Web ..., it is not necessary to distribute the source files of the scenes under the GPL. "

Output? But not really. The Blend4Web player is a complete software solution and is more oriented to show simple presentations. Create a game based on it will be very problematic.

Now look at the commercial license. For her require 36,000 rubles. When you buy it, you are free to do anything you want, including closing your source code. Plus there is an additional set of demo tutorials and technical support.

On the one hand, the amount is decent, on the other hand, it is a one-time amount. In addition, now with the ruble going damn-what. And one and a half thousand green licenses of the same Unity Pro will now result in almost 120,000 rubles. The developers of Blend4Web are based in Russia and tied to the domestic currency - this is a serious argument. Personally, I am concerned about the political situation and the possible consequences. Maybe I'm a paranoiac, but I'm already thinking about transferring my server from abroad to my native penates (and it becomes expensive to pay in dollars in terms of rubles).

And now about the main question that most certainly interests many: “How ready is Blend4Web for game development?”.

Now I have two projects in my work using Blend4Web: two-dimensional space and three-dimensional arcade. There are difficulties, both in the first case and in the second. I am not a programming guru and I studied everything on my own, but I started, like many with BASIC and assembler for the ZX Spectrum. Therefore, I will miss my attempts when studying the features of JavaScript - there is nothing interesting in them. To make it clearer, I summarize the pros and cons of creating games in separate lists.

Advantages of the game:

Cons of game development:


Again, keep in mind that all this is applied to individual projects and is based on my personal opinion.

At the beginning of my article, I mentioned the publication of plans for 2016 on the official website of developers. Among other things, there are several interesting points: the development of a library of materials, a significant adjustment to the documentation about the API, and, of course, new functions. However, the statement sounds much more interesting: “ We intend to substantially revise our policy in terms of interaction with the audience ... to take part in a large number of conferences and exhibitions, as well as to organize our own ... ”. This shows that the guys decided to get out of the shadows and seriously engage in promoting Blend4Web to the masses and the development of the engine will go even faster.

Source: https://habr.com/ru/post/276147/


All Articles