Why is there no good android game engine?

Source: Internet
Author: User

With the continuous development of the Android platform, the number of Android Developers has been on the rise recently, and even the unpopular game development field has emerged a lot of new force. However, all-new questions are being raised before beginners, and many of them have never encountered problems before.

"I haven't seen a suitable engine for a long time. It seems that android is really not suitable for game development." "I have tried several game engines and I don't feel very good, low Efficiency and uncontrollable bugs "," how can no one in China build an engine like cocos2d? It seems that we have to wait for foreigners to do a good job to follow up ." This is not an imaginary talk, but the true opinions of android game developers. It should be said that, in the minds of some netizens, the game engine supporting Android is not very small, but it does not have a good game engine. Or, these netizens question is, how is there no one in the world can be like the iPhone under the Cocos2d-iPhone so easy to use and free android game engine there?

In fact, there are still many problems when using Android for game development. Currently, most android game engines provide functions, it's really not satisfactory (at least you can't drag the game out directly ......). However, how many people have really considered this problem? Why? Is it true that the android performance is not enough and the programmer level is not enough?

In fact, the issues that really affect android game engine development are far from what is apparent on the surface. To be careful, it is nothing more than a "multi-platform compatibility" issue.

Yes, on the road of android game development, performance is not a problem, compatibility is a problem, the program is not a problem, the environment is a problem, and developing a great game engine is not a problem, how to make this game engine outstanding under any circumstances is the problem.

When we develop game engines under a single mobile phone brand-for example, iPhone, as long as it is compatible with the iPhone series, it is enough, or even further, to focus on iPhone 4 alone, after all, most iPhone users today are "not afraid of hacking". Last year's favorite iPhone 3 should have been replaced by iPhone 4. It should be said that the iPhone game engine and even the game production team can devote all their energy and time to improving the efficiency and functions without worrying about the so-called platform compatibility issues.

But when you design a game engine for the Android platform and develop an android game, it may not be that simple.

We all know that OpenGL is a very efficient graphical programming interface for Linux, and the android kernel is developed based on Linux. If you want to improve the performance of game engine development based on Linux, using OpenGL ES for mobile environments will undoubtedly be the best choice. (Of course, some people use android2d for various reasons)

However, compared with the iPhone platform, the Android platform is not fixed on one or more smartphones. With the participation of many manufacturers, he owns a very complex mobile phone model while, it is also facing a very complex multi-model compatibility challenge, although the Dalvik virtual machine is powerful enough to erase most of the Environment differences. Unfortunately, we are not listed here as OpenGL ES, which ensures the performance of the mobile game engine. After all, no matter how powerful your software platform is, it cannot go beyond the barriers of hardware. Even though OpenGL has always advertised itself as independent from hardware, if the hardware does not provide adequate support for OpenGL, OpenGL still cannot be fully computed (some ancient Android models, there is even a floating point Operation barrier | ......). This means that if the Android engine is pursuing optimal efficiency, it is necessary to discard the possibility of running the engine on certain models. Otherwise, the "recipe" on some platforms will immediately become "poison" on other platforms ".

-- I know that some netizens have done Cocos2d-iPhone Android transplantation, if you can see here, about can smile?

If we don't care about it, we just want to make Android achieve the best performance on some platforms, and give up on other platforms? The cost of doing so is that you must say goodbye to users with some Android models.

"What, do you use HTC? Sorry, my program only supports Nexus One ."

"What, you actually use Motorola? Are there any mistakes? My games are customized for Samsung !"

Can you imagine that the above conversations exist in real Android programs or game development?

If you can't imagine it, it's impossible to develop the game engine without certain models. In fact, although Android programmers can have huge Android camp support, whether you are dedicated to Motorola, HTC, or Nexus One (or the legendary nexus two ), if Samsung doesn't buy it, it will cause huge losses.

What if we don't want to speed, and we just want to run the entire model? Therefore, in terms of engine design, We must minimize the dependence on OpenGL es apis by using only the parts supported by all models in order to avoid incompatible code as much as possible, even if this code can improve the program efficiency by 100%, it is no exception.

The cost of doing so is obvious, and it is bound to cause the engine speed to fail to reach the peak value in the vast majority of environments (because your program does not play a 100% role in OpenGL Performance ), that is, the "inefficiency" problem we often see is generated.

This is not the worst case. The worst case is that, your engine runs in a cell phone environment that is extremely unfriendly to OpenGL (most Android phones have certain limitations on OpenGL Performance for system stability, this restriction is actually quite common, just to varying degrees.) a user angrily tells you that your bad game cannot even run at 10 FPS, however, you can only watch several machines in your hands with a high performance of over 50 FPS.

In addition to the difficulties encountered by jme-Android and Rokon, I am afraid it is always difficult to break away from Android's beloved and hateful OpenGL function.

Why? Is there a problem with Google's design? In fact, the crux of this problem is not the design of software or hardware, but the android System Authorization Policy is infinitely similar to that of the white mail system.

Google's "quantitative easing" android marketing strategy can quickly occupy the market and establish the dominant position of Android smartphones; however, it will inevitably lead to too many branch platforms, paying for the cost that Android mobile phone manufacturers are easy to move closer to the low-end and Middle-end user groups (System Authorization is almost zero cost, resulting in medium-income to meet high-profit demand); and the consumption ability of low-end and Middle-end users, in turn, this restricts the cost and price of mobile phones for mobile phone manufacturers. Under the influence of this strange circle, which is similar to the "wolobo cycle", we want to create a model that can play the OpenGL ES performance by 100%, it is also compatible with all android models and rarely or never has a "bug" game engine. It is almost as difficult as winning the World Cup championship for the Chinese team-at least it has not been seen in the last year. Because the board with the lowest position will definitely decide the fate of the Board with the highest position. The tragedy of the short board effect has almost inevitably become a hindrance to android game engine development.

However, what if Google takes down this "blocking tiger", that is, it changes the android Authorization Policy and forces the vendor to move towards the high-end server? At this moment, if we do that, it is very likely that the sudden rise of production costs will lead to the android camp crash, so that the thriving android can't have both sides ", this is probably the case.

Is there any way for us to completely solve this compatibility problem? Is it true that we can only get rid of this compatibility dilemma? The answer is actually yes, and it is very simple-wait.

That's right. In this situation, even if you are not happy, even if you are not satisfied with the current situation of the android game engine, even if you scream: "compatibility is the most annoying! ". Please be patient and wait until the wooden boards around Android are growing and the anroid game engine is gradually improved, although the results of "Perfect compatibility of various models" may not necessarily appear, but with the continuous development of Android software and hardware, "almost perfect compatibility of various models", after all, we are getting closer and closer.

We all know that in the old story, the person who says "I knew that the seventh pie was enough, so I shouldn't have eaten the first six cakes" is a dumb, but those guys who say "they haven't got enough to eat a piece of cake, and they don't have to eat the next six.

After all, some things are not in a rush, but in a rush.

------------------

With a mention, slick this Java game engine is coming out of the Android version recently, a while ago I saw the author in http://www.javagaming.org
After testing the compatibility, I reversed the APK and found that the original module has been basically transplanted. It should not wait too long for the official appearance. In my opinion, the performance and ease of use of this engine are definitely far above Rokon. Everyone is interested in his progress, can be urged better, younger brother would like to see his complete code (^_^): http://slick.cokeandcode.com

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.