Download presentation
Presentation is loading. Please wait.
1
An Innovative wireless PDA Game Leung Pui Yin, Carol Lo Man Kit, Marcus
2
Outline Introduction Technologies in our project Pocket PC programming techniques Snapshot of our project Future work Conclusion Q&A
3
Introduction Current Pocket PC game Two players only Wired connection In our project, we will implement a complete wireless multiplayer Pocket PC game on Bluetooth
4
Technologies in our project Bluetooth Game API
5
Technologies in our project Bluetooth Two Bluetooth equipped devices can establish a connection together within 10 meters range of each other. It utilizes a radio-based link, so does not require a line-of-sight connection in order to communicate.
6
Technologies in our project Game API Handling graphics much more efficiently Useful to write blazing-fast games
7
Difference between GDI and GAPI User Code Display Hardware Display Driver Video Memory Windows GDI Device Context Display Hardware Display Driver Video Memory Windows CE GAPI Device ContextUser Code
8
Advantages of GAPI By bypassing Window CE GDI entirely, Game API allow programmers to directly access to Pocket PC video memory. It is useful in writing high-performance, real-time games. It is useful for video playback and other graphics applications.
9
Limitations of GAPI No support for “BitBlt” or “TransparentImage” Need to write a custom BitBlt routine by the programmer
10
Pocket PC programming techniques Pocket PC limitations Computational Power Memory Screen Size Due to these limitations, there are some problems that are not encountered in desktop PC programming.
11
Pocket PC Memory Management Shutting down applications without notifying user when memory is low Happens when an application needs more memory, e.g. instantiate more objects
12
Pocket PC Memory Management ThresholdValueDescription Hibernation200 KBWM_HIBERNATE message sent to longest inactive application Low- memory 128 KBWM_CLOSE message sent to longest inactive application Critical- memory 24 KBNo new applications can be opened.
13
Pocket PC Memory Management Implement a handler for the WM_HIBERNATE message Attempt to release as many resources as possible Avoid being closed unnoticeably
14
Game API Conventionally, the origin of a window is at the upper-left corner. Also, the pixel bits in a bitmap are organized in horizontal rows. However, the video memory retrieved from GAPI may NOT be organized as stated above, depending on the model.
15
Game API CASIO Pocket PC series Normal HP iPAQ series Origin at lower-left corner Organized in vertical column
16
Game API Solution 1 - use GXDisplayProperties *(VidMem + x * GXDisplayProperties.cbxPitch + y * GXDisplayProperties.cbyPitch) Accessing a pixel needs TWO multiplications, which are quite slow in Pocket PC, especially when bitblting.
17
Game API Solution 2 - use specific code for different model Much faster, comparing *(vidmem + x * cbxPitch + y * cbyPitch) *(vidmem++) in a for loop Troublesome to develop Many publicly available packages use this method
18
Thread Sprites movement and graphics update are performed one by one in game loop. Problems The job of sprites movement may be lengthy. The job of sprites movement would be done in a controlled way. Frame rate may drop.
19
Thread According to 1/10-second rule mentioned by Charles Petzold, the job of sprites movement should be handled separately by another thread. In our project, the job of each sprite movement and graphics update are handled by separate threads.
20
Thread Pool Thread creation and thread termination are very time consuming. Both thread creation and termination occur frequently in a multi-player game using multi-threading. We need to speed up these processes.
21
Thread Pool - Basic Idea Create enough threads at initial phase to avoid dynamic allocation of threads in the middle of the game. Not to terminate unused threads – reuse them when appropriate.
22
Object Pool Similar to thread pool, the aim of object pool is to reduce the overhead of object creation and termination. The major difference is that object pool has to manage different kinds of objects.
23
Snapshot of our project
27
Future work Wireless Multi-player game Synchronization problem on Bluetooth and Pocket PC
28
Conclusion Developing games on Pocket PC has its commercial values. It is a challenging task, involving many latest technologies. It needs some attentions not commonly noticed in desktop PC programming.
29
Q & A
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.