Presentation on theme: "1 Mobile Gaming Dr Abdennour El Rhalibi. 2 Agenda r Mobile game characteristics & introduction r Introduction to mobile game programming languages."— Presentation transcript:
1 Mobile Gaming Dr Abdennour El Rhalibi
2 Agenda r Mobile game characteristics & introduction r Introduction to mobile game programming languages
3 Game is ….
4 Platforms …
5 Mobile phone as game device Short-range communication Voice functionality Mobile; different usage scenarios Online connectivity Form factor Can be located Camera Media player Contacts & calendar Messaging
6 Mobile game possibilities Multiple users Multiple phones Short distance - Proximity gaming Multiple users One phone Short distance - Social toys Multiple users Multiple phones Long distance - Multiplayer/massively multiplayer gaming Integrated with environment - Pervasive gaming
7 Pervasive gaming r Always connected, always in the game, the game surrounds you m Game blends with your real life r Real world as game arena m Virtual game world draped on top of the real world m Interact with your environment and other players r Multi-modal m Multiple user interfaces
8 Examples of pervasive games BotFighters (2001) Undercover (2003) Mogi Mogi (2003) Majestic (2001) IPerG:
9 Mobile MMOGs r Mobile Massively Multiplayer Online Games, 3MOG r New MMOG titles m Tuned for mobile usability r (Add-ons to PC MMOGs) m Subsets of gameplay m Mobile accessories
10 3MOG examples r Tibia (CipSoft) r Era of Eidolon (watAgame) r Pocket Kingdom (Nokia) r Fantasy Worlds: Rhynn (AwareDreams) r Spirits (Nokia/Jadestone) r Age of Piracy (Nokia/Jadestone)
11 Proximity gaming r Proximity gaming m Ad-hoc network games with nearby people
12 Proximity gaming scenario Playfield grows with the addition of Cliffs spaceship. Cliff walks by, and can join the game without interruption. Sue and Bobby are playing together.
13 Social toys r Mobile phone as social entertainment device m At home, at the party, in a pub, on the picnic r Key features: m Always with you m Social adaptability m Physical device m Input: keys, joystick, (pen/touch) m Output: graphics, sound, music, vibrations m Connectivity
14 Game Component r Visual Art r Platform r Game Design r Story r Audio Connectivity (e.g. Bluetooth, WiFi, GSM … ) Etc ….
15 Challenges r Resolution (Screen Size & Color) r CPU & Memory r Keypad r Audio support (depends, some mobile supports MP3 as well) r Application Size
16 Game and Network Issues r Server-driven games m Ongoing cost for game provider m Secure data storage m Makes cheating harder m Bandwidth-to-user not normally a constraint r Peer-to-peer m Cheaper for game provider m Cheating easier m With large numbers of players, bandwidth becomes a bottleneck Particularly for Bluetooth, which is always hub-spoke configuration m Not feasible with legacy phones (requires IP address, SIP, or Bluetooth) m Player matching/discovery becomes a problem
17 Dealing with Latency r Always a problem with networks m On wired Internet, ms latency rules out street fighters m On 2G networks, ~1 second latency m If HTTP must be used, ~5 second latency m And generically, 3G doesnt solve all problemsin deployment still ~500ms latency r In general, must always work around latency issues r Approaches: m Turn-Based games (round robin or simultaneous movement) m Act-whenever m Slow update games m Shared solitaire games m Mask latency with game fantasy m Untie game outcomes from specific play configuration
18 Languages … Java – J2ME ( Micro-Edition ) / MIDP ( The Mobile Information Device Profile ) m Advantages: Cross Device Easy to manage / Lots of resource m Drawbacks: Limited to the J2ME Not Good for Performance Demanding Game Brew (Binary Runtime Environment for Wireless), OpenglES … r C/C++ m Advantages: Extreme Performance Prefect control to the hardware m Drawbacks: Require higher skill in programming Hard to manipulate
19 What does Java Offer r Dynamic delivery of content r Security r Cross-platform compatibility r Enhance user experience and interactive content r Offline access r Object Oriented Programming r Large developer community 2.5M and growing
20 J2ME (Micro-Edition) Goals r Provide third party development environment for application development m Portable m Secure m Small-footprint m Dynamic delivery of services m Independence of network technology r One goal was NOT to replace the current OEM ( Original Equipment Manufacturer ) capabilities, but to complement that functionality by allowing customization by third party vendors.
21 J2ME Concepts Concepts of standardisation created two levels of organisation for the J2ME Architecture m Configurations Connected Device Configuration (CDC) Connected, Limited Device Configuration (CLDC) m Profiles Mobile Information Device Profile (MIDP) KVM Configuration Libraries Profile(s) Configuration consist of both Kilo Virtual Machine
23 J2ME Configuration r Defines a minimum platform for a horizontal grouping of devices m Similar requirements on memory and processing power m Defines the Java Language and VM features available on group of devices
24 Platform Standardisation r CLDC ( Connected, Limited Device Configuration ) began in October of 1999 m Represented the building block for the lowest common denominator for small devices m Did not target any specific device m Had participation from eighteen companies
25 J2ME Platform Configurations r High-end consumer devices (CDC) m TV set-top boxes m Internet TVs m High-end wireless communication devices m Entertainment systems m Navigational systems r Low-end consumer devices (CLDC) m Cell Phones m Pagers m Personal Organizers
26 CLDC Java Virtual Machine Sun s Kilo Virtual Machine (KVM) m Designed for small resource-constrained devices m Small memory footprint (60K) for KVM m Minimum total memory 160K m 16/32-bit processors m Processor speed 8 to 32 MHZ
27 CLDC Hardware r Memory size is the only requirement for CLDC m At least 128K non-volatile for the KVM and CLDC Libraries m At least 32K of volatile for KVM runtime
28 J2ME Profiles r Defines requirements for a specific vertical market family of devices m Extends or is Layered on top of a configuration m Defines a standard Java platform for a vertical market device family, to ensure interoperability m Includes more granular domain specific class libraries than configuration
29 J2ME Profiles Standardisation r Mobile Information Device Profile (MIDP) began in November 1999 r MIDP: Set of Java APIs that is generally implemented on the Connected Limited Device Configuration (CLDC). r It provides a basic J2ME application runtime environment targeted at mobile information devices, such as mobile phones and two-way pagers. m Based on the CLDC configuration m Focused specifically on two-way wireless devices such as cell phones and pagers m Focus was on application model, user interface, networking, and storage APIs m Twenty-two companies participated in the MIDP expert working group
30 MIDP Hardware r Memory (added to CLDC memory) m 128K non-volatile for MIDP components m 8K non-volatile for application persistent data m 32K volatile for KVM r Display m Screen 96x54 m Display depth 1-bit m Pixel shape (aspect ratio) 1:1
31 MIDP Hardware r Input (one or more) m One-handed keypad (e.g. frogpad) m Two-handed keypad m Touch screen r Networking m Two-way m Wireless m Possibly intermittent m Limited bandwidth
32 MIDP Architecture Mobile Information Device (MID) CLDC MIDP Native System Software/Host Operating System MIDP Applications OEM-Specific Applications OEM-Specific Classes Native Applications
33 J2ME Development Process r Java files compiled to class files Class files pre-verified by the pre-verifier tool m Classes have additional attributes added for runtime verification r Class files are placed in jars and downloaded r Runtime verifier does a linear check on classes using pre-verification attributes m Attributes are ignored by the J2SE JVM
34 JBUILDER - MOBILE EDITION r For Java Mobile Developers m Java SDKs m Borland JDataStore m Sun J2ME Wireless Toolkit Nokia Developer s Suite for J2ME m Third party productivity tools and components
35 Build in Debugger
36 Integrated with Emulator
37 J2ME Media API – JSR 135 r Support for Tone Generation, Playback, and Recording of Time-Based Media: The package supports any time- based audio or video content. r Small Footprint: MMAPI works within the strict memory limits of CLDC devices. r Protocol- and Content-Agnostic: The API is not biased towards any specific content type or protocol. r Subsettable: Developers can limit support to particular types of content, basic audio for example. r Extensible: New features can be added easily without breaking older functionality. More importantly, additional formats can be easily supported, and the framework is in place for additional controls. r Options for Implementers: The API offers features for different purposes. The API is designed to allow implementers to leave some features unimplemented if they cannot be supported. JSR: Java Specification Request
38 J2ME Mobile 3D (m3g) – JSR 184 r Support both retained-mode access (scene graphs) and immediate-mode access (the OpenGL ES subset or similar), and allow mixing and matching of the two modes in a unified way. r To reduce the amount of programming required, the API include importers for certain key data types, including meshes, textures, and scene graphs. r Data must be encoded in a binary format for compact storage and transmission. r The API efficiently supports on top of OpenGL ES, without floating-point hardware. r The API must use the float data type of the Java programming language, not introduce a custom type. r The API must interoperate properly with other Java APIs, especially MIDP.
39 Resources r J2ME m r Nokia m m SNAP: -ceba-4ba2-b13c- f4caf /SNAP_Mobile_White_Paper_v2_0_en.pdf.ht ml?cp=0306A&entry=snap1 r Sony Ericsson m r Bluetooth Quick Start m