Online Sample Chapters
Big Games, Small Screens
Big Games, Small Screens
The World of Micro Java Gaming
Table of Contents
1. Introduction (or Everything I Wanted to Know About Micro Java Gaming But Was Afraid to Ask).
A New Era of Gaming.
A Brief History of Games.
Multiplayer Mania.
Micro Devices, Micro Lifestyles.
Enter Micro Java.
This Book's Mission.
The Game Plan.
A Bit About Game Design.
The Game Design Process.
Preproduction.
Prototyping.
Programming.
Playtesting.
Show Me the Money: Micro Game Business Models.
The Business Outlook.
Advertising and Sponsorships.
Content Deals.
Pay-For-Play or Subscription.
Summary.
I. SMALL DEVICES.
2. The Mobile World. A New Era of Gaming.
Micro Devices.
The Micro Revolution Begins.
High-End Java Devices: Set-Top Boxes, Phones, Consoles.
PersonalJava.
JavaTV.
JavaPhone.
PingTel xpressa Phone.
Sharp NC-10 IP Phone.
Personal Digital Assistants (PDAs).
J2ME PDA Profile.
PalmOS.
Microsoft Windows CE.
Symbian EPOC.
Sharp Zaurus SL-5000.
URL: http://developer.sharpsec.com/.
Other Linux Handhelds.
Micro Java Virtual Machines.
Mobile Phones and Pagers.
Casio CdmaOne C452CA.
Ericsson R380.
Fujitsu F503i.
Hitachi CdmaOne C451H.
LG Telecom p510 (i-Book).
Other LG Telecom Phones.
Matsushita/Panasonic P503i.
Matsushita/Panasonic P503iS.
Matsushita/Panasonic FOMA P2101V.
Mitsubishi D503i and D503iS.
Mitsubishi J-D05.
Motorola i85s.
Motorola i50sx.
Motorola Accompli 009 PIC.
Motorola, Accompli 008/6288.
Other Motorola Phones.
NEC N503i.
NEC FOMA N2001.
Nokia 9210 and 9290 Communicator.
RIM/iPaq Blackberry.
Samsung SCH-X130, SCH-X230, SCH-X350, and SCH-X350.
Sharp J-SH07.
Siemens SL45i (or 6688i).
Sony SO503i.
Toshiba J-T06.
Low-End Java Devices: Smart Cards and Embedded Chips.
JavaCard.
EmbeddedJava.
Summary.
3. Big Games, Small Screens. Your Competition.
Things to Look For.
The Near Future.
WAP Games.
Wireless Games.
Jamdat.
PicoFun.
Handy Games.
FunCaster.com.
Unplugged Games.
nGame.
i-mode Games.
Dwango's Turibaka Kibun.
SMS Games.
Fisupeli.
Blue Factory.
BotFighters by It's Alive.
Vizzavi Footie and Trivia.
J2ME MIDP Games.
Karl Hörnell's MIDPman.
HolyCowBoy's BlockBuster and HolyMoley.
Draw Poker.
Cocoasoft.
RomeBlack's Mobile Internet Maze Game.
Sky Arts' Cube Game.
Jshape's M-Type and MIDP Street Fighter.
Spruce Team.
Red Team's Dope Wars.
J2ME Palm Games.
Torunda!
Karl Hörnell's Iceblox and PalmWarp.
Hobbit's Let Me Alone.
iAppli Games.
Squiral Game.
Dwango's Samurai Romanesque.
Dwango's Challenge! The Hard-Boiled Way.
Sega.
Namco.
Capcom.
Bandai Networks.
Cybird's Mini Game Tengoku.
Hudson Soft.
What Are You Waiting For?
II. BEFORE, BETWEEN, AND BEYOND J2ME.
4. Wireless Standards: How Data Goes To And Fro. Wireless Networks.
First Generation (1G).
Second Generation (2G).
Second (and a Half) Generation (2.5G).
Third Generation (3G).
The Wireless Application Protocol (WAP).
The WAP Protocol Stack.
WAP Architecture.
The Wireless Markup Language (WML).
WMLScript.
Server-Side WAP.
Server Configuration.
WAP and Java.
Development Environment.
Handheld Device Markup Language (HDML).
HDML Syntax.
Displays.
Activities.
Actions.
Hyperlinks.
Images.
WAP 2.0 and xHTML Basic.
Summary.
5. Let's Talk: Instant Wireless Messaging. Messaging And Gaming.
Short Message Service (SMS).
SMS Specifics.
Short Message Service Centers (SMSCs).
Free SMS Service.
Actually Sending SMS Messages.
SMS Tools.
SMS and J2ME.
Sample Server Code.
Multimedia Messaging Service (MMS).
Multimedia Message Service Centers (MMSC).
Crack a SMIL.
Simple SMIL Example.
Enhanced Messaging Service (EMS).
Summary.
6. Wireless in Asia: i-mode and cHTML. Using i-mode.
Compact HTML (cHTML).
Character Sets.
Emoji.
cHTML Structure.
Standard cHTML Tags.
Input Forms.
The Anchor Tag.
Images.
<Marquee>
Development Tools.
Testing and Emulators.
Summary.
7. The Wireless Landscape. Bluetooth.
Bluetooth Protocols.
Bluetooth and Java.
Other Short-Range Applications.
Broadband's Promise.
Mobile Positioning.
How It All Works.
Forums and Associations.
Privacy.
Positioning Technologies.
m-Commerce.
Charging for Content.
Micro Java and Money.
Voice and Telephony.
VoiceXML.
VoiceXML Software.
Wireless Telephony Application Interface (WTAI).
Unified Messaging (UM).
Summary.
III. THE JAVA 2 MICRO EDITION.
8. J2ME Overview. The Trinity of Java Platforms.
It's a Small World After All
Using Java on Small Devices.
J2ME Rocks!
Profiles and Configurations.
Major J2ME Configurations.
J2ME Profiles.
The Kilobyte Virtual Machine.
The Java Application Manager.
Packaging into a JAR File.
Connected in a Limited Way: The CLDC.
Security.
Pre-verifying.
The Mobile Profile.
MIDP in a Nutshell.
Earlier Profiles.
Summary.
9. Creating a MIDlet. Command-Line MIDlet Development.
Development Environments.
Wireless Toolkit.
Lifecycle of a MIDlet.
Displaying Stuff.
Working with Screens.
Forms.
Menus and Commands.
Creating Help and About Alert Screens.
The Alert Class.
Splash Screens.
Global Properties.
Getting Application Properties.
Getting System Properties.
Creating a Global Cache Class.
Summary.
10. Making the Most of Limited Resources. The Limitations.
Processor Paucity.
Memory Madness.
Video Vex.
Processors of the Future.
Memory Limitations.
Working Memory.
Storage Memory.
Displays.
Breaking Through the Limitations.
Detecting the Minimum Speed.
Frame Rate.
Multiple Display Support.
Black and White World.
Summary.
11. Making the Most of It: Optimizations. A Limited World.
Making Code Optimal.
Code Size Optimizations.
Making code Faster.
Decreasing Memory.
Device Availability.
Network Performance.
Code Size Reductions.
Obfuscators and Name-Shortening.
The Object-Oriented Dilemma.
Image Size Reduction.
Speeding Up the Code.
Dealing with the Garbage Collector.
The Constructorless Way.
Static Methods.
The Fast-Draw.
Using Less Memory.
String Versus StringBuffer.
Arrays Versus Vector and Hashtable.
Power Consumption.
Summary.
12. Multithreaded Game Programming. Threads.
Extending the Thread Object.
Implementing the Runnable Interface.
Thread Priorities.
Thread States.
Synchronizations and Deadlocks.
wait() and notify().
Timers.
Making Threads Better.
Summary.
IV. LET THE GAMES BEGIN!
13. High-Level Graphical User Interfaces. The Screen Class.
Forms and Alerts.
Lists.
List Types.
Choices, Choices.
Text Boxes.
Items.
Item State Listening.
Choices.
Dates.
Progress Meters.
String Items.
Image Items.
Text Inputs.
Tickers.
Additional Libraries.
Summary.
14. Working with Graphics: Low-Level Graphical User Interfaces. The Canvas Class.
Canvas Events.
Custom Commands.
Creating a Game Key and Pointer Handler.
Handling Touch Screens.
Painting on the Screen.
Working with Colors.
Stroke Types
Drawing Lines.
Drawing Rectangles.
Drawing Rounded Rectangles.
Drawing Arcs.
Fonts.
Drawing Strings.
Drawing Images.
The Image Class.
Clipping.
Translating.
Double Buffering.
Summary.
15. Entering the Land of Sprites. Sprites.
Sprite Properties.
Animating Frames.
The Sprite Class.
Image Files.
Loading Included Images.
Loading Images Over the Network.
Image Size Reduction.
Drawing the Sprites.
Collision Detection.
Basic Collision Detection.
Creating Child Sprites.
Building the Player Sprite.
Opponents.
Image Transparency.
Drawing by Pixels.
Drawing a Sprite's Chunks.
Implementation of Image Transparency.
Summary.
16. Managing Your Sprites. Networked Game Components.
Downloading Images.
Downloading Other Media Types.
Advanced Collision Detection.
Solution 1: Multiple Levels.
Solution 2: Multiple Areas.
The Sprite Manager.
Drawing Optimizations.
Enhancing Sprite Collision.
Summary.
17. Sprite Movement. Floating-Point in J2ME.
Cheating the System.
Game Initialization.
Movement.
The Movement Routine.
Piecing It All Together.
Handling Collision Detection.
Endgame: Losing or Winning.
The Final Game Thread.
Summary.
18. J2ME Audio Basics. Sounds Are (Barely) Possible.
Summary.
19. Be Persistent: MIDP Data Storage. RecordStore Overview.
RecordStore in Practice.
addRecord().
getRecord().
setRecord().
deleteRecord().
getLastModified().
getNextRecordID().
getNumRecords().
getSize().
getSizeAvailable().
deleteRecordStore().
EnumerateRecords().
The Game's New Methods.
Writing the Code.
More RecordStore Joy.
Summary.
20. Connecting Out: Wireless Networking. J2ME Networking Overview.
MIDP Networking.
A Little Info About HTTP.
HTTP Example.
Working Around HTTP's Limitations.
Setting Up Your Game Server.
Data Format.
Doing Your Own Packing.
XML.
Encoding with DataOutputStream and DataInputStream.
Making a Multiplayer Car Racing Game.
Design the System.
Special Considerations.
The Messages.
Weaknesses.
The Client Side.
The Server Side.
Playing the Game.
Summary.
V. J2ME EXTENSIONS.
21. PersonalJava, Connected Device Configuration, and Other Micro Java Blends. Connected Device Configuration (CDC).
J2ME Foundation Profile.
The Personal Profile.
PersonalJava.
PersonalJava APIs.
Double Buffering.
Developer Tools.
MIDP Plug-In for PersonalJava.
PersonalJava Design Considerations.
PDA Profile.
Java Game Profile.
The J2ME Multimedia Profile.
Summary.
22. iAppli: Micro Java with a Twist. The Architecture of It All.
Provisioning.
Priorities, Priorities.
iAppli: Like MIDP, But Not Quite.
User Interface.
Networking and Input/Output.
Developing iApplis.
Summary.
23. Siemens Game API. Getting Set Up.
Compiling.
Running with the Emulator.
Running on the Actual Phone.
Download Your Applet Over the Air.
The Game SDK Overview.
Images and Sprites.
Creating an Extended Image.
Blitting.
Graphic Objects.
Sprites.
Creating and Masking a Sprite.
Sample Code.
TiledBackground.
The Tiles.
The Tile Background.
Flashing.
Good Vibrations.
Music, Sweet Music.
Melodies.
GSM Functions.
Making a Call.
Accessing the Phone Book.
SMS Messages.
Input Output.
Sending and Receiving Data.
Saving and Loading Files.
Summary.
VI. MICRO RACER.
24. Micro Racer: Putting It All Together. The Bad News.
The Good News.
Putting Together the Pieces.
Adding Weapons.
Better Enemies: Artificial Intelligence.
Better Control.
Adding Power-Ups.
Tying In the Game with the Data Store.
Tying In the Offline Game with the Online Garage.
Future Work.
One Game Running Everywhere.
The Magic of Interfaces.
Summary.
VII. APPENDIXES.
Appendix A. Low-Level GUI Classes. Game Classes.
javax.microedition.lcdui.AlertType.
javax.microedition.lcdui.Command.
javax.microedition.lcdui.Display.
javax.microedition.lcdui.Displayable.
javax.microedition.lcdui.Canvas.
javax.microedition.lcdui.Screen.
javax.microedition.lcdui.Alert.
javax.microedition.lcdui.Form.
javax.microedition.lcdui.List.
javax.microedition.lcdui.TextBox.
javax.microedition.lcdui.Font.
javax.microedition.lcdui.Graphics.
javax.microedition.lcdui.Image.
javax.microedition.lcdui.Item.
javax.microedition.lcdui.ChoiceGroup.
javax.microedition.lcdui.DateField.
javax.microedition.lcdui.Gauge.
javax.microedition.lcdui.ImageItem.
javax.microedition.lcdui.StringItem.
javax.microedition.lcdui.TextField.
javax.microedition.lcdui.Ticker.
Appendix B. MIDP 1.1. Main Packages.
java.io Class Hierarchy.
java.io Interface Hierarchy.
java.lang Class Hierarchy.
java.lang Interface Hierarchy.
java.util Class Hierarchy.
java.util Interface Hierarchy.
javax.microedition.io Class Hierarchy.
javax.microedition.io Interface Hierarchy.
javax.microedition.lcdui Class Hierarchy.
javax.microedition.lcdui Interface Hierarchy.
javax.microedition.midlet Class Hierarchy.
javax.microedition.rms Class Hierarchy.
javax.microedition.rms Interface Hierarchy.
Appendix C. Siemens Game API. Game Classes.
com.siemens.mp.game.Light.
com.siemens.mp.game.MelodyComposer.
com.siemens.mp.game.ExtendedImage.
com.siemens.mp.game.GraphicObject.
com.siemens.mp.game.Sprite.
com.siemens.mp.game.TiledBackground.
com.siemens.mp.game.GraphicObjectManager.
com.siemens.mp.game.Melody.
com.siemens.mp.game.Sound.
com.siemens.mp.game.Vibrator.
Siemens GSM Classes.
com.siemens.mp.gsm.Call.
com.siemens.mp.gsm.PhoneBook.
com.siemens.mp.gsm.SMS.
Input/Output Classes.
com.siemens.mp.io.Connection.
com.siemens.mp.io.File.
public interface ConnectionListener.
Appendix D. The iAppli API. Packages.
com.nttdocomo.io Interfaces.
com.nttdocomo.io Interfaces.
com.nttdocomo.lang.
com.nttdocomo.net.
com.nttdocomo.ui.
com.nttdocomo.ui Interfaces.
com.nttdocomo.util.
com.nttdocomo.util Interfaces.
IApplication.
Index. 0672323427T04222002
Preface
Everything I Wanted to Know About Micro Java Gaming But Was Afraid to Ask
A New Era of Gaming
Ah, games.
Games have almost a religious, ritual aspect to them. They allow people to enter together into a higher state of being, pushing skills to new limits and experiences to new heights. They allow ordinary people to experience extraordinary emotions--the emotions of the warrior, the king, the spy, and the lover--while remaining protected in a safe environment.
Now all this might sound like a bit of a heavy-handed way to describe Frogger, but it's fair to say that games transport us and amuse us in ways that no other form of entertainment can.
A Brief History of Games
Games have been with humanity since the beginning. A 5000-year-old Mancala-like game board, carved from stone, was recently unearthed in the Sahara. The game of Go, popular in Oriental countries, has reportedly been around since 2000 B.C. Backgammon-like games such as Tabula and Nard are talked about in ancient Roman scripts, and even in the Bible. And Tarot decks, initially used to help predict the future, evolved into today's Bicycle playing cards.
A decade or two ago, the only games that people spent much time with were professional sports, board games like Monopoly and Chess, paper and dice games such as Dungeons and Dragons, and card games like Poker or Hearts. Some games were for heavy money, some were bone-jarringly competitive, but most were just about good clean fun.
With the advent of computers, games entered a new era. Games became one of the main reasons many people brought these strange beige boxes called computers into their homes. Whether battling through a simple graphical tennis game such as Pong, or a rich, text-only world such as Zork, these were wholly new types of games that could be played anytime against a most formidable opponent: a game designer who had programmed your computer, long ago, showing it how to defeat you.
The arcade wave of the '70s and '80s, led by hits such as Pac-Man, captured the hearts and ate the quarters of millions of youths. Console systems such as the Magnavox Odyssey, the Atari 2600, Mattel Intellivision, and ColecoVision brought the fun of the arcade to the players' own living rooms. Then, in 1985, a box known as the Nintendo Entertainment System blew people away with stunning graphics and intricate gameworlds, typified by such hits as Super Mario Brothers.
Computer gaming entered a whole new stratum of mass popularity and acceptance with bestsellers such as Doom, followed by Quake, and later Tomb Raider. Clearly, ultra-realistic 3D worlds were a hit. The more a game made a player feel as if she were actually inside another reality, the better.Graphics became richer and richer as 3D cards and engines doubled in speed and performance with each passing year. Super Nintendo gave way to the Sony PlayStation, and currently the Nintendo GameCube faces off against the PlayStation 2, not to mention Microsoft's daunting new Xbox.
Multiplayer Mania
A funny thing happened on the way to virtual reality-ville. In the late '90s and early 2000s, with games like Ultima Online, Everquest, and Age of Empires II, not to mention the spread of casual game Web sites such as Pogo, Yahoo Games, and Microsoft's MSN Gaming Zone, it became clear that what mattered to a whole slew of gamers wasn't only the richness of graphics or the detail of blood and gore--but the presence of other, real people. Multiplayer gaming, long popular with the geek crowd, had entered the mainstream.
In a way, games had come full circle. Once again, games were serving a social purpose, becoming a way for two or more people to enter new worlds and test new skills together, relating to each other in entirely new ways.
Micro Devices, Micro Lifestyles
While multiplayer gaming continues to grow in popularity, another big paradigm shift is happening.
It's becoming harder and harder to find people who don't carry network-enabled embedded devices with them wherever they go. Whether it's a PDA such as a Palm device or iPaq, or a mobile phone such as those crafted by companies like Nokia or Motorola, people are getting used to connecting and communicating with each other anytime, anyplace, and anywhere.
Today, there are more than 600 million mobile-phone users worldwide. In the United States and Europe, mobile phone users generally tend to be affluent, educated, and they often have lots of time on their hands. The picture is different on different continents. In Africa, Asia, and South America the masses have flocked to mobile phones because land-line access and Internet service are too expensive.
According to the Yankee Group, people in the United States spend 50% more time commuting than in any other country. This is the perfect time to pull out a mobile phone and play some quick games.
Additionally, Datamonitor has researched people's game-playing behaviors in Asia, Europe, and the United States, and has concluded that most people like to play wireless games on evenings and weekends.
In the near future, we will likely see micro devices become even smaller and more specialized. Phones the size of earplugs, voice-activated assistants on wristwatches, and smart chips on credit cards are all becoming a reality.This is a continuation of the paradigm shift that began in the 1970s, with microcomputers taking the power away from huge, monolithic mainframes. Clearly, millions of small devices working together yields much more distributed power than one big, central device.
Unsurprisingly, games are keeping up and even helping to lead this paradigm. While it might seem silly to try to achieve a rich, meaningful immersion on a tiny 100Yen100 pixel screen, there's one thing mobile phone games give you that even the best consoles can't provide: They're always with you, and can be played anywhere you go. This not only means that games can now be more convenient, but wholly new types of games can be designed that take advantage of new lifestyles.
Enter Micro Java
The Java language, created by Sun Microsystems, is another example of a paradigm shift. As a language that had no pointers or complicated memory operations, was object-oriented, secure, and could run on most any browser or platform, application development suddenly opened up to the masses in a way that never seemed possible before. Java made it possible for millions of programmers to create quality applications in record time and quantities.
The Java 2 Micro Edition (J2ME), or Micro Java, as we'll call it in this book, is an attempt to take the best aspects of Java and pare them down for smaller devices such as mobile phones; set-top boxes that add interactivity to television, pagers, handheld organizers and personal data assistants (PDAs); as well as embedded chips that you find in devices such as refrigerators, microwaves, "smart" credit cards, and automobiles.
Most every major mobile phone and handheld device manufacturer immediately realized the potential of J2ME: If Java were to be placed on the gadget, hundreds of thousands of developers would immediately be able to create applications and add value. Furthermore, because it's Java, a program written for one device would be able to run on another device with little or no modifications. That certainly makes more sense than trying to force developers to learn a native language and API in order to create programs for your phone.Seeing the opportunity for Java on the handset, almost every major mobile phone manufacturer joined with Sun to create something called the CLDC: The Connected, Limited Device Configuration, along with the MIDP: The Mobile Information Device Profile. In later chapters, we'll get into greater detail about what all these wacky acronyms really mean. But the point to remember here is that mobile phone manufacturers have embraced Java in a way that not even PC manufacturers and browser makers have. Java is clearly the future platform of choice for mobile devices, and an ideal platform for mobile games.
This Book's Mission
We have attempted to write the most in-depth guide showing you how to craft the most cutting-edge Micro Java games possible.
Whether you are a professional game designer hoping to expand your knowledge of various platforms, a game programmer who wants to port a game to a smaller device, a Micro Java enthusiast looking for a more entertaining book about more entertaining apps, or just a micro gamer hoping to catch a glimpse of what goes on behind the scenes, this book is for you.
The Game Plan
This book is divided into six sections:
Part I: Small Devices
The book begins with a tour of current Java-enabled devices, showing the full canvas upon which you'll be able to paint. These devices include powerful, full-featured computer systems, set-top television boxes, and tiny, smart credit cards.
Next, we'll look at the current state of micro gaming. We'll go on a whirlwind tour of some of the most popular and revolutionary games out there. Because most of these games are not written in Java, we'll try to distill the most successful element of these games so that you can take the best ideas and run with them.
Part II: Before, Between, and Beyond J2ME
In many cases, handheld games will not be written in Java alone. Rather, games will be built atop older mobile phone technologies. In the second section of this book we'll look at the technologies that surround and support J2ME gaming, such as the Wireless Application Protocol (WAP) and Standard Messaging System (SMS). Furthermore, we'll cover specific enhancements to the current crop of phones from brands such as Nokia, Siemens, Motorola, Ericsson, and NTT DoCoMo, allowing you to take games to a new level no matter what your target platform happens to be.
For example, some carriers provide location-based information. This is an extremely exciting and relevant tie-in to gaming. This will allow people to literally use their mobile phones to hunt down or otherwise play with each other through the physical, bricks-and-mortar world.
Part III: The Java 2 Micro Edition
This section dissects the J2ME in all its gory detail. You'll learn how to build J2ME applications, which tools to use, and key programming techniques.Programming for handheld devices is often much different than coding for a full-blown desktop computer. However, it doesn't have to be more difficult.
Part IV: Let the Games Begin!
This is where things start getting deep. We'll thoroughly cover the nooks and crannies of J2ME, along with in-depth discussions on graphics, sounds, animation, multiplayer networking, and other game-related topics.
Additionally, one of the most important things this book will show you are the limitations of Micro Java and, in certain cases, how to get around them.Each section will include lots of source code, so that you can immediately begin compiling, tweaking, and testing things out.
Part V: J2ME Extensions
J2ME is a cross-platform standard. Any program you write in J2ME should work, more or less, on any other mobile phone or handheld device. However, every device has its own specialties and intricacies.
This section will cover other forms, profiles, and configurations of J2ME. For example, you'll learn a little bit about coding for a set-top television box. In addition, we'll focus on two popular Application Programming Interfaces (APIs) from the world's largest handheld hardware platforms.
Finally, this section will show you the best ways to take game elements from one platform and port them to others.
Part VI: Micro Racer
Every good thing must reach its end. But rather than just stuff you full of knowledge and then leave you alone in the vast, dry desert to figure everything out, this book includes the full code to a superior Micro Java game that we call Micro Racer.
Micro Racer is a fast moving, multiplayer experience. The game pushes the enveloper on Micro Java's graphical, sound, and networking abilities.You begin the game with a simple racecar. You can race around all you want, picking up bonus points, avoiding crashes, and exploring new tracks.Over time, however, your car will experience wear and tear and might even break down. You will need to log into The Garage to fix up your car.
At The Garage, you'll be able to buy new parts, trade away old parts, and compare your score and standing. As you gain more and more money, you'll be able to soup up your car with turbo boosters, nitro packs, monster tires, spiked wheels, oil slicks, smoke screens, and other extras.
The people you trade with at The Garage are not artificial intelligences; rather, they are other actual players.
Although Micro Racer is an advanced game, we believe you'll be able to do even better. It is our hope that you will take this game, and the knowledge learned throughout this book, and go on to create bigger and better things.
Summary
It is our hope that readers of this book will go on to do more than create an excellent crop of new games. We believe that given the paradigm shifts of always-on networking and in-pocket interactivity, the J2ME games of tomorrow have the potential to redefine the whole medium. In fact, given the pervasiveness of handheld devices and the potential for reaching a wider audience than ever before, a truly original game concept can revolutionize the world.
0672323427P04232002
Index
Numbers
- 1G (first generation) wireless networks
- 2.5G (second and a half generation) wireless networks
- 2G (second generation) wireless networks
- 3G (third generation) wireless networks
- 6035 SmartPhone
A
- <A> tag
- A-GPS (Assisted GPS)
- about screens
- abstract void paint() method
- abstract void start() method
- Abstract Window Toolkit. See AWT
- ACCEPT action type
- accept command type (<do> tag)
- accesskey attribute (<A> tag)
- action games, examples of
- <ACTION > tag
- ActionInputPreferred method
- activeCount() method (Thread class)
- addCommand() method
- addCommand(Command cmd) method
- addRecord() method (RecordStore class)
- addSprite(Sprite sprite) method
- ADF (Application Descriptor File)
- Advanced Mobile Phone Services. See AMPS
- adventure games
- advertising
- AI (artificial intelligence)
- Airtouch (Verizon) Web site
- ALARM alert
- Alarm alerts
- Alert class
- Alert(String title) method
- Alert(String title,String alertText,Image alertImage, AlertType
alertType) method
- Alerts
- AlertType class
- AlertType getType() method
- AlertType() method
- Alien Fish Exchange
- align attribute
- Alphaworks Web site
- alt attribute
- Ammo variable
- AMPS (Advanced Mobile Phone Services)
- Anagram
- anchor tag
- Anfy Team Web site
- Angle Of Arrival. See AOA
- animation
- EMS (Enhanced Messaging Service) and
- sprite frames
- threads
- ANY Text Field
- AOA (Angle Of Arrival)
- APIs (Application Programming Interfaces)
- CLDC
- extension interfaces
- PersonalJava supported
- Siemens game
- AppClass parameter
- append (Item item) method
- append(Image img) method
- append(String str) method
- append(String stringPart, Image imagePart) method
- appendNote(int note, int length) method
- applets
- Alert class
- Cache class
- creating
- Display class
- Form class
- life cycles
- MIDlet class
- properties
- Screen class
- appliances
- Application Descriptor File (ADF)
- application layer (WAP protocol stack)
- application memory, MIDP devices
- Application Programming Interfaces. See APIs
- Application Descriptor File. See ADF
- application.vnd.wap.wmlscriptc
- application/vnc.wap.wmlc
- AppName parameter
- AppParam parameter
- AppSize parameter
- AppVer parameter
- architecture
- iApplis
- SMSC (Short Message Service Center)
- WAP (Wireless Application Protocol)
- arcs (Graphics class)
- areas
- arrays, memory usage
- artificial intelligence
- listing effects of
- Micro Racer
- Asia, mobile telephone support
- Assisted GPS. See A-GPS
- AT modem command
- AT&T Wireless Web site
- attributes
- accesskey, <A> tag
- align
- behavior
- data
- direction
- emptyok
- format
- height
- href
- hspace
- id
- iname
- ivalue
- label
- loop
- maxlength
- name
- <A> tag
- <do> tag
- input fields
- <INPUT> tag
- onpick
- select tag
- size
- input fields
- <SELECT> tag
- src
- title
- type
- value
- input fields and
- <select> tag
- vspace
- width
- audio
- EMS (Enhanced Messaging Service) and
- engines
- files
- automotive navigation systems
- AWT (Abstract Window Toolkit)
- Axion
B
- <b> tag
- BACK command
- background art
- background music
- Banana Battle
- Bandai networks
- BASELINE constant
- batteries, power consumption
- behavior attribute
- billing category (Location Based Services)
- Billionaire
- bitmasked collision detection
- black and white displays
- Blackjack
- <BLINK> tag
- blitting
- BlockBuster Web site
- blocked state, threads
- <BLOCKQUOTE> tag
- Blue Factory games
- Bluetooth
- data rate
- development kits
- Java and
- OBEX protocol
- operating radius
- RFCOMM protocol
- Service Discovery Protocol
- uses for
- boolean hasPointerEvents() method
- boolean hasPointerMotionEvents() method
- boolean hasRepeatEvents() method
- boolean isBold() method
- boolean isColor() method
- boolean isDoubleBuffered() method
- boolean isInteractive() method
- boolean isItalic() method
- boolean isMutable() method
- boolean isPlain() method
- boolean isSelected(int index) method
- boolean isShown() method
- boolean isUnderlined() method
- boolean playSound(Display display) method
- Borland JBuilder
- BotFighters Web site
- BOTTOM constant
- <BR> tag
- business models
- Businessman
- buttons
- buy parameter
C
- C virtual machine. See CVM
- C.media Compact NetFront Web site
- Cache class
- CALL action type
- Call class (Siemens game)
- call detail record (CDR)
- calls, GSM functions
- CANCEL action type
- CANCEL command
- cancel() method (Timer class)
- CannonBubble
- Canvas class
- code example file
- creating keypad presses
- methods
- MIDP UI
- Canvas() method
- Capcom
- car racing game
- design
- client side
- HTTP considerations
- parameters
- server side
- playing
- car stores, creating for Micro Racer
- cards
- code example
- defined
- games
- id attribute
- switching to new
- title attribute
- Top Trumps
- CarItem class
- CarItemFilter class
- Carrier Force
- CarStore class
- case sensitivity, tags
- casino games
- Casio Cassiopeia
- Casio CdmaOne C452CA
- CDC (Connected Device Configuration)
- CVM (C virtual machine)
- Foundation Profile
- J2ME Foundation Profile
- Personal Profile
- targeted devices
- CDMA (Code Division Multiple Access 2000)
- CDR (call detail record)
- CelebriQuiz
- <CENTER> tag
- Challenge! The Hard Boiled Way
- chance games
- character sets (i-mode network)
- check boxes
- checkCollision() method
- checkers
- checkFinishLine() method
- checkin parameter
- Chess
- Choice interface
- ChoiceGroup class
- ChoiceGroup(String label, int choiceType) method
- ChoiceGroup(String label, int choiceType, String[ ] stringElements,
Image[ ] imageElements) method
- Choices, Item class
- Chop Suey Kung Fu
- cHTML (Compact HTML)
- <A> tag
- <BLINK> tag
- <BLOCKQUOTE> tag
- <BR> tag
- <CENTER> tag
- creating
- <DD> tag
- development tools
- <DIR> tag
- <DL> tag
- <DT> tag
- features
- <FORM> tag
- <HR> tag
- image formats
- <INPUT> tag
- <MARQUEE> tag
- <MENU> tag
- <META> tag
- <OBJECT> tag
- <OL> tag
- overview
- <P> tag
- <PLAINTEXT> tag
- <PRE> tag
- <SELECT> tag
- structure
- <TEXTAREA> tag
- <UL> tag
- chunks, drawing
- Cingular Web site
- classes
- Alert
- AlertType
- Cache
- Canvas
- custom commands
- events
- game key
- methods
- pointer handler
- touch screens
- CarItem
- CarItemFilter
- CarStore
- ChoiceGroup
- com.siemens.mp.game package
- com.siemens.mp.game.Melody
- Command
- Connector
- Connectory class
- DataInputStream
- DataOutputStream
- DateField
- Display
- Displayable
- ExtendedImage
- File
- Float
- Font
- Form
- Game
- GameCanvas
- Gauge
- GraphicObject
- GraphicObjectManager
- Graphics
- arcs
- colors
- draw strings
- fonts
- Images
- lines
- methods
- rectangles
- rounded rectangles
- stroke type
- IApplication
- Image
- ImageItem
- Item
- java.io package
- java.lang package
- java.util package
- java.util.Timer class
- javax.microedition.io package
- javax.microedition.lcdui package
- javax.microedition.midlet package
- javax.microedition.rms package
- Light
- List
- logical
- mathematical
- Melody
- MelodyComposer
- MIDlet
- MIDP
- RecordStore
- addRecord() method
- clearing
- code
- deleteRecord() method
- deleteRecordStore() method
- EnumerateRecords() method
- exceptions
- getLastModified() method
- getNextRecordID() method
- getNumRecords() method
- getRecord() method
- getSize() method
- getSizeAvailable() method
- MIDlet code
- RecordEnumerator handling
- setRecord() method
- unpacking images
- Screen
- Alert
- Form
- Item
- List
- methods
- Text Box
- Ticker
- Simens game
- size, optimization
- Sound
- Sprite
- SpriteManager
- StartForm
- static method
- StringItem
- TextBox
- TextField
- Thread
- activeCount() method
- currentThread() method
- getPriority() method
- implementing threads
- isAlive() method
- join() method
- run() method
- Runnable interface
- running flag
- setPriority() method
- sleep() method
- start() method
- stop() method
- timer example
- yield() method
- Ticker
- TiledBackground
- Timer
- Vibrator
- visual
- Weapon
- classescom.siemens.mp.game.MelodyComposer
- CLDC (Connected, Limited Device Configuration)
- Clear button, creating
- clients, ServerCallback interface
- clipping, Graphics class
- clipRect(int x, int y, int width, int height) method
- clock speed, optimization
- cloning
- close method
- Cocoasoft games
- code
- audio files
- buttons, creating
- Canvas class, creating
- cards
- ComponentListener
- decks
- dialog boxes, creating
- execution
- reduced size
- speed. See FPS
- HTTP connections
- hyperlinks, creating
- images, displaying
- labels, creating
- optimization
- radio buttons
- ScratchPad
- SMIL (Synchronized Multimedia Integration Language) file
- SMS (Short Message Service)
- SoftKeyListener class
- table tags
- text boxes, creating
- text formatting tags
- Thread class
- implementing threads using
- Runnable interface
- tickers, creating
- Timer class
- timers
- variables
- VisualPresenter component
- WMLScript
- document definition tag example
- form example
- GuessNUmber.wml example
- header example
- RandomGuess.wml example
- Code Breaker
- Code Division Multiple Access 2000. See CDMA 2000
- Code Warrior (Metrowerks)
- collide() method
- collision detection
- bitmasked
- multiple areas
- multiple levels
- SpriteManager class
- sprites
- colors
- Graphics class
- image display
- com.nttdocomo.io package
- com.nttdocomo.lang package
- com.nttdocomo.net package
- com.nttdocomo.ui package
- com.nttdocomo.ui.MediaManager methods
- com.nttdocomo.util package
- com.siemens.mp.game package
- com.siemens.mp.game.Melody class
- com.siemens.mp.game.MelodyComposer class
- com.siemens.mp.gsm package, Siemens SL45i
- calls
- loading data
- Missed Dialing Numbers (MDN)
- receiving data
- saving files
- sending data
- SMS messages
- combat games
- Command class
- Command(String label, int commandType,int priority) method
- command-line development
- CommandListener interface
- commands, MIDP
- Communicator development tool
- Compact HTML. See cHTML
- Compaq iPaq
- competition
- compiling
- ComponentListener
- components
- downloading
- images. See images
- levels
- missions
- personal digital assistants. See PDAs
- sounds. See sound
- tracks
- Condensity Web site
- Configuration layer (J2ME)
- configurations
- Confirmation alerts
- Connected Device Configuration. See CDC
- Connected, Limited Device Configuration. See CLDC
- Connection class (Siemens game)
- Connection interface
- ConnectionListener class (Siemens game)
- connections
- Connector class
- CONSTRAINT_MASK
- constructors
- content deals
- ContentConnection interface
- control, Micro Racer
- converting images
- Cool Vibes
- CrashCarEffect interface
- createImage(byte[ ] imageData, int offset, int length) method
- createImage(Image source) method
- createImage(int width, int height) method
- createImage(String name) method
- credit cards
- Cube game
- CubeBuster
- currentThread() method (Thread class)
- custom commands (Canvas class)
- CVM (C virtual machine)
D
- data
- global
- local
- reading in
- static
- data attribute
- Data Clash
- data formats
- DataInputStream class
- DataOutputStream class
- packets
- XML
- data part
- data storage
- Image class
- RecordStore class
- addRecord() method
- clearing
- code
- deleteRecord() method
- deleteRecordStore() method
- EnumerateRecords() method
- exceptions
- getLastModified() method
- getNextRecordID() method
- getNumRecords() method
- getRecord() method
- getSize() method
- getSizeAvailable() method
- MIDlet code
- RecordEnumerator handling
- setRecord() method
- unpacking images
- DataExchange software (Siemens SL45i)
- datagram layer (WAP protocol stack)
- DatagramConnection interface
- DataInputStream class
- DataOutputStream class
- Date Item class
- Date getDate() method
- DateField class
- DateField(String label, int mode) method
- DateField(String label, int mode, TimeZone timeZone) method
- <DD> tag
- dead state, threads
- deadlocks, threads
- decks
- code examplee
- defined
- switching to new
- Defender
- DELETE action type
- delete command type
- delete(int elementNum) method
- delete(int itemNum) method
- delete(int offset, int length) method
- deleteRecord() method (RecordStore class)
- deleteRecordStore() method (RecordStore class)
- deleteSprite(int position) method
- deleteSprite(Sprite sprite) method
- Description variable
- design (game design)
- business models
- advertising/sponsorships
- business outlook
- content deals
- subscriptions, charging players for
- car racing game
- client side
- HTTP considerations
- parameters
- playing
- server side
- overview
- playtesting
- preproduction
- artificial intelligence
- backgroup art
- backgroup music
- documentation
- game levels
- genre, selecting
- global variables
- graphical elements
- inputs, listing effects of
- interfaces
- mission statements
- outputs
- questions
- restrictions
- restrictions
- rules, defining
- sound effects
- Web site resources
- process of
- programming
- prototyping
- developer tools (PersonalJava)
- IDE (Integrated Development Environment)
- JavaCheck
- Nokia 9201 Communicator
- PersonalJava emulation environment
- SDK (Software Development Kit)
- development environments
- Forte
- J2ME Wireless Toolkit
- MIDlet life cycles
- WAP applications
- Devices
- color displays
- displays
- embedded chips
- frame rates
- high-end
- JavaPhone
- JavaTV
- PersonalJava 3.0
- PingTel
- Sharp NC-10 IP
- Jump
- limitations
- memory
- micro
- minimum speeds
- smart cards
- Waba
- DGPS (differential GPS)
- Dialtones
- differential GPS. See DGPS
- DIG (Disney Internet Group International)
- Digital Bridges Web site
- <DIR> tag
- direction attribute
- directories, src (Siemens Toolkit)
- Disney Internet Group International. See DIG
- Display class
- <DISPLAY> tag
- Displayable class
- Displayable getCurrent() method
- displays
- color
- MIDP devices
- multiple display support
- dispose() method
- <DL> tag
- <do> tag
- command types
- label attribute
- name attribute
- type attribute
- documentation
- Dope Wars
- double buffering
- downloading components
- Draw Poker
- draw strings (Graphics class)
- drawArc()
- drawArc(int x, int y, int width, int height, int startAngle, int
arcAngle) method
- drawChar(char character, int x, int y, int anchor) method
- drawChars(char[ ] data, int offset, int length, int x, int y, int anchor)
method
- drawImage(Image img, int x, int y, int anchor) method
- drawing
- drawLine(int x1, int y1, int x2, int y2) method
- drawPolyline method()
- drawRect()
- drawRect(int x, int y, int width, int height) method
- drawRoundRect()
- drawRoundRect(int x, int y, int width, int height, int arcWidth, int
arcHeight) method
- drawString(String str, int x, int y, int anchor) method
- drawSubstring(String str, int offset, int len, int x, int y, int anchor)
method
- <DT> tag
- DummyCrash interface
- Dwango Web site
E
- E-OTD (Enhanced Observed Time Differential)
- Eastridge Technology Web site
- ECMAScript
- <em> tag
- EMAILADDR
- embedded chips
- EmbeddedJava
- emergency category (Location Based Services)
- emoji
- emptyok attribute
- EMS (Enhanced Messaging Service)
- features supported by
- overview
- emulator, Siemens SL45i
- enemy players, sprite movement
- engines
- artificial intelligence
- audio
- graphics
- multiplayer
- physics
- Enhanced Messaging Service. See EMS
- Enhanced Observed Time Differential. See E-OTD
- EnumerateRecords() method (RecordStore class)
- environments (development)
- Forte
- J2ME Wireless Toolkit
- MIDlet life cycles
- Ericsson R380
- Ericsson WapIDE Web site
- Error alerts
- Esmertec Jbed Micro Edition CDLC
- ETSI (European Telecommunications Standards Institute)
- Europe mobile telephone support
- European Telecommunications Standards Institute. See ETSI
- Eurotel Web site
- events
- Canvas class
- KEY PRESSED EVENT
- KEY RELEASED EVENT
- processEvent() method
- exceptions (RecordStore class)
- EXCLUSIVE lists
- EXCLUSIVE-CHOICE
- execution codes, reduced size
- EXIT command
- ExtendedImage class (Siemens game)
- eXtensible Markup Language. See XML
- extension APIs, interfaces
- extensions (J2ME)
- ExtremeQuiz
- Ezos Web site
F
- field sets
- Fight Arena
- Fight KO
- File class (Siemens game)
- files
- audio
- filmstrip
- JAR
- command-line development
- reduced size
- PNG
- fillArc(int x, int y, int width, int height, int startAngle, int
arcAngle) method
- fillPolygon() method
- fillRect(int x, int y, int width, int height) method
- fillRoundRect(int x, int y, int width, int height, int arcWidth, int
arcHeight) method
- filmstrip file
- first generation (1G) wireless networks
- Fisupeli
- Flash SMS
- flashes
- Flirtylizer
- Float class
- floating-points
- FOMA (Freedom of Mobile Multimedia Access)
- Font class
- Font getFont() method
- fonts (Graphics class)
- football games (Picofun Football)
- FootballQuiz
- Form class
- javax.microedition.lcdui.Item
- methods
- <FORM> tag
- Form(String title) method
- Form(String title, Item[ ] items) method
- format attribute
- formatting, text formatting tags
- Forte
- Foundation Profile
- Fours game
- FPS (frames per second)
- constructors
- memory management
- sprite movement
- static method
- fragmentation (memory), MIDP devices
- Frame property (sprites)
- frame per second (FPS)
- Freedom of Mobile Multimedia Access. See FOMA
- Fruit Machine (slots)
- Fujitsu F503i
- full-duplex protocols
- FunCaster.com games
- FunCaster.com Web site
- functions, GSM (Siemens SL45i)
G
- g.lock() method
- g.unlock() method
- gamasutra.com Web site
- Game class
- GameCanvas class
- gamedev.net Web site
- GameThread loop
- GarageClient MIDlet
- GarageServlet servlet
- Garbage Collector, code optimization
- Gauge class
- Gauge(String label, boolean interactive, int maxValue, int initialValue)
method
- gdse.com Web site
- General Packet Radio Services. See GPRS
- genres
- Geographic Information System. See GIS
- Get Nessie!
- get(int itemNum) method
- getAltText() method
- getAppProperty(String key) method
- getBlueComponent() method
- getCaretPosition()
- getChars(char[ ] data) method
- getClipHeight() method
- getClipWidth() method
- getClipX() method
- getClipY() method
- getColor() method
- getConstraints()
- getCurrent() method
- getDate method
- getDate()
- getDefaultTimeout() method
- getExpiration method
- getFile method
- getFont() method
- getGameAction(int keyCode) method
- getGraphics() method
- getGrayScale() method
- getGreenComponent() method
- getHeight() method
- getHost method
- getImage() method
- getImage(int elementNum) method
- getInputMode() method
- getKeyCode(int gameAction) method
- getKeyName(int keyCode) method
- getLabel()
- getLastModified() method (RecordStore class)
- getLayout() method
- getLength method
- getMaxSize() method
- getMaxValue() method
- getMelody() method
- getNextRecordID() method (RecordStore class)
- getNumRecords() method (RecordStore class)
- getPort method
- getPriority() method (Thread class)
- getProtocol method
- getRecord() method (RecordStore class)
- getRedComponent() method
- getRequestMethod method
- getRequestProperty method
- getSelectedFlags(boolean[ ] selectedArray) method
- getSelectedIndex() method
- getSize() method (RecordStore class)
- getSizeAvailable() method (RecordStore class)
- getSprite(int index) method
- getSpritePosition(Sprite sprite) method
- getString() method
- getString(int elementNum) method
- getStrokeStyle() method
- getText() method
- getTicker() method
- getTimeout() method
- getTitle() method
- getTranslateX() method
- getTranslateY() method
- getType method
- getType() method
- getURL method
- getValue() method
- getWidth() method
- GIF formats
- Gif2Wbmp Web site
- GIS (Geographic Information System)
- Gladiator
- GliderAction
- global data
- Global Positioning System. See GPS
- Global System for Mobile Communications. See GSM
- global variables, listing effects of
- Globtel Web site
- GO action type
- <go> tag
- Gobang
- golf
- Miracle Golf
- On The Green
- Wentworth Golf
- Gomoku Narabe
- Gosling, James
- GOSUB action type
- GoZing Web site
- GPRS (General Packet Radio Services)
- GPS (Global Positioning System)
- Graphical User Interface. See GUIs
- GraphicObject class (Siemens game)
- GraphicObjectManager class (Siemens game)
- graphics
- reduced size
- sprites. See sprites
- Graphics class
- clipRect(int x, int y, int width, int height) method
- drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
method
- drawChar(char character, int x, int y, int anchor) method
- drawChars(char[ ] data, int offset, int length, int x, int y, int anchor)
method
- drawImage(Image img, int x, int y, int anchor) method
- drawLine(int x1, int y1, int x2, int y2) method
- drawRect(int x, int y, int width, int height) method
- drawRoundRect(int x, int y, int width, int height, int arcWidth, int
arcHeight) method
- drawString(String str, int x, int y, int anchor) method
- drawSubstring(String str, int offset, int len, int x, int y, int anchor)
method
- fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
method
- fillRect(int x, int y, int width, int height) method
- fillRoundRect(int x, int y, int width, int height, int arcWidth, int
arcHeight) method
- getBlueComponent() method
- getClipHeight() method
- getClipWidth() method
- getClipX() method
- getClipY() method
- getColor() method
- getFont() method
- getGrayScale() method
- getGreenComponent() method
- getRedComponent() method
- getStrokeStyle() method
- getTranslateX() method
- getTranslateY() method
- methods
- methods, list of
- MIDP UI
- arcs
- colors
- draw strings
- fonts
- Images
- lines
- rectangles
- rounded rectangles
- stroke type
- setClip(int x, int y, int width, int height) method
- setColor(int red, int green, int blue) method
- setColor(int RGB) method
- setGrayScale(int value) method
- setStrokeStyle(int style) method
- translate(int x, int y) method
- graphics engines
- Graphics GetGraphics() method
- Graphics.drawImage() method
- Graphics.drawline()
- GSM (Global System for Mobile Communications)
- calls
- Missed Dialing Numbers (MDN)
- SMS messages
- GSM Location Positioning
- GUIs (Graphical User Interface), Screen class
- Alert
- Form
- Item
- List
- Text Box
- Ticker
H
- half-duplex protocols, HTTP
- Handheld Device Markup Language. See HDML
- handheld devices
- programming advantages
- programming disadvantages
- handset-based solution (positioning technology)
- Handspring Visor Edge
- Handy Games
- Hangman
- Hashtables, memory usage
- hasPointerEvents() method
- hasPointerMotionEvents() method
- hasRepeatEvents() method
- HCENTER constant
- HDML (Handheld Device Markup Language)
- <ACTION> tag
- activities
- <DISPLAY> tab
- hyperlinks
- images
- overview
- syntax
- WML versus
- Header PNG file
- heap memory
- height attribute
- Height property (sprites)
- HELP action type
- Help alert
- HELP command
- help command type, <do> tag
- help screens
- hidden fields
- hideNotify() method
- high-end devices
- JavaPhone
- JavaTV
- PersonalJava 3.0
- PingTel
- Sharp NC-10 IP
- high-level UI
- Hikkoshi Meijin
- Hitachi CdmaOne C451H
- Holy Moley Web site
- home appliances
- Home Run Derby
- Hornell, Karl
- HP chaiVM for Pocket PC
- <HR> tag
- href attribute
- hspace attribute
- HTTP (Hyper Text Transport Protocol)
- connections
- limitations
- multiple connections
- proxies
- racing car game
- connections
- polling
- session tracking
- reading in data
- response code
- setup mode
- Hudson Soft games
- Hunters & Collectors
- Hyper Text Transfer Protocol. See HTTP
- hyperlinks, creating
I
- i monde Web site
- <i> tag
- i-JADE Web site
- i-Mimic Web site
- i-mode games
- i-mode networks
- character sets
- cost of using
- development tools
- emoji
- handset color screens
- overview
- page size
- partner sites
- testing
- i-Skiing
- i-Tool Web site
- iAppli profile
- IApplication class
- IApplication GetCurrentApp() method
- iApplis
- ADF (Application Descriptor File)
- architecture
- Bandai networks
- basic program example
- Capcom
- Challenge! The Hard Boiled Way
- developing
- Hudson Soft games
- Mini Game Tengoku services
- overview
- packages
- com.nttdocomo.io
- com.nttdocomo.lang
- com.nttdocomo.net
- com.nttdocomo.ui
- com.nttdocomo.util
- programs
- activating
- dropping within i-mode cHTML page
- provisioning
- resume() method
- Samurai Romanesque
- Sega
- Squiral
- IBM J9 VM
- IceBlox
- id attibute
- iDEN (Integrated Digital Enhanced Network)
- IDEs
- IEmulator Web site
- IJavaEngine i503 Web site
- Image class
- Image getImage() method
- Image getImage(int index) method
- Image Item
- Image property (sprites)
- image/vnd.wap.wbmp
- ImageItem class
- ImageItem(String label, Image img, int layout, String altText)
method
- images
- alt attribute
- converting
- displaying
- downloading
- formats
- HDML and
- loading
- Siemens SL45i
- blitting
- GraphicObject class methods
- sprites
- loading
- size reduction
- transparency
- src attribute
- unpacking (RecordStore class)
- Images class (Graphics class)
- BASELINE constant
- BOTTOM constant
- clipping
- double buffering
- HCENTER constant
- LEFT constant
- RIGHT constant
- TOP constant
- translating
- VCENTER constant
- <img> tag
- IMPLICIT lists
- IMPLICIT-CHOICE
- IMT 2000 (International Mobile Telecommunications 2000)
- iname attribute, <select> tag
- incremental parsers
- INFO alert
- Information alerts
- initEnemies() method
- initialization, sprite movement
- initPowerups() method
- input fields
- attributes, list of
- option groups
- input methods
- <INPUT> tag
- input/output classes (Siemens game)
- InputConnection interface
- inputs, listing effects
- insert(char[ ] data, int offset, int length, int position)
method
- insert(int elementNum, String stringPart, Image imagePart)
method
- insert(int itemNum, Item item) method
- insert(String src, int position) method
- insertSprite(Sprite sprite, int position) method
- installing PersonalJava applet
- instant wireless messaging
- EMS (Enhanced Messaging Service)
- gaming and
- MMS (Multimedia Messaging Service)
- MMSC (Multimedia Message Service Center)
- overview
- SMIL (Synchronized Multimedia Integration Language)
- overview
- SMS (Short Message Service)
- character lengths of
- Flash SMS
- Kuulalaakeri
- overview
- PDU mode
- popularity of
- rates
- receiving messages
- sending messages
- services, list of
- Smart Messaging
- SMS Gateway
- SMS-JDK
- SMSC (Short Message Service Center)
- Text mode
- Unicode messages
- int append(Image image) method
- int append(Item item) method
- int append(String str) method
- int append(String stringElement, Image imageElement) method
- int charsWidth(char[ ] ch, int offset, int length) method
- int charWidth(char ch) method
- int getBaselinePosition() method
- int getBlueComponent() method
- int getCaretPosition() method
- int getChars(char[ ] data) method
- int getClipHeight() method
- int getClipWidth() method
- int getClipX() method
- int getClipY() method
- int getColor() method
- int getCommandType() method
- int getConstraints() method
- int getDefaultTimeout() method
- int getFace() method
- int getGameAction(int keyCode) method
- int getGrayScale() method
- int getGreenComponent() method
- int getHeight() method
- int getInputMode() method
- int getKeyCode(int gameAction) method
- int GetKeypadState() method
- int getLayout() method
- int getMaxSize() method
- int getMaxValue() method
- int getPriority() method
- int getRedComponent() method
- int getSelectedFlags(boolean[ ] selectedArray_return) method
- int getSelectedIndex() method
- int getSize() method
- int getStrokeStyle() method
- int getStyle() method
- int getTimeout() method
- int getTranslateX() method
- int getTranslateY() method
- int getValue() method
- int getWidth() method
- int numColors() method
- int setMaxSize(int maxSize) method
- int size() method
- int stringWidth(String str) method
- int substringWidth(String str, int offset, int len) method
- Integrated Digital Enhanced Network. See iDEN
- interfaces
- Choice
- com.nttdocomo.io
- com.nttdocomo.ui
- com.nttdocomo.util
- CommandListener
- Connection
- CrashCarEffect
- DummyCrash
- extension APIs
- ItemStateListener
- java.io package
- java.lang package
- java.util package
- javax.microedition.io package
- javax.microedition.lcdui package
- javax.microedition.rms package
- listing effects of
- SiemensCrash
- International Mobile Telecommuncations 2000. See IMT 2000
- Internet Protocols. See IPs
- InvalidRecordIDException
- IPs (Internet Protocols)
- isAlive() method (Thread class)
- isColor() method
- isDoubleBuffered() method
- isInteractive() method
- isMutable() method
- isometric engines
- isSelected(int elementNum) method
- Item class
- Choices
- Date
- Image Item
- Listener
- methods
- Progress Meters
- String Items
- Text Field
- Ticker
- ITEM command
- Item get(int index) method
- ItemStateListener interface
- ivalue attribute (<select> tag)
J
- J2EE (Java 2 Platform, Enterprise Edition)
- J2ME(Java 2 Micro Edition)
- advantages
- configurations
- Connected Device Configuration. See CDC
- Connected, Limited Device Configuration. See CLDC
- Devices
- Kilobyte virtual machine. See KVM
- layers
- networking
- Connection interface
- DataInputStream class
- DataOutputStream class
- extensions
- game packets
- game server setup
- MIDP specification
- XML
- Palm games
- profiles
- CLDC
- Mobile Information Device Profile. See MIDP
- J2ME Foundation Profile
- J2ME Multimedia Profile
- J2ME Wireless Toolkit
- J2SE (Java 2 Platform, Standard Edition)
- JAM (Java Application Manager)
- Jamdat games
- Gladiator
- Home Run Derby
- Krazy Konondrum
- Rock-Paper-Scissors
- JAR files
- command-line development
- reduced size
- graphics
- obfuscators
- object-oriented programming
- Java. See also Micro Java
- Java 2 Micro Edition. See J2ME
- Java 2 Platform, Enterprise Edition
- Java 2 Platform, Standard Edition
- Java Application Manager (JAM)
- Java Database Connector
- Java Dynamic Management
- Java Game Profile
- Java Management Extensions (JMX)
- Java Naming and Directory Interface (JNDI)
- Java Native Interface (JNI)
- Java Virtual Machine Debugging Interface (JVMDI)
- Java Virtual Machine Profiler Interface (JVMPI)
- Java virtual machines. See JVMs
- java.awt.Panel
- java.io package
- java.lang package
- java.lang.Thread object
- java.util package
- java.util.Timer class
- JavaCard
- JavaCheck program
- JavaPhone
- JavaServer Pages. See JSPs
- Javasoft KVM for the Palm
- Javasoft MIDP for The PalmOS
- Javasoft PersonalJava for Windows CE
- JavaTV
- javax.microdeition.lcdui.Canvas
- javax.microdeition.lcdui.Form
- javax.microdeition.lcdui.Graphics
- arcs
- colors
- draw strings
- fonts
- Images
- lines
- rectangles
- rounded rectangles
- stroke type
- javax.microdeition.lcdui.Screen
- javax.microedition.io package
- javax.microedition.lcdui package
- javax.microedition.lcdui.Choice
- javax.microedition.lcdui.ChoiceGroup
- javax.microedition.lcdui.DateField
- javax.microedition.lcdui.Font
- javax.microedition.lcdui.Gauge
- javax.microedition.lcdui.Image
- javax.microedition.lcdui.ImageItem
- javax.microedition.lcdui.Item
- javax.microedition.lcdui.List
- javax.microedition.lcdui.StringItem
- javax.microedition.lcdui.TextBox
- javax.microedition.lcdui.TextField
- javax.microedition.lcdui.Ticker
- javax.microedition.midlet package
- javax.microedition.rms package
- JBuilder
- JDBC (Java Database Connector)
- JDMK (Java Dynamic Management)
- Jeode EVM (Jeode Embedded Virtual Machine )
- Jerry the Cat
- JMX (Java Management Extensions)
- JNDI (Java Naming and Directory Interface)
- JNI (Java Native Interface)
- join() method (Thread class)
- Jornada
- JPG formats
- Jshape games
- JSPs (JavaServer Pages)
- chat application example
- game lobby example
- Jump
- JVM layer
- JVMDI (Java Virtual Machine Debugging Interface)
- JVMPI (Java Virtual Machine Profiler Interface)
- JVMs (Java virtual machines)
- CLDC specifications
- Esmertec Jbed Micro Edition CDLC
- HP chaiVM for Pocket PC
- IBM J9 VM
- Javasoft KVM for the Palm
- Javasoft MIDP for The PalmOS
- Javasoft PersonalJava for Windows CE
- Jeode EVM
- Kadasystems Kada VM
- kAWT Extended KVM (xKVM)
- MicroJBlend
- NSIcom CrEme
- SAVAJE XE Operating System
- Transvirtual Kaffe
K
- Kadasystems Kada VM
- kAWT Extended KVM (xKVM)
- KEY PRESSED EVENT
- KEY RELEASED EVENT
- KeyboardInputPreferred method
- KeyListener
- keypad presses
- keyPressed(int keyCode) method
- keyReleased(int keyCode) method
- keyRepeated(int keyCode) method
- Kilobyte virtual machine. See KVM
- Kittyhawk profile
- Krazy Konondrum
- Ktoolbar (J2ME Wireless Toolkit)
- Kuulalaakeri tool (SMS gateway)
- KVM (Kilobyte virtual machine)
- KvmVer parameter
- kXML
L
- label attribute (<do> tag)
- lables, creating
- <large> tag
- LastModified parameter
- LaunchAt parameter
- layers, J2ME
- LAYOUT values (ImageItem object)
- LBS (Location Based Services)
- LEFT constant
- length() method
- Let Me Alone
- levels
- LG Telecom p510 (i-Book)
- LG Telecom phones
- LIF (Location Interoperability Forum)
- lifecycles ((MIDlets)
- Lifestylers
- Light class (Siemens game)
- lines (Graphics class)
- Linux, handheld PDAs
- List class
- List(String title, int listType) method
- List(String title, int listType, String[ ] stringElements, Image[ ] int
append(String stringElement, Image imageElement) method
- ListBox element
- Listener Item class
- listeners
- KeyListener
- SoftKeyListener class
- listings
- about screens
- adding collision detection
- adding collision detection to sprites
- adding paint() method
- adding to Sprite class
- Cache class
- CarItemFilter class
- CarStore class
- checkCollision() and checkFinishLine() methods
- choosing tracks
- command listener
- CrashCarEffect interface
- creating a car using primitives
- creating and calling forms
- creating car stores
- creating collision areas
- creating collision levels
- creating game threads
- DummyCrash interface
- Final Game Loop
- Form object splash screen
- GameCanvas class
- help screens
- improved painting
- initializing sprites
- loading an image resource
- loading images from afar
- MIDlet implementation
- moving sprites
- painting sprites
- player sprite child class
- ProgressForm
- SiemensCrash interface
- SpriteManager class
- StartForm class
- using clipping rectangles
- Weapon class
- LMA Football Quiz
- loadImage() method
- loading
- data, Siemens SL45i
- images
- sound
- sprite images
- local data
- Location Based Services
- Location Ineroperability Forum
- Location Management
- lock() method
- logical classes
- login parameter
- logout parameter
- loop attribute
- loops, GameThread
M
- M format input field
- m-commerce (mobile commerce)
- M-Type
- MADK Web site
- Mah Jong
- Managers (sprite)
- <MARQUEE> tag
- masks (sprites)
- mathematical classes
- Matsushita/Panasonic FOMA P2101V
- Matsushita/Panasonic P503i phones
- Matsushita/Panasonic P503iS phones
- MAX PRIORITY
- maxlength attribute (input fields)
- maxLength() method
- MDN (Missed Dialing Numbers), GSM functions
- media, downloading
- melodies, Siemens SL45i
- Melody class (Siemens game)
- MelodyComposer class (Siemens game)
- memory
- heap
- management
- MIDP devices
- application
- fragmentation
- limitations
- Siemens SL45i
- storage
- working
- optimization
- usage
- arrays
- Hashtables
- String
- StringBuffer
- Vectors
- <MENU> tag
- menus, MIDP
- Mermaid
- messaging
- EMS (Enhanced Messaging Service)
- features supported by
- overview
- gaming
- MMS (Multimedia Messaging Service)
- MMSC (Multimedia Message Service Center)
- overview
- SMIL (Synchronized Multimedia Integration Language)
- overview
- SMS (Short Message Service)
- character lengths of
- Flash SMS
- Kuulalaakeri
- overview
- popularity of
- rates
- receiving messages
- sending messages
- services, list of
- Smart Messaging
- SMS Gateway
- SMS-JDK
- SMSC (Short Message Service Center)
- Text mode
- Unicode messages
- UM (unified messaging)
- <META> tag
- methods
- abstract void paint()
- abstract void start()
- activeCount() (Thread class)
- Alert class
- AlertType
- cancel() (Timer class)
- Canvas class
- checkCollision()
- checkFinishLine()
- ChoiceGroup class
- Command class
- Connector class
- currentThread() (Thread class)
- DateField class
- Display class
- Displayable class
- dispose()
- drawPolyline
- File class
- fillPolygon()
- Font class
- Form class
- g.lock()
- g.unlock()
- Gauge class
- getMelody()
- getPriority() (Thread class)
- GraphicObject class
- Graphics class
- Graphics GetGraphics()
- HTTP connections
- HTTP setup mode
- IApplicaton GetCurrentApp
- Image class
- Images class
- initEnemies()
- int getHeight()
- int GetKeypadState()
- int getWidth()
- isAlive()
- Item class
- javax.microedition.lcdui.Choice
- javax.microedition.lcdui.DateFiel
- javax.microedition.lcdui.Gauge
- javax.microedition.lcdui.ImageItem
- javax.microedition.lcdui.Item
- javax.microedition.lcdui.StringItem
- javax.microedition.lcdui.TextBox
- join() (Thread class)
- List class
- lock()
- MelodyComposer class
- MIDlet class
- moveSprite()
- notify
- notifyAll()
- notifyListeners
- paint()
- play()
- processEvent()
- resume()
- run()
- schedule() (Timer class)
- scheduleatFixedRate() (Timer class)
- Screen class
- setColor()
- setEnabled()
- setOrigin()
- setPriority() (Thread class)
- setVisible()
- sleep()
- SoftKeyPressed()
- SoftKeyReleased()
- Sprite class
- SpriteManager class
- start()
- static
- stop() (Thread class)
- String GetSourceUrl()
- StringItem class
- System.currentTimeMillis()
- terminate()
- TextBox class
- TextField class
- Ticker class
- unlock()
- unuse()
- update()
- URLEncoder.encode()
- Vibrator class
- void repaint()
- void setCurrent()
- void terminat()
- void resume()
- wait()
- yield() (Thread class)
- Metrowerks Code Warrior
- micro devices
- advantages of J2ME
- Asia
- Europe
- North America
- support
- future of
- history of
- Micro Java, supported devices
- Micro Racer game
- adding weapons
- Cache class
- GameCanvas class
- Weapon class
- artificial intelligence
- control
- future considerations
- online garage
- adding garage to game menu
- Game class
- GarageClient
- persistent data
- power-ups
- sprites
- microedition.encoding property
- microedition.locale property
- microedition.platform property
- microedition.profiles property
- MicroJBlend
- Microsoft Money for PocketPC
- MIDlet class
- MIDlets
- Alert class
- Cache class
- creating
- command-line development
- development environments
- pre-verification
- Display class
- Form class
- GarageClient
- life cycles
- properties
- RecordStore class
- Screen class
- MIDP (Mobile Information Device Profile)
- advantages
- Alert class
- AlertType class
- Canvas class
- custom commands
- events
- game key
- pointer handler
- touch screens
- classes
- commands
- devices
- limitations
- Motorola Accompli A008
- disadvantages
- games
- BlockBuster
- Cocoasoft games
- Cube
- Dope Wars
- DrawPoker
- Holy Moley
- Jshape
- MIDP-Man
- RomeBlack Mobile Internet Maze Game
- Spruce Team games
- Graphics class
- arcs
- colors
- draw strings
- fonts
- Images
- lines
- rectangles
- rounded rectangles
- stoke type
- limitations
- menus
- networking
- non-standard profiles
- packages
- java.io
- java.lang
- java.util
- javax.microedition.io
- javax.microedition.lcdui
- javax.microedition.midlet
- javax.microedition.rms
- plug-in for PersonalJava
- sound effects
- MIDP-Man
- Military Checkers
- MIME (Multipurpose Internet Mail Extension)
- MIN PRIORITY
- Mines
- Mini Game Tengoku services
- Miracle Detective
- Miracle Golf
- Miracle GP
- Miracle Quest
- Missed Dialing Numbers (MDN)
- mission statements
- missions
- Missile Command
- Mitsubishi D503i and D503iS
- Mitsubishi J-D05
- MMS (Multimedia Messaging Service)
- MMSC (Multimedia Message Service Center)
- overview
- SMIL (Synchronized Multimedia Integration Language)
- MMSC (Multimedia Message Service Center)
- mobile commerce. See m-commerce
- Mobile Information Device Profile. See MIDP
- mobile phones
- advantages of J2ME
- Asia
- Europe
- North America
- support
- Casio CdmaOne C452CA
- Ericsson R380
- Fujitsu F503i
- Hitachi CdmaOne C451H
- JavaPhone
- LG Telecom p510 (i-Book)
- LG Telecom phones
- Matsushita/Panasonic FOMA P2101V
- Matsushita/Panasonic P503i phones
- Matsushita/Panasonic P503iS phones
- Mitsubishi D503i and D503iS
- Mitsubishi J-D05
- Motorola Accompli 008/6288
- Motorola Accompli 009 PIC
- Motorola i50sx
- Motorola i85s
- NEC FOMA N2001
- NEC N503i
- Nokia 9210
- Nokia 9290 Communicator
- PingTel
- RIM/iPaq Blackberry
- Samsung
- Sharp J-SH07
- Sharp NC-10 IP
- Siemens SL45i
- Sony SO503i
- Toshiba J-T06
- mobile positioning
- LBS (Location Based Services)
- billing category
- emergency category
- GIS (Geographic Information System)
- location based information category
- Location Management
- tracking category
- LIF (Location Interoperability Forum)
- MPS (Mobile Positioning System)
- positioning technologies
- A-GPS (Assisted GPS)
- AOA (Angle Of Arrival)
- DGPS (differential GPS)
- E-OTD (Enhanced Observed Time Differential)
- GPS (Global Positioning System)
- GSM Location Positioning
- network-based solutions
- RF (radio frequency)
- TDOA (Time Difference Of Arrival)
- terminal and handset based solutions
- security/privacy layers
- WLIA (Wireless Location Industry Association)
- MobImage Web site
- Mortal Kombat
- Motorola Accompli 008/6288
- Motorola Accompli 009 PIC
- Motorola Accompli A008
- Motorola i50sx
- Motorola i85s
- movement, sprites
- collision detection
- creating game threads
- enemy player
- finishing games
- floating-point
- initialization
- moveSprite() method
- MPS (Mobile Positioning System)
- MTNSMS Web site
- Multimedia Message Service Center. See MMSC
- Multimedia Messaging Service. See MMS
- multiplayer engines
- multiplayer games
- design
- client side
- HTTP considerations
- parameters
- server side
- playing
- turn-based
- multiple areas
- multiple levels
- MULTIPLE lists
- MULTIPLE-CHOICE
- Multipurpose Internet Mail Extension. See MIME
- multithreading. See also threads
- music
- Mystic Grapple
N
- N format input field
- Namco
- name attribute
- <A> tag
- <DISPLAY> tag
- <do> tag
- <INPUT> tag
- <select> tag
- Name variable
- NanoXML
- NEC FOMA N2001
- NEC N503i
- network-based solutions (positioning technology)
- networking, J2ME
- Connection interface
- DataInputStream class
- DataOutputStream class
- game packets
- game server setup
- MIDP specification
- XML
- networks (wireless networks)
- 1G (first generation)
- 2.5G (second and a half generation)
- 2G (second generation)
- 3G (third generation)
- loading sprite images
- new state, threads
- Nextel Web site
- nGame games
- Alien Fish Exchange
- Carrier Force
- Chop Suey Kung Fu
- Data Clash
- nGame Web site
- NoClassDefFoundError method
- NoInputPreferred method
- Nokia 9201 Communicator
- Nokia 9210
- Nokia 9290 Communicator
- Nokia Web site
- non-validating parsers
- NOOP action type
- NORM PRIORITY
- North America
- notify() method
- notifyAll() method
- notifyListeners() method
- NSIcom CrEme
- NTT DoCoMo Web site
- numbered lists
- numColors() method
- NUMERIC Text Field
O
- OBEX protocol
- obfuscators
- <OBJECT> tag
- object-oriented programming
- objects
- java.lang.Thread
- SpriteManager
- Ohajiki Daisenso
- OK command
- <OL> tag
- On The Green
- online garage (Micro Racer)
- adding garage to game menu
- Game class
- GarageClient
- onpick attribute
- open() method (Connector class)
- openDataInputStream method
- openDataOutputStream method
- openInputStream method
- openOutputStream method
- Openwave SDK Web site
- opponents (sprites)
- optimization
- code
- class size
- clock speed
- constructors
- Garbage Collector
- memory
- size reduction
- speed
- sprite movement
- static methods
- drawing
- FPS (frames per second)
- memory usage
- power consumption
- <option> tag
- options command type, <do> tag
- OTA (over the air)
- OutputConnection interface
- outputs, listing effects of
- over the air (OTA), Siemens SL45i
P
- <p> tag
- Pac-Man
- packages
- PackageURL parameter
- packets (data format)
- pagers
- paint() method
- paint(Graphics g) method
- painting
- SpriteManager class
- sprites
- Palm games
- PalmOS
- PalmWarp
- parsers
- password fields
- PDA profile
- PDAs (Personal Digital Assistants)
- Ericsson R380
- J2ME profile
- Java virtual machines (JVMs)
- Esmertec Jbed Micro Edition CDLC
- HP chaiVM for Pocket PC
- IBM J9 VM
- Javasoft KVM for the Palm
- Javasoft MIDP for the PalmOS
- Javasoft PersonalJava for Windows CE
- Jeode EVM
- Kadasystems Kada VM
- kAWT Extended KVM (xKVM)
- MicroJBlend
- NSIcom CrEme
- SAVAJE XE Operating System
- Transvirtual Kaffe
- Linux
- PalmOS
- Sharp Zaurus SL-5000
- Siemens SX45
- Siemens SIMpad SL4
- Symbian EPOC
- Windows CE
- PDC (Personal Digital Cellular)
- PDU (Protocol Description Unit) mode (SMS)
- peer-to-peer networking, game server setup
- persistent data, adding to Micro Racer
- Personal Digital Assistants. See PDAs
- Personal Digital Cellular. See PDC
- Personal Profile
- Personal Trusted Device. See PTD
- PersonalJava
- APIs, list of
- applet, installing
- design considerations
- developer tools
- double buffering
- input methods
- MIDP plug-in
- NoClassDefFoundError method
- overview
- PJAE (PersonalJava Application Environment)
- timer events
- unsupported features
- phone book, GSM functions
- PhoneBook class (Siemens game)
- PHONENUMBER Text Field
- phones
- mobile phones
- advantages of J2ME
- Asia
- Casio CdmaOne C452CA
- Ericsson R380
- Europe
- Fujitsu F503i
- Hitachi CdmaOne C451H
- JavaPhone
- LG Telecom p510 (i-Book)
- LG Telecom phones
- Matsushita/Panasonic FOMA P2101V
- Matsushita/Panasonic P503i phones
- Matsushita/Panasonic P503iS phones
- Mitsubishi D503i and D503iS
- Mitsubishi J-D05
- Motorola Accompli 008/6288
- Motorola Accompli 009 PIC
- Motorola i50sx
- Motorola i85s
- NEC FOMA N2001
- NEC N503i
- Nokia 9210
- Nokia 9290 Communicator
- North America
- PingTel
- RIM/iPaq Blackberry
- Samsung SCH-X130, SCH-X230, SCH-X350, and SCH-X350
- Sharp J-SH07
- Sharp NC-10 IP
- Siemens SL45i
- Sony SO503i
- support
- Toshiba J-T06
- smartphones
- physics engines
- PicoFun games
- PicoFun Web site
- Pincer Checkers
- PingTel
- pixels, drawing sprites
- Pixo Web site
- PJAE (PersonalJava Application Environment)
- <PLAINTEXT> tag
- platforms. See J2SE; J2EE; J2ME
- play() method
- player sprites
- playtesting (game design process)
- playing
- audio files
- racing car game
- PNG file
- Pocket Internet Explorer
- Pocket Outlook 2000
- pointer handler (Canvas class)
- pointerDragged(int x, int y) method
- pointerPressed(int x, int y) method
- pointerReleased(int x, int y) method
- polling, car racing game
- Pong action game example
- PositionalInputPreferred method
- positioning. See mobile positioning
- postpaid phone plans
- power batteries
- power-ups, adding to Micro Racer
- <PRE> tag
- pre-verification
- predefined movement
- prepaid phone plans
- preproduction (game design process)
- artificial intelligence
- background art
- background music
- documentation
- game levels
- genre, selecting
- action games
- adventure games
- card games
- cloning
- combat games
- games of chance
- puzzle games
- role playing games
- simulation games
- sports games
- strategy games
- toy games
- trivia games
- word games
- global variables
- graphical elements
- inputs, listing effects of
- interfaces
- mission statements
- outputs, listing effects of
- questions about, answering
- restrictions
- designing around
- designing within
- rules, defining
- sound effects
- Web site resources
- PREV action type
- prev command type (<do> tag)
- priorities, threads
- privacy, mobile positioning
- process() function
- processEvent() method
- processors, MIDP devices
- Profile layer (J2ME)
- profiles, J2ME
- CLDC
- Mobile Information Device. See MIDP
- profit sharing programs, mobile carriers
- programming
- game design process
- handheld devivces
- Progress Meters Item class
- properties
- protected abstract void paint(Graphics g) method
- protected boolean removeImageStore() method
- protected void hideNotify() method
- protected void keyPressed(int keyCode) method
- protected void keyReleased(int keyCode) method
- protected void keyRepeated(int keyCode) method
- protected void pointerDragged(int x, int y) method
- protected void pointerPressed(int x, int y) method
- protected void pointerReleased(int x, int y) method
- protected void showNotify() method
- Protocol Description Unit mode. See PDU mode
- protocol stack (WAP)
- protocols
- full-duplex
- half-duplex
- Hyper Text Transfer Protocol. See HTTP
- prototyping (game design process)
- provisioning
- proxies, HTTP
- Psion netBook
- Psion RevoPlus
- PTD (Personal Trusted Device)
- public byte[ ][ ] getImageDataFromStore() method
- public void destroyApp(boolean unconditional) method
- public void pauseApp() method
- public void startApp() method
- public void storeImageData(byte[ ][ ] imageData) method
- puzzle games
- PyWeb Web site
Q
- Quake
- Qualcomm pdQ
- Quizcall
R
- radio buttons
- radio frequency (RF)
- Rags 2 Riches
- receiving
- data, Siemens SL45i
- SMS messages
- RecordEnumerator handling
- recordId number
- RecordStore class
- code
- exceptions
- methods
- addRecord()
- deleteRecord()
- deleteRecordStore()
- EnumerateRecords()
- getLastModified()
- getNextRecordID()
- getNumRecords()
- getRecord()
- getSize()
- getSizeAvailable()
- setRecord()
- MIDlet code
- RecordEnumerator handling
- recordId number
- RecordStoreExeption
- RecordStoreFullException
- RecordStoreNotFoundException
- RecordStoreNotOpenException
- rectangles, Graphics class
- Remote Method Invocation. See RMI
- removeCommand(Command cmd) method
- removeImageRecord()
- repaint() method
- repaint(int x, int y, int width, int height) method
- Research In Motion
- reset command type, Do tag
- resetMelody() method
- response code, HTTP
- restrictions
- designing around
- designing within
- resume() method
- Retrologic Web site
- RETURN action type
- RF (radio frequency)
- RFCOMM protocol
- RIGHT constant
- RIM Blackberry IDE
- RIM/iPaq Blackberry
- RMI (Remote Method Invocation)
- Rock-Paper-Scissors
- Role Playing Games (RPG)
- RombBlack Mobile Internet Maze Game
- root level
- rounded rectangles, Graphics class
- rules
- run() method
- Runnable interface
- implementing threads using
- run() method
- runnable state, threads
- running flag, Thread class
S
- Samsung SCH-X130, SCH-X230, SCH-X350, and SCH-X350
- Samurai Romanesque
- SAVAJE XE Operating System
- schedule() method (Timer class)
- scheduleAtFixedRate() method (Timer class)
- SciFiQuiz
- ScratchPad
- Screen class
- Alert
- Form
- Item
- List
- methods
- Text Box
- Ticker
- SCREEN command
- screens
- SDK (Software Development Kit)
- second and a half generation (2.5G) wireless networks
- second generation (2G) wireless networks
- security
- security layer (WAP protocol stack)
- Seed no Bohken
- Seed no Meikyu Tanken
- Sega
- <select> tag
- sell parameter
- SEND action type
- sending
- data, Siemens SL45i
- SMS messages
- Kuulaaakeri tool
- sample server code
- SMS Gateway tool
- SMS-JDK tool
- server-side WAP
- development environments
- JSPs (JavaServer Pages)
- chat application example
- game lobby example
- server configuration
- servers
- Garage servlet
- peer-to-peer networking
- servlets, GarageServlet
- session layer (WAP protocol stack)
- session tracking
- set(int elementNum, String stringPart, Image imagePart) method
- set(int itemNum, Item item) method
- set-top boxes
- setAltText(String text) method
- setBPM(int bpm) method
- setChars(char[ ] data, int offset, int length) method
- setClip(int x, int y, int width, int height) method
- setColor() method
- setColor(int red, int green, int blue) method
- setColor(int RGB) method
- setCommandListener() method
- setCommandListener(CommandListener listener) method
- setConstraints(int constraints)
- setCurrent() method
- setCurrent(Alert alert, Displayable nextDisplayable) method
- setCurrent(Displayable nextDisplayable) method
- setDate(Date date)
- setEnabled() method
- setGrayScale(int value) method
- setImage(Image img) method
- setInputMode(int mode) method
- setItemStateListener(ItemStateListener listener) method
- setLabel(String label) method
- setLayout(int layout) method
- setMaxSize(int maxSize)
- setMaxValue(int maxValue) method
- setOrigin() method
- setPriority() method (Thread class)
- setRecord() method (RecordStore class)
- setRepeat method
- setSelectedFlags (boolean[ ] selectedArray) method
- setSelectedIndex(int elementNum, boolean selected) method
- setString(String str) method
- setString(String text) method
- setStrokeStyle(int style) method
- setText(String text) method
- setTicker(Ticker ticker) method
- setTime method
- setTimeout(Alert.FOREVER) method
- setTimeout(int time) method
- Settings dialog (Wireless Toolkit)
- setTitle(String title) method
- setType(AlertType type) method
- setValue(int value)
- setVisible() method
- Shapez
- Sharp J-SH07
- Sharp NC-10 IP
- Sharp Zaurus SL-5000
- Short Message Service Center. See SMSC
- Short Message Service. See SMS
- showNotify() method
- Siemens game classes
- Call
- Connection
- ConnectionListener
- ExtendedImage
- File
- GraphicObject
- GraphicObjectManager
- Light
- Melody
- MelodyComposer
- PhoneBook
- SMS
- Sound
- Sprite
- TiledBackground
- Vibrator
- Siemens SL45i
- com.siemens.mp.game package
- com.siemens.mp.gsm package
- calls
- loading files
- Missed Dialing Numbers (MDN)
- receiving data
- saving files
- sending data
- SMS messages
- compiling
- DataExchange software
- emulator
- images
- blitting
- GraphicObject class methods
- MMC (multimedia memory card)
- mobile phone vibrations
- over the air (OTA)
- setup
- sounds
- sprites
- creating
- flashes
- masks
- sample code
- TiledBackground class
- tiles
- Web site
- Siemens SX45
- SiemensCrash interface
- Siemens SIMpad SL4
- Simple Messaging System. See SMS
- simulation games
- single-step document parsers
- size, sprites
- size attribute
- input fields and
- <select> tag
- size() method
- Sky Arts Web site
- sleep() method (Thread class)
- slots
- <small> tag
- smart cards
- Smart Messaging
- smart movement
- smartphones
- SMIL (Synchronized Multimedia Integration Language)
- sample file
- supported formats
- SMS (Short Message Service)
- character lengths of
- Flash SMS
- Kuulalaakeri
- overview
- PDU mode
- popularity of
- rates
- receiving messages
- sending messages
- services, list of
- Smart Messaging
- SMS Gateway
- SMS-JDK
- SMSC (Short Message Service Center)
- Text mode
- Unicode messages
- SMS (Simple Messaging System) games
- Blue Factory
- BotFighters
- Fisupeli
- GSM functions
- Vizzavi
- SMS class (Siemens game)
- SMSC (Short Message Service Center)
- Snake
- SOFT1 action type
- SOFT2 action type
- SoftKeyListener class
- softKeyPressed() method
- SoftKeyReleased() method
- Software Development Kit (SDK)
- Sony SO503i
- Sorcery
- sound
- effects
- creating with MIDP
- listing effects of
- loading
- Siemens SL45i
- Sound class (Siemens game)
- spam
- specifications, CLDC JVM
- speed, MIDP devices
- splash screens
- sponsorships
- sports games
- Sprint PCS Web site
- Sprite class
- SpriteManager class
- drawing optimizations
- methods
- sprite collision
- SpriteManager object
- sprites
- collision
- collision detection
- drawing
- frames
- images
- loading
- size reduction
- transparency
- managers
- movement
- collision detection
- creating game threads
- enemy player
- finishing games
- floating-point
- initialization
- opponents
- painting
- player sprites
- properties
- Siemens SL45i
- creating
- masks
- sample code
- TiledBackground class
- Spruce Team games
- SPsize parameter
- Squiral
- src attribute
- src directory (Siemens Toolkit)
- Standard Messaging System. See SMS
- start() method (Thread class)
- StartForm class
- startVibrator() method
- static data
- static Display getDisplay(MIDlet c) method
- static Font getDefaultFont() method
- static Font getFont(int face, int style, int size) method
- static Image createImage(byte[ ] imageData, int imageOffset, int
imageLength) method
- static Image createImage(byte[ ] imageData, int offset, int imageLength)
method
- static Image createImage(Image image) method
- static Image createImage(int width, int height) method
- static Image createImage(String name) method
- static methods
- stealing. See cloning
- STOP command
- stop() method (Thread class)
- stopVibrator() method
- storage
- J2ME device memory
- memory, MIDP devices
- storage:Image class
- storage:RecordStore class
- addRecord() method
- clearing
- code
- deleteRecord() method
- deleteRecordStore() method
- EnumerateRecords() method
- exceptions
- getLastModified() method
- getNextRecordID() method
- getNumRecords() method
- getRecord() method
- getSize() method
- getSizeAvailable() method
- MIDlet code
- RecordEnumerator handling
- setRecord() method
- unpacking images
- storyboarding
- strategy games
- StreamConnection interface
- Street Fighter
- action game example
- rules of
- String getAltText() method
- String getKeyName(int keyCode) method
- String getLabel() method
- String GetSourceUrl() method
- String getString() method
- String getString(int index) method
- String getText() method
- String getTitle() method
- String Items Item class
- String to String() method
- StringBuffers, memory usage
- StringItem class
- StringItem(String label, String text) method
- strings, memory usage
- stroke types, Graphics class
- <strong> tag
- Submit button, creating
- subscriptions, charging players for
- Sun
- Forte
- J2ME Wireless Toolkit. See J2ME Wireless Toolkit
- support, mobile telephones
- Symbian EPOC
- synchronizations, threads
- Synchronized Multimedia Integration Language. See SMIL
- System.currentTimeMillis() method
T
- table tags
- tags
- <A>
- <ACTION>
- anchor
- <b>
- <BLINK>
- <BLOCKQUOTE>
- <BR>
- case sensitivity
- <CENTER>
- <DD>
- <DIR>
- <DISPLAY>
- <DL>
- <do>
- <DT>
- <em>
- <FORM>
- <go>
- <HR>
- <I>
- <img>
- <INPUT>
- <large>
- <MARQUEE>
- <MENU>
- <META>
- <OBJECT>
- <OL>
- option
- <O>
- <PLAINTEXT>
- <PRE>
- <SELECT>
- <select>
- <small>
- <strong>
- <table>
- <td>
- text formatting
- <TEXTAREA>
- <tr>
- <U>
- <UL>
- user input
- checkboxes
- <do> tag
- field sets
- form example
- input fields
- option groups
- radio buttons
- variables
- Takoyaki King
- Tanks
- TargetDevice parameter
- Tciker class
- <td> tag
- TDMA (Time Division Multiple Access)
- TDOA (Time Difference Of Arrival)
- Tekken Command Battle
- telephones. See phones
- televisions, set-top boxes
- terminal-based solution (positioning technology)
- terminate() method
- testing. See also playtesting
- Text Box class
- text boxes, creating
- Text Field instance
- ANY
- CONSTRAINT MASK
- EMAILADDR
- NUMERIC
- PASSWORD
- PHONENUMBER
- Text class
- URL
- text fields
- text formatting
- EMS (Enhanced Messaging Service)
- tags
- Text mode (SMS)
- text/vnd.wap.wml
- text/vnd.wap.wmlscript
- <TEXTAREA> tag
- TextBox class
- TextBox(String title, String text, int maxSize, int constraints)
method
- TextField class
- TextField(String label, String text, int maxSize, int constraints)
method
- third generation (3G) wireless networks
- threads
- animation threads
- blocked state
- considerations
- creating
- deadlocks
- defined
- implementing, using Timer class
- MAX PRIORITY
- MIN PRIORITY
- new state
- NORM PRIORITY
- runnable state
- start() method
- stop() method
- synchronizations and
- Thread class
- activeCount() method
- currentThread() method
- getPriority() method
- implementing threads using, listing of
- isAlive() method
- join() method
- run() method
- Runnable interface
- Runnable interface, implementing threads using
- running flag
- setPriority() method
- sleep() method
- timer example
- yield() method
- wait() method
- Tic Tac Toe
- Ticker class
- Ticker getTicker() method
- Ticker(String str) method
- tickers, creating
- TiledBackground class (Siemens game)
- tiles, Siemens SL45i
- Time Difference of Arrival. See TDOA
- Time Division Multiple Access. See TDMA
- Time variable
- Timer class
- cancel() method
- implementing threads using, listing of
- run() method
- schedule() method
- scheduleAtFixedRate() method
- timers
- title attribute
- TOP constant
- Top Trumps
- Torunda!
- Toshiba J-T06
- touch screens, Canvas class
- toy games
- <tr> tag
- tracking category (Location Based Services)
- tracks
- transaction layer (WAP protocol stack)
- translate(int x, int y) method
- translating, Graphics class
- transparency, sprite images
- Transvirtual Kaffe
- Trantor Web site
- treads, dead state
- triggerVibrator(int duration) method
- trivia games
- Blue Factory games
- examples of
- Truffle Graphical Toolkit
- Turibaka Kibun
- turn-based games
- type attribute
- <do> tag
- input fields and
- Type variable
- TypeCannon
U
- <U> tag
- <UL> tag
- UM (unified messaging)
- UMTS (Universal Mobile Telecoms Network)
- Uname parameter
- Unicode messages
- Unicode Web site
- unified messaging. See UM
- Uniform Resource Locators. URLs
- Universal Mobile Telecoms Network. See UMTS
- unknown command type
- unlock() method
- Unplugged Games Web site
- unuse() method
- update() method
- URL Text Field
- URLEncoder.encode() method
- URLs (Uniform Resource Locators)
- UseNetwork parameter
- user agents
- user input tags
- check boxes
- <do> tag
- field sets
- form example
- input fields
- option groups
- radio buttons
- variables
- user interface methods
V
- validating parsers
- value attribute
- input fields and
- select tag
- variables
- VCENTER constant
- vectors, memory usage
- velocity Vx (sprite property)
- velocity Vy (sprite property)
- vending machines, wireless messages and
- vibrations, Siemens SL45i mobile phones
- Vibrator class (Siemens game)
- videos, MIDP devices
- Virtua Fighter
- Visibility property (sprites)
- VisorPhone
- visual classes
- VisualPresenter component
- Vizzavi Web site
- voice activation
- VoiceXML
- WTAI (Wireless Telephony Application Interface)
- Voice Genie software
- VoiceClient software
- VoiceXML
- void addCommand(Command cmd) method
- void callSerially(Runnable obj) method
- void clipRect(int x, int y, int width, int height) method
- void delete(int index) method
- void delete(int offset, int length) method
- void drawArc(int x, int y, int width, int height, int startAngle, int
arcAngle) method
- void drawChar(char character, int x, int y, int anchor) method
- void drawChars(char[ ] data, int offset, int length, int x, int y, int
anchor) method
- void drawImage(Image img, int x, int y, int anchor) method
- void drawLine(int x1, int y1, int x2, int y2) method
- void drawRect(int x, int y, int width, int height) method
- void drawRoundRect(int x, int y, int width, int height, int arcWidth, int
arcHeight) method
- void drawString(String str, int x, int y, int anchor) method
- void drawSubstring(String str, int offset, int len, int x, int y, int
anchor) method
- void fillArc(int x, int y, int width, int height, int startAngle, int
arcAngle) method
- void fillRect(int x, int y, int width, int height) method
- void fillRoundRect(int x, int y, int width, int height, int arcWidth, int
arcHeight) method
- void insert(char[ ] data, int offset, int length, int position)
method
- void insert(int index, Item item) method
- void insert(int index, String stringElement, Image imageElement)
method
- void insert(String src, int position) method
- void processEvent() method
- Void Raider
- void removeCommand(Command cmd) method
- void repaint() method
- void repaint(int x, int y, int width, int height) method
- void resume() method
- void serviceRepaints() method
- void set(int index, Item item) method
- void set(int index, String stringElement, Image imageElement)
method
- void setAltText(String text) method
- void setChars(char[ ] data, int offset, int length) method
- void setClip(int x, int y, int width, int height) method
- void setColor(int red, int green, int blue) method
- void setColor(int RGB) method
- void setCommandListener(CommandListener l) method
- void setConstraints(int constraints) method
- void setCurrent() method
- void setCurrent(Alert alert, Displayable next) method
- void setCurrent(Displayable next) method
- void setDate(Date date) method
- void setFont(Font font) method
- void setGrayScale(int value) method
- void setImage(Image img) method
- void setInputMode(int mode) method
- void setItemStateListener(ItemStateListener iListener) method
- void setLabel(String label) method
- void setLayout(int layout) method
- void setMaxValue(int maxValue) method
- void setSelectedFlags(boolean[ ] selectedArray) method
- void setSelectedIndex(int index, boolean selected) method
- void setString(String str) method
- void setString(String text) method
- void setStrokeStyle(int style) method
- void setText(String text) method
- void setTicker(Ticker newTicker) method
- void setTimeout(int time) method
- void setType(AlertType type) method
- void setValue(int value) method
- void terninate() method
- void translate(int x, int y) method
- vspace attribute
W
- W-CDMA (Wideband Code Division Multiple Access)
- Waba
- WAE (Wireless Application Environment)
- wait() method
- Wall Street Wizard
- WAP (Wireless Application Protocol)
- Alien Fish Exchange
- architecture
- Carrier Force
- Chop Suey Kung Fu
- content of
- Data Clash
- Funcaster.com
- Handy Games
- Jamdat games
- limitations
- nGame
- PicoFun
- protocol stack
- Rags 2 Riches
- server-side
- development environments
- JSPs (JavaServer Pages)
- server configuration
- Unplugged Games
- version 2.0
- Void Raider
- WAP Forum
- WAP gateway
- wireless games
- Anagram
- casino games
- Code Breaker
- Fight KO
- Fours
- Hangman
- LMA Football Quiz
- Mines
- Quizcall
- Sorcery
- Tanks
- Tic Tac Toe
- Top Trumps
- Wentworth Golf
- Wireless Pets
- WML (Wireless Markup Language)
- anchor tag
- cards
- decks
- document definition tag example
- example code
- header example
- images
- table tags
- text formatting tags
- timers
- user input tags
- WMLScript
- Word Trader
- WAP Crates
- WAP Girlfriends
- WAP Knights
- WAP Massacre
- WAP Tanks
- WapProfit i-mode Editor Web site
- WARNING alert
- Warning alerts
- Wbmp Butterfly Web site
- WbmpCreator Web site
- WDP (Wireless Datagram Protocol)
- Weapon class
- weapons, adding to Micro Racer
- Cache class
- GameCanvas class
- variables
- Weapon class
- Web sites
- Airtouch (Verizon)
- Alphaworks
- Anfy Team
- AT&T
- Block Buster
- Blue Factory
- BotFighters
- C. media Compact NetFront
- Cingular
- Cocoasoft
- Condensity
- Digital Bridges
- Dwango
- Eastridge Technology
- Ericsson WapIDE
- Eurotel
- Ezos
- Fisupeli
- Funcaster.com
- gamasutra.com
- gamedev.net
- gdse.com
- Gif2Wbmp
- Globtel
- GoZing
- Handy Games
- Holey Moley
- i monde
- i-JADE
- i-Mimic
- i-Tool
- iDEN Update
- IEmulator
- IjavaEngine i503
- JBuilder
- Jump
- MADK
- MIDP-Man
- MobImage
- MTNSMS
- Nextel
- nGame
- Nokia
- NTT DoCoMo
- OpenWave SDK
- PicoFun
- Pixe
- PyWeb
- Retrologic
- RIM Blackberry IDE
- Siemens
- Sky Arts
- Sprint PCS
- Trantor
- Unicode
- Unplugged Games
- Vizzavi
- Waba
- WapProfit i-mode Editor
- Wbmp Butterfly
- WBmpCreator
- Yospace
- Zucotto WHITEboard
- Wentworth Golf
- Wideband Code Division Multiple Access. See W-CDMA
- width attribute
- Width property (sprites)
- Windows CE
- Wireless Application Environment. See WAE
- Wireless Application Protocol. See WAP
- Wireless Datagram Protocol. See WDP
- wireless devices
- Wireless Location Industry Association. See WLIA
- Wireless Markup Language. See WML
- wireless messaging, UM (unified messaging)
- wireless networks
- 1G (first generation)
- 2.5G (second and a half generation)
- 2G (second generation)
- 3G (third generation)
- J2ME
- Connection interface
- DataInputStream class
- DataOutputStream class
- game packets
- game server setup
- MIDP specification
- XML
- Wireless Pets
- Wireless Session Protocol. See WSP
- Wireless Telephony Application Interface. See WTAI
- Wireless Transaction Protocol. See WTP
- Wireless Transport Layer Security. See WTLS
- WLIA (Wireless Location Industry Association)
- WML (Wireless Markup Language)
- anchor tag
- cards
- id attribute
- switching to new
- title attribute
- code example
- decks
- document definition tag example
- header example
- images
- table tags
- text formatting tags
- timers
- user input tags
- checkboxes
- <do> tag
- field sets
- form example
- input fields
- option groups
- radio buttons
- variables
- versus HDML
- WMLScript
- accessing
- GuessNumber.wml example
- RandomGuess.wml example
- word games, examples of
- Word Trader, rules of
- working memory, MIDP devices
- WSP (Wireless Session Protocol)
- WTAI (Wireless Telephony Application Interface)
- WTLS (Wireless Transport Layer Security)
- WTP (Wireless Transaction Protocol)
X
- x format input field
- x position (sprite property)
- xHTML
- XML (eXtensible Markup Language)
- xpress Window Toolkit. See xWT
- xWT (xpress Window Toolkit)
Y
- y position (sprite property)
- yield() method (Thread class)
- Yospace Web site
Z