HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
Build several fully functional games as well as a game engine to use for programming cell phone and mobile games with Beginning Mobile Phone Game Programming! The included CD provides the tool, code and graphics necessary to complete all exercises covered in the chapters. Beginning Cell Phone Game Programming demystifies wireless game programming by providing clear, practical lessons using the J2ME Game API. You will learn how to use the most popular mobile programming language, Java, to build compact games that can run on any Java-enabled device, including mobile phones, pagers and handheld computers. You will also learn to add a splash screen, create a demo mode, keep track of high scores, and test, debug, and deploy your games.
Topics covered include:
Constructing a Mobile Game Skeleton
Constructing a Mobile Game Skeleton
Introduction.
I. GETTING STARTED WITH MOBILE GAME PROGRAMMING.
1. Games on the Go.
Essentials of Mobile Gaming
The First Mobile Phone Game
The Market for Mobile Games
The Culture of Mobile Games
The Bleeding Edge of Mobile Gaming
Getting to Know Mobile Platforms
Java 2 Micro Edition (J2ME)
Binary Runtime Environment for Wireless (BREW)
Symbian
Windows Mobile Smartphone
Java As a Mobile Game Platform
What Is Java?
Why Java?
Java and Mobile Game Programming
A Quick J2ME Primer
Configurations and the Connected Limited Device Configuration (CLDC)
Profiles and the MIDP
Summary
Field Trip
2. Mobile Java Game Development Basics.
Game Design Basics
Coming Up with the Basic Idea
Developing the Storyline
Establishing the Play Modes
A J2ME Game Development Primer
Getting to Know the J2ME Wireless Toolkit
Using KToolbar
Managing MIDlet Game Projects
Building a Game MIDlet
Testing a Game MIDlet
The J2ME Emulator and Physical Devices
Summary
Field Trip
3. Constructing a Mobile Game Skeleton.
Exploring the J2ME APIs
The CLDC API
The MIDP API
Understanding MIDlets
Inside a MIDlet
The Basics of MIDlet Development
Building the Skeleton Example Program
Writing the Program Code
Preparing the MIDlet for Distribution
Building and Testing the Finished Product
Summary
Extreme Game Makeover
II. MOBILE GAME PROGRAMMING ESSENTIALS.
4. Mobile Game Graphics 101.
Mobile Graphics Basics
Understanding the Graphics Coordinate System
Learning the Basics of Color
Working with Graphics in J2ME
Drawing Graphics Primitives
Drawing Text
Drawing Images
Building the Olympics Example Program
Writing the Program Code
Testing the Finished Product
Building the Slideshow Example Program
Writing the Program Code
Testing the Finished Product
Summary
Extreme Game Makeover
5. Using Sprite Animation.
Understanding Animation
Animation and Frame Rate
Making the Move to Computer Animation
2D Versus 3D Animation
Analyzing 2D Sprite Animation
Frame-Based Animation
Cast-Based Animation
Applying Sprite Animation to Mobile Games
Working with the Layer and Sprite Classes
Achieving Smooth Animation with the GameCanvas Class
Building the UFO Example Program
Writing the Program Code
Testing the Finished Product
Summary
Extreme Game Makeover
6. Handling Mobile User Input.
Assessing Mobile Game Input
Handling Key Input with the GameCanvas Class
Revisiting the Sprite Class
Detecting Sprite Collisions
Working with Frame-Animated Sprites
Building the UFO 2 Example
Writing the Program Code
Testing the Finished Product
Summary
Extreme Game Makeover
7. Henway: Paying Tribute to Frogger.
The Scoop on Henway
Designing the Game
Developing the Game
Writing the Game Code
Testing the Game
Summary
Extreme Game Makeover
8. Making Noise with Tones.
Sound and Mobile Games
A Tonal Sound and Music Primer
Querying a Phone for Its Audio Capabilities
Playing Tones in Mobile Games
Playing Individual Tones
Playing a Tone Sequence
Building the UFO 3 Example Program
Writing the Program Code
Testing the Finished Product
Summary
Field Trip
9. Playing Digitized Sound and Music.
A Digitized Sound Primer
Getting to Know Wave Sounds
Creating and Editing Wave Sounds
Revisiting the Player Interface
Playing Wave Sounds in Mobile Games
Playing a Wave from a JAR File
Playing a Wave from a URL
Feeling the Music with MIDI
Playing MIDI Music in Mobile Games
Playing a MIDI Song from a JAR File
Playing a MIDI Song from a URL
Building the Henway 2 Example Game
Writing the Game Code
Testing the Finished Product
Summary
Field Trip
III. VIRTUAL WORLDS AND MOBILE GAME INTELLIGENCE.
10. Creating Tiled Game Layers.
What Is a Tiled Layer?
Creating Maps for Tiled Layers
Using the Mappy Map Editor
Using the Tile Studio Map Editor
Formatting Map Information for Games
Working with the TiledLayer Class
Creating a Tiled Layer
Moving and Drawing a Tiled Layer
Building the Wanderer Example Program
Writing the Program Code
Testing the Finished Product
Summary
Field Trip
11. Managing Multiple Game Layers.
Dealing with Multiple Game Layers
Working with the LayerManager Class
Animating Tiled Layers
Building the Wanderer 2 Example Program
Designing the Tiled Layer Maps
Writing the Program Code
Testing the Finished Product
Summary
Extreme Game Makeover
12. High Seas: A Game for the Pirate in You.
The Scoop on High Seas
Designing the Game
Putting Together the Water Map
Putting Together the Land Map
Developing the Game
Creating a Drift Sprite
Declaring the Member Variables
Assembling the start() Method
Piecing Together the update() Method
Drawing the Game Screen
Starting a New Game
Safely Placing Sprites
Testing the Game
Summary
Extreme Game Makeover
13. Teaching Games to Think.
The Least You Need to Know About AI
Exploring Types of Game AI
Roaming AI
Behavioral AI
Strategic AI
Developing an AI Strategy
Teaching Sprites to Think...Sort Of
Designing the Chase Sprite
Coding the Chase Sprite
Building the High Seas 2 Example Game
Writing the Program Code
Testing the Finished Product
Summary
Extreme Game Makeover
IV. TAKING ADVANTAGE OF THE WIRELESS NETWORK.
14. Mobile Game Networking Essentials.
Multiplayer Game Basics
Turn-Based Games
Event-Based Games
Network Game Problems and Solutions
State Synchronization
Input Synchronization
A Hybrid Solution
Communicating over a Network with Sockets
Stream Sockets
Datagram Sockets
Network Programming and J2ME
Creating Datagram Packets
Sending Datagram Packets
Receiving Datagram Packets
Building the Lighthouse Example
Designing the Client and Server
Writing the Program Code
Testing the Finished Product
Summary
Field Trip
15. Connect 4: A Classic Game Goes Wireless.
The Scoop on Connect 4
Designing the Game
Graphics and User Interface
Game Logic
Networking
Developing the Game
The Connect 4 Client and Server
The Connect 4 Game Canvas
The Connect 4 Game State
Testing the Game
Summary
Field Trip
16. Debugging and Deploying Mobile Games.
Game Debugging Basics
Single-Stepping Code
Watching Variables
Using Breakpoints
Game Debugging Strategies
Bug Prevention
Bug Detection
Choosing a Debugger
Deploying Mobile Games
Understanding Over-the-Air Provisioning
Preparing Your Game for Deployment
Tweaking Your Web Server
Testing OTA Provisioning with KToolbar
Summary
Field Trip
V. SPRUCING UP YOUR GAMES.
17. Optimizing Mobile Java Games.
Understanding Mobile Game Optimization
Optimizing for Maintainability
Optimizing for Portability
Optimizing for Size
Optimizing for Speed
General Mobile Game Optimization Tips
Reducing Memory Usage
Minimizing Network Data
Eliminating Unnecessary Graphics
Java Code Optimization Tricks
Compiling Without Debug Information
Eliminating Unnecessary Evaluations
Eliminating Common Subexpressions
Taking Advantage of Local Variables
Expanding Loops
Code Shrinking and Obfuscation
Profiling Your Mobile Game Code
Monitoring Mobile Game Memory Usage
Putting Mobile Game Optimization into Perspective
Summary
Extreme Game Makeover
18. Space Out: Paying Tribute to Space Invaders.
The Scoop on Space Out
Designing the Game
Developing the Game
Creating a Moving Sprite
Declaring the Member Variables
Assembling the start() Method
Piecing Together the update() Method
Drawing the Game Screen
Starting a New Game
Adding Aliens, Missiles, and Explosions
Testing the Game
Summary
Extreme Game Makeover
19. Keeping Track of High Scores.
The Importance of Logging Your Achievements
Getting to Know the Java RMS
Understanding Records and Record Stores
Exploring the RecordStore Class
Preparing High Score Data for Storage
Building the Space Out 2 Example Game
Designing the Game Enhancements
Writing the Game Code
Testing the Finished Product
Summary
Field Trip
VI. APPENDIXES.
Appendix A. Java Game API Reference.
The GameCanvas Class
Member Constants
Constructor
Methods
The Layer Class
Methods
The Sprite Class
Member Constants
Constructors
Methods
The TiledLayer Class
Constructor
Methods
The LayerManager Class
Constructor
Methods
Appendix B. Mobile Game Programming Resources.
Micro Dev Net
J2ME Gamer
J2ME.org
Forum Nokia's Mobile Games Community
Wireless Developer Network
GameDev.net
Gamasutra
Game Developer Magazine
Gamelan
JavaWorld
The Official Java Website
Appendix C. Creating Graphics for Mobile Games.
Assessing Game Graphics
Determining the Game Screen Size
Reaching the Target Audience
Establishing a Game Setting and Mood
Adhering to a Graphics Style
Exploring Graphics Tools
Image Alchemy
Paint Shop Pro
Graphic Workshop
Creating and Editing Graphics
Line-Art Graphics
3D Rendered Graphics
Scanned Photography and Video-Captured Graphics
Background Graphics and Textures
Animated Graphics
Finding Graphics
Bonus: Java Programming Primer - CD-ROM.
Index.