J2ME & BREW Game Design Code running on the handset (at last) Greg Costikyan

Slides:



Advertisements
Similar presentations
Fakultät für informatik informatik 12 technische universität dortmund Imperative model of computation Peter Marwedel TU Dortmund, Informatik 12 Graphics:
Advertisements

Izvedba tega projekta je financirana s strani Evropske komisije. Vsebina publikacije (komunikacije) je izključno odgovornost avtorja in v nobenem primeru.
MIDP Mobile Information Device Profile Johnny Yau CIS 642 Prof. Insup Lee.
1 Mobile Gaming Dr Abdennour El Rhalibi. 2 Agenda r Mobile game characteristics & introduction r Introduction to mobile game programming languages.
Mobile Development Environments Juha Linnanen Evtek
ITU Multi-media Seminar - June/04-05/01 - Porto Seguro 3G/IMT-2000 Handsets and Services Severino Ramos Camilo Qualcomm do Brasil Tel.:
Pengantar Teknologi Mobile 12
Introduction of J2ME Mobile solutions. Overview What is J2ME. How does J2ME work? Java J2ME Carriers and Products. The Two Configuration of J2ME. Profiles.
Mobil game : A mobile game is a video game played on a mobile phone, smartphone, PDA, handheld computer or portable media player Type of language writing.
Multimedia Network Communications Subject:T0934 / Multimedia Programming Foundation Session:13 Tahun:2009 Versi:1/0.
Agent-Oriented InfoStation Architecture Ivan Minov University of Plovdiv “Paisii Hilendarski“
J2ME: Tic Tac Toe By Jud Porter and John Tat. Goals for Project  Design and implement multiplayer game  Network connectivity between mobile devices.
J2ME 25 July Overview  What is J2ME?  The CLDC and CDC configurations  MIDP and MIDlets  Development Tools  Demonstrations.
Will Wireless Gaming Be a Winner? February 1, 2007 Sumit Rohit Thaker Sung Ho Hwang.
Writing Your First MIDlet Running JAVA on a Cell Phone Jon A. Batcheller January 27, 2004.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Bluetooth and java – a perfect match? Sean O Sullivan ceo Nordic Bluetooth, October 5th, 2001.
Quality Assurance and Testing of J2ME Programs for Mobiles Phones.
Developing an Application with J2ME Technology Scott Palmer, Nat Panchee, Judy Sullivan, Karen Thabet, Sten Westgard.
Interactive Visual System By Arthur Evans, John Sikorski, and Patricia Thomas.
J2ME for Palm Speaker: Chen-Nien Tsai Adviser: Kai-Wei Ke.
COMS S1007 Object-Oriented Programming and Design in Java August 5, 2008.
J2ME Prepared by: - Gaery- Ronny - Alan- Andy. Why Technology for Mobile Devices? The nature of wireless devices is changing Old devices: All the software.
Presenting a Technical Paper. Outline Wireless Development – Introduction Wireless Development – Introduction Wireless Issues & Considerations Wireless.
PDA Programming Using J2ME Presenter :涂俊凱 Date : 2003/4/8.
Making Cell Phone Games An Overview Ray Ratelis Guild Software, Inc.
V0.01 © 2009 Research In Motion Limited Understanding Java APIs for Mobile Devices Trainer name Date.
Developing J2ME Applications Mobile and Wireless Networks.
Cosc 4730 Phone Programming in Java An Introduction.
University of Jyväskylä 1 MODPA Platform Independent Design of Mobile Applications WIM Workshop 2004 Teemu Ihalainen Information Technology Research.
Mobile Games Pekka Kinnunen Dap02s. Topics: History Economics Technology Platforms Future / Conclusions.
Java 2 Platform, Micro Edition (J2ME) By Xiaorong Wang.
Topics on KVM Presented By Xiaozhou David Zhu. Topics covered Introduction Java2 Platform Micro Edition CLDC KVM.
J2ME Java for Mobile Environments Based on J2ME In A Nutshell, by Kim Topley, O’Reilly & Associates Inc., 2002, and Tetris by Alexei Patinov.
Binary Runtime Environment for Wireless
Michael Brockway Advanced Applications Development in Java J2ME -- Introduction l Introduction / Overview l Java 2 Micro Edition n CLDC n MIDP l Examples.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 11 J2ME and MIDlets Rob Pooley
Available Wireless Jan K Lezny Director of Business Development QUALCOMM Internet Services.
Eduardo Araujo Dustin Littau. Agenda Introduction Requirements Design Testing Conclusion.
Framework and application bytecode size CLDC MIDP kXML parser Utility classes Graphics Logic (MIDlet) Application Data (XML file)
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Computer Science Wi-Fi App using J2ME and MVC Architecture Advisor : Dr. Chung-E Wang Department of Computer Science Sacramento State University Date:
J2ME Presented by May Sayed & Menna Hawash. Outline Introduction “Java Technology” Introduction “What is J2ME?” J2ME Architecture J2ME Core Concepts 
Java 2 Micro Edition (J2ME) and the world of java
Mark J. Salamango Chief Pervasive Architect USA TACOM Tel: Fax: Pervasive Computing: Why did the logistics.
PROG Mobile Java Application Development PROG Mobile Java Application Development BlackBerry App Lifecycle Java ME API.
1Basics of J2ME. 2 Objectives –Understand the different java API’s and how the mobile edition API’s fit in –Understand what a mobile configuration and.
Введение в JAVA. Java Java – язык программирования: объектно-ориентированный кроссплатформенный строго-типизированный.
실기기에 KVM Porting 기술 소개 5/26/2000 Junbom Pyo ZUVIX technology, Co.
Martin Schmidt / The Silent Revolution Mobile Java.
BlackBerry Application Development 06PLM – Group 7 Andrian Eduard Bangga Ikhsan Baskara Joovanny Pasuhuk Rangga Fajarullah.
Other Popular Java Technologies Internationalization in Java Graphics Programming in Java Security Programming in Java Collections and Data Structures.
Java 2 Micro Edition The Connected, Limited Device Configuration.
KVM Analysis & Comparison 김종원 Tech-Development Division Lycos Korea., Ltd
CLDC
Wireless Multimedia Delivery over 3G Networks Greg Leah C SC 461.
CSCI 212 Object-Oriented Programming in Java. Prerequisite: CSCI 111 variable assignment statement while loop for loop post-increment (i++) strong typing.
Mobile Programming Mobile Programming - Ordibehesht Ordibehesht 1390.
Enhanced mobile services in Java enabled phones Björn Hjelt Sonera zed ltd Supervisor: Professor Jorma Jormakka.
Advance Computer Programming Market for Java ME The Java ME Platform – Java 2 Micro Edition (J2ME) combines a resource- constrained JVM and a set of Java.
The Java Platform Micro Edition Java ME
COM594: Mobile Technology Practical – Week 1 Android and Android Studio.
Mobile Computing Chapter 5 : Mobile Development Frameworks and Tools.
Programming of Handheld and Mobile Devices
BlackBerry Application Development
MOBILE DEVICE OPERATING SYSTEM
Wireless Instant Messaging Using J2ME
By Jeff Heaton An Overview of J2ME By Jeff Heaton
Peripheral Devices
Presentation transcript:

