Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.
Why Choose Java For Mobile Game Development?
Although C++ has the advantage of being compiled into native code with direct access to system resources, and with BREW the platform provides end-to-end solutions to mobile game developers while allowing them to work with any desired language (including C++, Java, XML, and Flash), Java is the most popular choice for game development. Java, or the Java Micro Edition (Java ME) platform to be precise, is identified as the most convenient for developing mobile games.
The driving forces behind Java ME's popularity are:
- Java ME enjoys the status of an industry standard backed by all major handset makers, with most of the present day mobile phones being Java-enabled.
- Java ME is a free and open platform. This helps keep the development costs low and provides the necessary flexibility with ample support freely available for developers using it.
- Its highly portable nature ("Write once run anywhere") ensures that a game application written for one brand/type of handset will work with all other brands/types of Java-enabled handsets.
- It is especially optimized for small devices, is lightweight, and is highly secure because applications written on it cannot access or affect other applications running on the phone/device.
- Java ME with Mobile Information Device Profile (MIDP) is designed specifically for developing applications for mobile devices including mobile phones, keeping in mind their limitations and constraints. Furthermore, the latest MIDP 2.0 itself dedicates a whole API to game development, making game development simpler and quicker.
On its downside however...
- Java ME's ("Write once run anywhere") doesn't work as well as expected, with multiple api's (For Sound and Graphics) and inconsistent implementations between Virtual Machines from different manufacturers and models this is very rarely the case.
- Operator and Device requirements also cause many game implementation differences. From game size to the way events should be handled or interpreted.
- Game frame rate issues and screen differences prevent a high end game working on phones older than 18 months. Therefore requiring more than one implementation of the same game with all the cost overheads of the additional QA and Development cycles.