Cover image for Palm OS Game Programming.
Palm OS Game Programming.
Title:
Palm OS Game Programming.
Author:
Pleis, Nicholas.
ISBN:
9781592001958
Personal Author:
Physical Description:
1 online resource (464 pages)
Contents:
Title -- Copyright -- Dedication -- Acknowledgments -- About the Author -- Contents at a Glance -- Contents -- Introduction -- About This Book -- System Requirements -- Development Tools -- Using the CD-ROM -- Chapter Summary -- Conventions -- Thank You -- Part 1 -- CHAPTER 1 Getting Started -- SO YOU WANT TO BE A GAME PROGRAMMER -- WHO IS THIS BOOK FOR? -- HOW TO CHOOSE YOUR DEVICE -- THE LONG HAUL -- WHAT YOU'LL NEED -- Choosing a Compiler -- Other Software -- UNDERSTANDING GAME DEVELOPMENT -- The Development Cycle -- Conception -- Implementation -- Testing -- Support -- Go Team! (or Go Solo) -- Getting Ready -- CHAPTER 2 The Hardware -- THE PDA -- A Brief History -- Thinking Like a User -- The Future of PDAs -- THE PALM PHILOSOPHY -- "Sophisticated Simplicity" -- Looking to the Future -- The Desktop Companion -- PALM INPUT -- The Touch Screen -- Inside the Display -- Designing for the Touch Screen -- Graffiti -- Hard Keys -- Alternative Input Methods -- Designing Input -- SIMPLE IS BETTER -- Under the Hood -- Memory -- File Management -- SHORTCOMINGS -- Not a Desktop Machine -- Storage and Code Design -- Smaller Is Better, Isn't It? -- SUMMARY -- CHAPTER 3 Writing Your First Program -- HELLO WORLD -- Not Really C -- The Code -- Taking a Closer Look -- Launch Codes -- Program Structure -- THE PALM EVENT LOOP -- Understanding Events -- Using the Event Manager -- COMPILING YOUR PROGRAM -- GCC -- Compiling Code -- Compiling Resources -- CodeWarrior -- DEBUGGING CODE -- The Palm OS Error API -- Debugging with POSE -- ROMs -- Running POSE -- Installing Your Application -- Debugging -- Gremlins -- SUMMARY -- EXAMPLES -- Part 2 -- CHAPTER 4 The Bare Essentials -- SETTING UP -- Full Screen or Windowed? -- WORKING WITH RESOURCES -- Introducing the Bitmap -- The Resource Compiler -- PiLRC -- Resource Files -- Icons -- Forms -- String -- Bitmaps.

Bitmap Families -- Alert Box -- Compiling Resources -- Loading a Resource -- DRAWING YOUR BITMAP -- Creating Windows -- A Simple Way to Draw -- DOUBLE BUFFERING -- What Is Double Buffering? -- Creating a Secondary Buffer -- Flipping -- THE CANVAS CLASS -- The Basic Design -- Requirements -- Implementation -- Working with a Canvas -- GETTING THINGS GOING WITH THE SYSTEMMANAGER -- Polling the OS -- ROM Version -- Color Depth -- Using the SystemManager -- WORKING WITH COLOR -- SUMMARY -- EXAMPLES -- CHAPTER 5 Reading and Writing Files -- A BREAK FROM TRADITION -- Palm Databases -- THE DATA MANAGER -- Creating a New Database -- Opening a Database -- Records -- Creating Records -- Writing Records -- Retrieving Records -- Deleting and Archiving Records -- Cleaning Up -- Data Manager Error Codes -- FILE STREAMING -- Opening a Stream -- Reading from a Stream -- Writing to a Stream -- Cleaning Up -- Controlling Streams -- Finding the End of File (EOF) -- The File Pointer -- FileSeek -- FileRewind -- FileTell -- Error Codes -- SUMMARY -- CHAPTER 6 Bring on the Sprites -- WHAT IS A SPRITE? -- Bringing Your Games to Life -- A Typical Sprite -- Capabilities -- Implementation -- Sprite Position -- Coordinate Systems -- Drawing the Sprite -- WORKING WITH ANIMATION -- How Animation Works -- A Simple Example -- Timing -- Controlling Animation -- TRANSPARENCY -- What Is a Mask? -- Making Sprites Transparent -- Using Transparency Wisely -- A PALM-SIZED SPRITE LIBRARY -- Working with Animation -- Design -- Implementation -- The GameTimer Class -- The Animation Class -- The AnimationManager -- Sprites -- Design -- Implementation -- SUMMARY -- EXAMPLES -- CHAPTER 7 Input -- INPUT AND THE OS -- Input Management -- SysHandleEvent -- MenuHandleEvent -- ApplicationHandleEvent -- Breaking the Mold -- EventType Structure -- THE TOUCH SCREEN -- Using Graffiti -- The keyDownEvent.

