内容摘要: Java Game Development Status and TrendThese years due to the continuous development of Java technology, Java programs run speed has been...
Java Game Development Status and Trend
These years due to the continuous development of Java technology, Java programs run speed has been significantly improved, while also continue to progress in hardware technology, which makes treatment more complex Java 3D graphics possible. Appears Lwjgl, Jogl, Java3D and other technologies, so you can easily use Java language is now increasingly powerful graphics hardware acceleration. In fact there are already many Java-based 2D and 3D games, many of whom are massively multiplayer online games. The above are just a small part of the Java games. However, even if there are many other Java-based games, relative to the entire gaming industry is concerned, Java gaming community is still very small, so that its strength in areas outside of mobile games can be almost negligible. But in fact Java as a programming language and platform games, or these years has made considerable development in the era after the applet walked the road to recovery.
Of course, Java can do games, does not mean that Java suitable for playing games, then:
Java for a game of significance
1. Java is an after full development has been very mature language
Java language dominate the enterprise applications for so many years, it has proved very suitable for large-scale software development. When the Java run time efficiency is no longer a problem, Java language rigorous, high abstraction, readable advantage is manifested. This increasingly large scale game software, with no small temptation.
2. Java as a platform, which greatly facilitates the use of the game script
For game developers, because the case involves more complex (and sometimes even aesthetic issues), development process many times is a constant process of revision, you can easily modify the game content is critical. For something a lot of game engines have their own written script interpreter, to explain some custom game scripting language (usually command-style script, such as moveplayer (int x, int y), playersmile () like ), while others provide, for example, and the like lua scripting language to access rubby game engine. Due to its characteristics of a virtual machine, Java itself can be used to write the game script, for example, currently beanshell, groovy and other scripting languages can be easily and seamlessly interact with Java language, which are greatly facilitate the Java game programming.
3. Cross-platform
Cross-platform, Java and time whenever compare other languages, always talking about cross-platform. However, Java gaming, write once, run everywhere, it sounds more like a joke. This joke how cold it? (I am not familiar mobile phone games, but does someone with "painful" to describe developed to run on different mobile phone Java game game) for most other Java games, or to deploy or through Java web start applet by two without exception, to be used in the way the browser. For Java web start, the problem is relatively small, the programmer must deal with the main problem is how to make non-professional users to successfully install the JRE version specified the problem, although a lot of trouble, but it can be solved. For the applet, the problem becomes more complex, many problems only when a specific browser to appear in a particular operating system coupled with even the same brand of browser, different browser versions will also appear different problems, while there is also the client default is to use opengl pipeline or directdraw pipeline problems. And we have not even begun to discuss the game when the 3d graphics API underlying need to use the time, whether it is or web start applet used once in any program opengl the Java binding, the client is different and the same graphics graphics cards will bring the different drivers of different problems, and these problems are as different operating systems and browsers and different operating system a few × browser several (web start does not need to consider browser) × × per card number the average of several graphics driver version = nightmare. Finally, you have to compromise on such a reality ----- even computer hardware to meet the requirements of the program, you cannot make your application run in every stage of these computers, unless your users are professionals.
Of course, in fact, the status quo does not sound so bad, do not use Java for most games, there is only run on a platform of many games directx or opengl version is required, not to mention those running in the home game consoles on the cross-platform is a major problem throughout the games industry, Java is just like everyone else does not solve this problem out of it, but still doing better than other techniques. However, it is worth mentioning that in those not directly using hardware-accelerated web games, Java is indeed in the stability and ease of installation on the lost flash; in the console aspect, Java is 0, and Microsoft's XNA
(C#) across Xbox360 and Vista.
4. Network
Java has always been strong in terms of problem-solving network, in this regard, Java has two main advantages, first is based on the applet and the Java web start of the game is very easy to update, not like other games that require users to manually download the new version; the first Second, Java is relatively friendly and interactive network API, and for large-scale online games, the distributed system is very important, this is the JCP giants like, probably because this is a good opportunity to sell hardware, Sun under a lot of effort to develop the project dark star online game server to do, since the project has yet to 1.0, so now it is difficult to say specifically good or bad.
5. Speed
This is nothing to discuss, Java-based pay huge games would surely be well-written C ++ program slowly, of course, to write a good C ++ program takes also Java cannot compare.
The main technical Java games
1. Java3D
The company introduced earlier as a Sun 3d technology, is a highly encapsulated API, opengl and built on direct3d, arguably the most famous of the 3d Java technology. For various reasons (API design for users is not clear), Java3d has no way to popular, recent Java3d team announced the suspension of the development of new features for Java3d favor of 3d rendering engine for the Java FX development. While another project project Sun's wonderland announced it is rendering engine from the Java3d into JMonkeyEngine. It is sad that once again into the Sun's Java3d dusty state, a large number of programs and tutorials based Java3d are facing a very awkward position; good news is finally in this area better than the Sun appeared in the team. Others cited the evaluation of the matter: Java3D is dead Long live Java "3D"!!
2. Lwjgl
Full name is light weight Java game library. As an unofficial Java games on a comprehensive solution, lwjgl the game graphics (opengl), audio (openal), a control input is set to become directx Java community (not direct3d) efforts. Which uses a Java binding on opengl graphics, its function and c language version of the same, so for programmers accustomed to opengl programming more friendly. There are a large number of Java games and game engine is based on lwjgl, it can be said that Java gaming community is one of the most widely used by the library.
3. Jogl
Jogl is a Java binding on opengl, opengl or a Java implementation of the interface, which is supported by the Sun. The syntax is exactly the same as opengl, API also keep up with the updated version of opengl, but most of Nehe's opengl example programs have jogl version. Last year jogl formal review by jcp become jsr231, is the main competitor of lwjgl. It is worth mentioning that the project leader Ken Russell had jogl declaration does not want to become part of the JRE jogl, because he thought this would jogl update cycle and the same JRE, so that it becomes too slow. Ken Russell is currently operating at full capacity in the new Java plug-in development, while the API opengl did not change, so now jogl version will last for a long period of time.
4. Joal
Java for openal of a binding solution is a Java sound.
5. Jinput
Java for non-standard input devices (gamepads, joysticks) solutions.
6. JMonkeyEngine
JMonkeyEngine is an open-source Java game engine, the underlying height package, after 4 years of development, in October last year has finally released the 1.0 version. Posted in Java 2007 conference on quite shocking demonstration video so broad interest, it said that many screen effects are also the venue by its completion. At the bottom, JMonkeyEngine adopted lwjgl, while jogl may be supported in version 2.0. Last year, the famous online game company NC Soft (developers Paradise Series, Guild Wars, City of Heroes, Tabula Rasa and other game) will JMonkeyEngine three major developers move into the arm, perhaps in the near future we can see the engine commercial version. It is worth mentioning that, after serving NC Soft, the main developer of the engine now claimed to have more time for open source version of game engine development, and the current speed of development JMonkeyEngine indeed significantly improved 2.0 edition possible 2008 will be released later for some time. In addition, the development project wonderland by the Sun will make its rendering engine, recently announced by the Java3d into JMonkeyEngine, so JMonkeyEngine further attracted widespread attention.
7. Project Dark Star
Currently Project Dark Star to version 0.95, is designed for applications Sun online game aspect of the development. This project focuses on solving large-scale distributed application of game servers, personal feeling is similar to network game applications j2ee. For general game network transmission, Project Dark Star also gives his own solution. But many people think that Dark Star game does not try to simplify common network applications, because the project is mainly on large-scale distributed applications online game servers to resolve, so as to promote sales of Sun own production servers. Of course, I did not really used or studied it, just hearsay, it is likely to have errors.
8. Project Wonderland
Sun developed a 3d virtual world building tools, Sun using the project created a virtual working environment MPK20, physically in different continents, people can work together in this virtual world in a room, this project demonstrates a very good video , it is recommended to look at the home page.
Future:
Java games for now there has been no significant upward trend, in addition to mobile phones outside the game, Java game basically in a dormant state. Java game may usher in the next several opportunities:
1. Java SE 6 Update N (before called "Consumer JRE") issued
In this new version, Sun claims to it will make Java upgrade is more convenient to deploy more simple (easy to detect client Java version, and install the program requires version), users will be able to install only JRE part they need for being less than the part can wait and use the time to install, while accelerating the speed of Java virtual machine starts (actually just opened in the machine when the computer start Java virtual machine, rather than in the first run when the Java program) , increase swing hardware acceleration support. The new Java plug-in applet will greatly enhance the stability, reliability, will allow the applet to change the size of memory they can use, choose which specific version of JRE execution.
In fact become stable once the Applet, Java will reflect the face of Flash huge performance advantage, so Java SE 6 Update N release will be the biggest opportunity within Java game industry for some time.
2. Java FX release
Java FX's goal is to make Java FX like Flash as easy to develop, if the project really successful, the Java game impact will be very great (but due to lack of a convenient development tool Flash have, I Java FX successful the possibility of doubt it)
3. Sony or Nintendo decided to support Java in the home console
The hope is very slim, but do take into account Microsoft's XNA platform for cross windows and Xbox360, maybe Sony PS3 repeated defeats in the case will consider support for Java. In fact now it is the computer game consoles, many enthusiasts have been able to run Java programs on the PS3 and WII, but cannot use these machines currently Java hardware acceleration.
4. The further development of mobile phone
Now it seems the function of mobile devices has become increasingly powerful, mobile phone performance may in the near future to achieve the standard computer, mobile games market will occupy an increasing share of the game, due to the wide variety of mobile phone operating system, cross-platform Java will naturally become increasingly popular.