Java ME vs. Flash Lite: A comparison of mobile phone game development Alex Koller Supervisors: Greg Foster, Madeleine Wright
Overview of Presentation 1. Project Synopsis 2. Research Findings 3. Demonstration 4. Results 5. Conclusions 6. Future of Mobile Game Development 7. Questions?
Project Synopsis Comparison of mobile game development between Java ME and Flash Lite 2.1 We investigated the available APIs Understanding capabilities of each platform Designed and developed a cross platform game designed to test the capabilities of Java ME and Flash Lite
Project Synopsis Cont. Developing a complete game allowed us to: Test all aspects of game development Test supporting functions, such as persistent data storage, menu creation, etc. Assemble quantitative comparison results
Research Findings Game types and genres 3D games becoming more viable – phones with increased processing power and onboard GPU Simple and addictive game play over graphics Simple user controls Arcade-style games are well suited, and have been successful on mobile phones
Research Findings Cont. Important features of a successful arcade- style mobile game Decent speed/frames per second Minimal memory usage Quick return on investment – short development time Small file size for transfer and storage Addictive, easy to play and fun! Immerse the player in the game
Research Findings Cont. Development Environments Java ME: Many development environments to chose from Sun Wireless Toolkit excellent free choice Comes with many utilities for emulating, testing, method profiling, memory monitoring, etc. Flash Lite: Flash CS3 Professional is the only option Propriety software (US$600) Crashed multiple times while developing, emulator occasionally refused to run
Research Findings Cont. Development Environments Compared ** Average of five successive start-ups ** Initial memory usage immediately after start-up Development Time Roughly three weeks for each platform Development EnvironmentStart-Up Time (seconds) *Memory Usage (mb) ** Netbeans Eclipse IntelliJ IDEA Java Wireless Toolkit3.433 Flash CS3 Professional20.489
Demonstration Black Sky is a top-down perspective, arcade- style, tile-based game Both implementations are almost identical Black Sky (Java ME) Black Sky (Flash Lite)
Results Frames Per Second Average FPS over 30 second period: Java ME: Flash Lite: Memory Usage Peak memory usage over one minute period: Java ME: 516 kb Flash Lite: 1032 kb Java ME peaks when initialising, while Flash Lite continues to rise, peaking at the end.
Results Cont. Lines of Code Java ME more ‘complete’ than Flash Lite version Java ME: 3000 lines Flash Lite: 1000 lines Final file size: Most mobile phone games aim for ≤ 200kb Java ME: 81.5 kb Flash Lite: 59.3 kb
Results Cont. Problems Encountered: Java ME: Creating GUIs required some trial and error – can only be created programmatically Flash Lite: Flash CS3 does not natively support MIDI – requires a laborious 10 step workaround Difficulty creating a tile-based game engine without BitmapData object (introduced in Flash 8) Input validation (button presses) too slow for fast-paced games – results in unresponsive controls
Conclusions Both Java ME and Flash Lite are capable mobile game development platforms Java ME is more mature than Flash Lite Java ME has been in use for many years Flash Lite is a relatively new platform Java ME has more variety in development environments
Conclusions Cont. The game we created allowed us to perform comprehensive testing on both platforms Memory usage and frames per second Java ME outperformed Flash Lite in these two vital tests Number of lines of code and final file size Flash Lite achieved better results Java ME is better than Flash Lite For almost all aspects of mobile game development, we found Java ME enabled us to achieve our goals more precisely and easily
Future of Mobile Game Dev. Java ME Solid development being made on the Java ME framework, specifically the gaming APIs Over 1 million developers currently using Java ME Flash Lite Flash Lite 3.0 recently released Focus is on video/multimedia, not game development Based on Flash 8 (still no BitmapData object though) At this stage, Java ME is staying ahead of Flash Lite in terms of mobile game development
Questions?