Gamer area Developer area

Introduction
Asteroid Zone is a Java 2 Micro Edition (j2me) version of the classic arcade game: your spaceship has ventured into a particularly unfriendly area of space where it must strive for survival by blasting asteroids which threaten to squash it. The ship has a powerful gun, a propulsion system (be careful with inertia !), and can teleport.

Last update
October 14, 2002.

License
The game is free software and is available under the GNU General Public License (GPL). Basically, this means the license gives you the following permanent rights: use the software forever, distribute it to who you want, look at the source code and alter it if you are interested. The flipside is that you must grant these very same rights to other people as well if you wish to redistribute the software or publish your own software based on this software.

Download
version 1.4 asteroids.jar (Java ARchive, a compressed bundle which contains the game classes)
asteroids.jad (Java Application Descriptor, a file used by the Java device to install the software)
asteroids_src.jar (Game souce code, comes with javadoc documentation)
version 1.3 asteroids.jar (Java ARchive, a compressed bundle which contains the game classes)
asteroids.jad (Java Application Descriptor, a file used by the Java device to install the software)
asteroids_src.jar (Game souce code, comes with javadoc documentation)
version 1.2 asteroids.jar (Java ARchive, a compressed bundle which contains the game classes)
asteroids.jad (Java Application Descriptor, a file used by the Java device to install the software)
asteroids_src.jar (Game souce code, comes with javadoc documentation)
version 1.1 asteroids.jar (Java ARchive, a compressed bundle which contains the game classes)
asteroids.jad (Java Application Descriptor, a file used by the Java device to install the software)
asteroids_src.jar (Game souce code, comes with javadoc documentation)
version 1.0 asteroids.jar (Java ARchive, a compressed bundle which contains the game classes)
asteroids.jad (Java Application Descriptor, a file used by the Java device to install the software)
asteroids_src.jar (Game souce code, comes with javadoc documentation)

Release notes
Version 1.4, October 14 2002
Bug fix release to correct problems for phones with a small screen (such as the Nokia 6310i). Added an extra screen with license info so that people know the game is GPL. Added the improvements developed by Pavel Machek (displaying the level at the beginning of each stage, not resetting the ship position at the beginning of the stage, correcting the mechanics equations so that the rockets fired take into account the velocity of the ship).
Bug fixed
0007 The rasterization algorithm was still not right for steep lines and did not handle degenerate cases well (and degenerate cases do happen with small screens). This would cause the game to get stuck in an infinite loop at initialization time.

Version 1.3, October 26 2001
Bug fix release.
Bug fixed
0003 Collision detection problem. The rasterized polygons used for collision detection were upside down and rightside left. The fix gives much better accuracy in collision detection.
0004 Restored the keyRepeated() method which had been removed in 1.2 in an effort to limit the number of events generated and speed things up (it turns out is was a bad idea). The keyRepeated() method now also allows autofire.
0005 Numerical precision problem causing the graphics to be slightly distorted.
0006 The ship is unable to rotate back to its exact original angle.

Version 1.2, October 24 2001
This is a performance release again, to try to get decent performances on actual java phones. The collision detection algorithm has been completely rewritten. Event handling has changed also and ought to be more responsive.

Version 1.1, October 4 2001
This is mostly a performance / bug fix release. No new classes have been added, though a lot of shuffling has occurred within the classes themselves. The game is roughly 30% faster than 1.0.
New features
Faster ship.
Ship movement can be controlled with the UP key also.

Bug fixed
0001 Field thread was not destroyed at exit (which would cause 2 Field threads to be runnning when the game was relaunched, causing every objects to move twice (and thus twice as fast !)).
0002 Once maximum ship velocity was reached, engine burns in the opposite direction where also ignored, causing the ship to keep moving at its maximum velocity.

Version 1.0, September 9 2001
Initial release

Supported hardware
The game is packaged as a MIDlet, an application designed to run on j2me compatible cell phones and other java compatible devices with limited resources. So far though, the game has only been tested on various emulators and two actual cellular phones so I cannot guarantee it will operate flawlessly or fast enough for a particular j2me device. I am very interested in hearing about any compatibility / playability problem on actual of j2me devices. Feel free to submit any bug or problem and I will do my best to fix them as quickly as possible.
At the time of this writing, here is the present status:
 
Device or emulator name Status Comment
Java 2 Wireless toolkit 1.02 early access
Java 2 Wireless toolkit 1.03 early access
Good Emulated on a 200Mhz Pentium Pro
Works fine with Default Color phone, Default Gray Phone, Minimal Phone, RIM. Works slighly better with 1.02 than 1.03
Zucotto Wireless WHITEboard Device Emulator 2.0.1 Excellent Emulated on a 200Mhz Pentium Pro
Provides the smoothest performance
Palm POSE 3.08 Poor Emulated on a 200Mhz Pentium Pro
Slow, black and white
Motorola i85s/i50sx Good Works, at a decent speed it seems. Responsiveness still in question
Siemens SL45i Medium Works, though somewhat sluggishly
Nokia 6310i MIDP SDK Beta 0.9 Good Works, at a decent speed it seems.

Contact
For any questions, problems or comments, you can reach me (Jean-Francois Doue) at: jfdoue@yahoo.com

Resources
Here are the hyperlinks to various related works I mention in these pages.

  • The Java 2 Micro Edition home page contains information about j2me development and resources
  • The GNU home page contains information about free software and the GPL
  • The JODE ( Java Optimize and Decompile Environment) home page contains information about the obfuscator used to compress Asteroid Zone
  • The text effects on this page have been generated using the tools available at the Flaming Text web site.
  • The Java (tm) Programming Language, Third Edition by Ken Arnold, James Gosling, David Holmes is the classic textbook reference on the Java language. ISBN 0-201-63455-4, Addison Wesley
  • The java source code of Asteroid Zone, which can be browsed in the developer area, has been formatted in HTML using Lore's Source Converter. This tool is free software also.
  • The home page of Zucotto Wireless, maker of the WHITEboard SDK.
  • The home page of Palm computing, which provide PC-based emulators.

Here are hyperlinks to J2ME specialized web-sites which provide resources, technical discussion, articles and other MIDlets.
  • www.javamobiles.com provides a very complete list of all the devices which currently support J2ME, plus free MIDlets downloads.
  • www.microjava.com provides news, technical articles, discussion groups and a very complete resource index for MIDlet developers.
  • midlet.org provides a lot of free MIDlets downloads, which can be tested online using a J2ME emulation applet.
  • www.midletcentral.com is an on-line MIDlet repository.

Credits
Many thanks to the following people who have provided technical expertise, suggestions, or spent time testing: CheeMeng Lee, Maxence Bernard, Sami Lababidi, Jaweed Agha, Pavel Machek

Change history

October 13, 2002
Added the new 1.4 release.
October 26, 2001
Added the new 1.3 release. Upgraded the status of the Motorola i85s/i50sx to good.
October 24, 2001
Added the new 1.2 release. Updated the Optimization section. Added a credits section
October 04, 2001
Added a change history section. Added info about Motorola i85s/i50sx, Siemens SL45i and Java 2 Wireless toolkit 1.03 support. Added a hyperlinks to several J2ME specialized web-sites. Added the new 1.1 release. Added a release notes section. Updated the Optimization section.
September 12, 2001
Initial Web site release.