The Graffiti Manager -- Tracking the Stylus -- THE BUTTONS -- The Hard Key Dilemma -- Handling Hard Keys -- THE FUTURE -- THE Input CLASS -- Designing a Reusable Input System -- General Concerns -- Implementation 1: Polling -- Implementation 2: Dispatching -- Choosing an Input Method -- Implementation -- The Polling System -- The Singleton Polling Object -- The Dispatch System -- SUMMARY -- EXAMPLE -- CHAPTER 8 Working with Tiles -- UNDERSTANDING TILES -- What Is a Tile Exactly? -- Layers -- Collision Detection -- IMPLEMENTING A TILE ENGINE -- Tile Sets -- Map Format -- Header -- Body -- A Simple Format -- Tile Engine Classes -- The Scene Class -- Scrolling -- The Map Class -- The TileSet Class -- The Tile Class -- Efficiency -- SUMMARY -- EXAMPLE -- CHAPTER 9 Physics: The Science of Your World -- WHY IS PHYSICS IMPORTANT? -- A World without Physics -- What Is Physics? -- BASIC COLLISION DETECTION -- Bounding Boxes -- Detecting Collisions -- Optimizing Detection -- Implementing a Collision Scheme -- The Collision Lists -- Checking for Collisions -- KINEMATICS EQUATIONS: THE MATHEMATICS OF MOTION -- Linear Motion -- Basic Concepts -- Displacement -- Velocity -- Acceleration -- The Equations of Motion -- Example 1: Finding Distance Travelled -- Example 2: Finding an Object's New Velocity -- Putting Kinematics to Work -- INFLUENCING MOTION BY FORCE -- May the Force… -- Newton's Laws -- The First Law of Motion -- The Second Law of Motion -- The Third Law of Motion -- Forces, Practically Speaking -- Force and Mass -- RESPONDING TO COLLISIONS -- IMPLEMENTING A PHYSICS SYSTEM -- Design -- Implementation -- Vectors -- Forces -- Overhauling Physics_Object -- The Physics_System Class -- Persistent Forces -- SUMMARY -- EXAMPLE -- CHAPTER 10 Bringing It All Together: Building a Reusable Game Engine -- THE FRAMEWORK -- What's a Framework?.

