I downloaded the source code and compiled environment of unreal 4 in the last two days and tried it a little. Without in-depth research, I ran a few samples, looked at the editor environment, and did not even read the C ++ code. Therefore, it is not qualified to fully discuss the world's most advanced game engine. However, I do not intend to continue my in-depth research, so I would like to express my feelings.
Although you are familiar with unity, you still feel powerless when you really get started with unreal 4. When you use unity alone, you may feel a lot of pitfalls, but with ue4, you may feel that unity is very clean and streamlined in terms of both the Editor interface and code framework design. To some extent, unity is easy to get started and easy to get started, not just a gimmick.
There are many options for the editor of unreal 4, and there are also various functions that you can understand and cannot understand in the menu. It is a bit like using 3dmax, familiar and unfamiliar. It takes a month or two to get started. Of course, it would be faster to get started if you have been familiar with udk or experienced in developing unreal engines. However, it is more difficult than unity in any case.
I plan to develop an arpg by myself in my spare time (not too much time in the short term), with the goal of the torch light mobile game version. Therefore, the engine selection standards are 3D, cool, mobile games, and convenient development. After trying ue4, I felt that ue4 could not hold on without any effort. However, when unity5 is very easy to use, unless I am interested in it, it is not necessary to make efforts to deal with ue4.
My personal feelings are as follows:
1. All source code is available in Unreal 4. You can get the latest code at any time for $19 a month. You can also download the latest code and compiled environment online. Open source code, which should be very attractive to technical programmers. Because everyone has this idea and the code is open, I can modify the bug and expand the function at will if I have a problem. However, after using unity, we feel that if the design is very beautiful, We can freely expand the engine functions even if the source code is not open. Although there are some parts that cannot be expanded or modified (that is, some unpleasant enemies), this is not something that can be changed at will, because many things are moving around, as a result, you can modify some plug-in content. While unity does not have open code. I don't know why some people think that we will encounter an indefinite problem if we don't open the code, but everything can be done after opening the code. It seems that the ue4 open code is more like a gimmick, or a remedy for your own design.
2. blueprint
This is very powerful. Simply put, you can make a game without writing a line of code. There are many similar plug-ins in unity, the most famous of which is playmaker. Although I really appreciate these tools, people who are planning or not very good at programming can make a beautiful game. However, I am not used to this, just as I am not used to the state machine editor in mecanim. I feel that it is more convenient to maintain the State using code and configuration, in many cases, it is more intelligent. In addition, when the project is complex, it is easy to use these visualization tools. Of course, if they can be used correctly, it will be very helpful for the project. For example, when a level is designed, some functions are provided for planning and configuration, which is equivalent to a visual and more powerful level event editor.
3. Workflow
The most important function of the engine is to define the workflow. Code can be explored by yourself, and functions can be practiced by yourself, but the correct workflow must be learned by the team. Because unity is relatively simple, you can explore it on your own. But what is the ue4 workflow and how to make full use of the real power of the most advanced engine, you need to study and explore it. If you just use it like ogre, it will seem lame. If you cannot really exert the power of the engine, it would be a waste of advanced engines.
4. Rendering effects of the Next Generation
The next generation has been evolving. For example, ue4 uses GPU particles to render millions of particles (normally, thousands of particles on the same screen will slow down ), you can use surfaces and physical light to achieve more realistic rendering effects. However, my demand is a mobile game arpg. What I want to show is a cool feeling. Is it true that it is beyond my consideration. As for GPU particles, it is not necessary to say that mobile phone graphics cards won't be supported in a few years. Therefore, many advanced features are useless and cannot be used. I am skeptical about the Global Illumination in unity5. I don't know if lightingmap is actually no longer needed. I don't know the performance and compatibility on the mobile phone. Therefore, in terms of rendering technology alone, ue4 does not have a real advantage. Many U3 games are very dazzling, but they also need to be powerful.
5. c ++ code
Basically, ue4 development is a combination of C ++ code and blue print. Although it is easy to embed Lua or another script language, it is estimated that there will be no special benefit. Although I am used to writing C ++, I don't feel a lot of pitfalls. However, it is a little more difficult than C. It is a wise choice for unity to use C #. On the one hand, it solves the developer's problem by using C #, on the other hand, it achieves cross-platform implementation by using mono, while ensuring efficiency. As for the game running efficiency, if the C # code can become a performance bottleneck, then I feel that C ++ will not be better. In this case, we should optimize the client code instead of complaining about the language efficiency.
6. Code hot loading, namely writing and compiling
With llvm, You can implement real-time compilation, while unity can implement hot loading during the running of dynamic libraries. Therefore, you can modify and change the running results to view the results.
7. I don't know how to solve many practical functions.
For example, when using unity, I already know how to add the collision box, how to set the physics, how to handle the animation, how to design the skill system, how to do the UI, and how to edit the light effect. In ue4, we need to learn more about these topics. There are not many ue4 document tutorials, and we often cannot find specific functions to implement them. It may be better to wait for ue4 to develop. However, udk has not improved after so many years of development. I am worried about the change in ue4. Unity has been highly praised by gaming companies and independent developers. In the past one or two years, there have been so many excellent Games produced by unity that sell well and sell seats. However, this advantage cannot be remedied by opening a source code. The entire ecological chain cannot be built for less than a year or two. Unless it can put down its body to learn unity, it is not illusory.
8. No Embedded performance analysis tools found
The profiler function provided by unity is powerful and easy to use. This does not mean that an Intel GPA can be used as an alternative. Unlike unity, the runtime can directly view the current performance parameters. I don't know how to evaluate the performance of the game. This is actually very important. At the same time, because there are almost no successful games of ue4 (not many of ue3), the running performance, fever, and compatibility cannot be guaranteed.
In fact, it is not only a performance analysis tool, but also something like a GUI editor. Not to mention the plug-in store and other peripheral facilities, even the editor and engine core features ue4 also have a lot to go.
The conclusion is: you can play with ue4 out of interest, but unless you are a professional engine developer or have real project needs, otherwise, you will not be able to use the project or learn anything.
What do you think about the unreal 4 engine?