J2ME & BREW Game Design Code running on the handset (at last) Greg Costikyan

What is BREW? Binary Runtime Environment for Wireless Tied to CDMA (in practice, if not theory) Strongly supported by Verizon, Alltel Korean carriers, KDDI in Japan, Bell Mobility in Canada Like Java, runs in a virtual machine (on the hardware) Qualcomm is the Gatekeeper Write apps in C, C++, or Java

What is J2ME? Java 2 Micro Edition (for small device CLDC: Connected Limited Device Configuration MIDP: Mobile Information Device Profile Runs on a virtual machine (KVM, <80k) Java-enabled phones available in Japan, Korea, Europe, through Nextel; major commitment by Sprint, support from all major manufacturers Carriers are the Gatekeepers (but Motorola for Nextel)

Which Should You Use? Little difference in technical capability Largely a business decision Likely to be a larger installed base of J2ME- enabled handsets

Why Develop J2ME/BREW Games? Run apps on the handset (not all logic has to be on the server side) Much better control over UI Small User Base at Present (but likely to grow fast) An area of carrier focus

How it Used to Work a. Download applet to your PC over the Internet. b. Hotsynch your phone to install applet. c. Can’t install applications over the air network. d. In Asia, applets can’t communicate over the network—soloplay only.

How it Now Works a. User makes a network connection, browses carrier’s list of midlets, chooses one. b. HTTP request goes out over air network, is routed to remote server on the Internet. c. Server sends midlet to handset, where it is installed. d. Network sockets are exposed to J2ME on the handset, so midlets can send and receive data with remote servers.

Technical Limitations Midlets must be <50k (or so) No simultaneous key presses No support for image transparency Cannot edit bitmaps on the fly, no blitting Can’t assume any audio support No floating point math No JNI or AWT

What We Can Rely On High-Level UI Features: PNGs & bitmaps Text Entry Select lists (radio buttons) & Multiple select lists (check boxes) Bar graphs Support for standard phone keys (0-9, *, #, arrows) Abstracted game controls Low-Level UI Features: Canvas Graphics HTTP

Latency > WAP? With WAP, latency = air network + Internet latency With J2ME, add HTTP handshaking UDP is supported but not mandatory but exists on Motorola/iDen handsets (Nextel) An area of carrier focus

Keep Network Access Sessions Short People pay by the minute— but YOU get nada 5-10 minute sessions offline as well as online components—simove, deck construction

Network Still Unreliable Irrelevant for soloplay If connection is intermittent, game needs need to sense network failure If connection continuous, handle drops gracefully

Dealing with the 50k Limit Keep text short Use (& reuse) small number of graphics Use a code obfuscator Minimize the number of inner classes Collapse the class hierarchy Maximize use of pre-installed classes Consider using multiple midlets

Making the Most of Graphics No inherent support for layers Tiled Backgrounds (or images at discrete locations on blank background) Limit number of sprites & behaviors

Thinking About UI Handset is similar to a console controller Motion for a single actor: arcade-style, RPGs Select an actor, select a destination— simple strategy games Select-lists = menus 11 buttons: NetHack-style UI

What Kinds of Games Can We Do? Primitive skill-and-action games (retro arcade) Classic board & card Console-like games with simple controls (gold, driving) Levelware Networking is STILL where mobile phones have an advantage

Jamdat Bowling

Diamond Mine

Micro Nitro

Froggy

URLs Obfuscators: retrologic.com J2ME Wireless Toolkit: java.sun.com/products/j2mewtoolkit/ Useful Articles: wireless.java.sun.com/midp/articles/