The PGL_Presentation Class -- Input and the Framework -- PGL-MAN: A GAME EXAMPLE -- The User Interface -- Bitmap Buttons -- Receiving Input -- Text Field Resources -- Working with the Control -- Retrieving Text -- Setting the Text Field -- Displaying Text -- Working with Fonts -- Changing Draw Color -- Basic Game Architecture -- The Welcome Screen -- The High Scores Screen -- Gameplay -- The Database -- The Maze -- The Sprites -- Creating the .PDB -- The Game Code -- Loading -- Gameplay -- Moving the Player -- Working with Enemies -- SUMMARY -- EXAMPLES -- Part 3 -- CHAPTER 11 Multiplayer Games -- DESIGNING FOR MULTIPLAYER -- 1. Design Early, Design Often -- 2. Interaction -- 3. Different Devices, Different Experiences -- 4. Cheating -- 5. Multiplayer Option or a True Multiplayer Game? -- COMMUNICATING VIA SOCKETS -- Communication Methods -- Peer-to-Peer Networking -- Client/Server Networking -- Net Support -- Establishing a Connection -- Addresses and Ports -- Loading the Net Library -- Opening a Socket -- Address Binding -- Making a Connection -- Receiving a Connection -- Sending and Receiving Data -- Sending Data -- Receiving Data -- Closing a Socket -- INTERNET GAME PROGRAMMING -- Implementing a Multiplayer Game -- A Typical Multiplayer Game -- Client/Server Relationship -- Getting to Know Your Peers -- Starting the Game -- Playing the Game -- Ending the Game -- SUMMARY -- CHAPTER 12 Artificial Intelligence -- WHAT IS ARTIFICIAL INTELLIGENCE? -- SI TECHNIQUES -- Finite State Machines -- Environment-Based SI -- Genetic Programming -- Neural Networks -- PRACTICAL SI ON THE PALM OS -- Path Finding -- Right Turn Avoidance -- Forward Looking Avoidance -- A* -- Decision Making -- States -- The State Machine -- Multiple State Machines -- Modifying the State Machine -- Environmental SI -- Broadcasting Conditions -- Interacting with the Environment.

FUZZY LOGIC AND MACHINE REASONING -- A Brief Introduction to Set Theory -- Limitation of Traditional Sets -- Fuzzy Sets -- Fuzzy Set Theory -- SUMMARY -- EXAMPLES -- CHAPTER 13 Advanced Topics -- MULTISEGMENT APPLICATIONS -- General Workarounds -- Segmenting CodeWarrior Applications -- Creating a Multisegment Application -- Converting to a Multisegment Application -- Segmenting a PRC-Tools Application -- The Definition File -- Function Attributes -- The Assembly Stub File -- LOCALIZING YOUR APPLICATION -- The String Table -- The Palm OS International API -- Working with Text Buffers -- Text Comparison -- Finding a String -- CLIENT-SIDE PREDICTION -- Working with Client-Side Prediction -- Prediction Side-Effects -- THE GCC NEW ALLOCATOR -- A First Solution -- A New Problem -- A BITMAP CACHE -- A Brief Introduction to Bitmap Caching -- Implementing a Simple Cache -- PGL_CanvasCacheManager -- Using the PGL_CanvasCacheManager -- SUMMARY -- CHAPTER 14 Publishing Your Palm Game -- PUBLISHING YOUR GAME ON YOUR OWN WEB SITE -- USING A WELL-KNOWN WEB SITE -- USING A PUBLISHER -- SUMMARY -- APPENDIX A Sound -- THE SOUND MANAGER -- Playing a Note -- PLAYING MIDI FILES -- Sound Manager Callbacks -- APPENDIX B Selected Palm API Reference -- FORMS -- FrmAlert -- Prototype -- Parameters -- FrmCustomAlert -- Prototype -- Parameters -- FrmGetWindowHandle -- Prototype -- Parameters -- BITMAPS -- BmpSize -- Prototype -- Parameters -- BmpBitsSize -- Prototype -- Parameters -- BmpColortableSize -- Prototype -- Parameters -- BmpDelete -- Prototype -- Parameters -- BmpGetColortable -- Prototype -- Parameters -- DATA MANAGER -- DmOpenDatabase -- Prototype -- Parameters -- DmFindDatabase -- Prototype -- Parameters -- DmGetRecord -- Prototype -- Parameters -- DmReleaseRecord -- Prototype -- Parameters -- DmCloseDatabase -- Prototype -- Parameters -- FILE STREAMING -- FileOpen.

Prototype.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: