Small Game on Mobile Appliances with J2ME Akihiro Minegishi CS491b 12/10/2004.

Slides:



Advertisements
Similar presentations
MIDP Mobile Information Device Profile Johnny Yau CIS 642 Prof. Insup Lee.
Advertisements

Getting started with LEGO NXT Mindstorms software This is intended to be a short introduction to the LEGO Mindstorms software and programming the LEGO.
Java 2D Training. Basic Tools Java SDK 1.4x Wireless Toolkit 2.x NetBeans IDE + mobility pack Global Code editor Text Comparer Tools Graphics Editor Sprite.
Copyright © 2001 Qusay H. Mahmoud JavaBeans An introduction to component-based development in general Introduction to JavaBeans – Java components – client-side.
Lecture 4 Basic Scripting. Administrative  Files on the website will be posted in pdf for compatibility  Website is now mirrored at:
Pengantar Teknologi Mobile 12
Limit for Title Do not exceed Limit for Subhead and content Do not exceed Overall content limit Tecton Nucleus User Presentation.
J2ME 25 July Overview  What is J2ME?  The CLDC and CDC configurations  MIDP and MIDlets  Development Tools  Demonstrations.
Writing Your First MIDlet Running JAVA on a Cell Phone Jon A. Batcheller January 27, 2004.
1 Developing Mobile Applications ID2216/UMT Checkers Game By: Behzad Salim Aroony Kambiz Ghoorchian.
Developing Software for Wireless Devices
Making Cell Phone Games An Overview Ray Ratelis Guild Software, Inc.
Developing J2ME Applications Mobile and Wireless Networks.
Java 2 Platform, Micro Edition (J2ME) By Xiaorong Wang.
SM3121 Software Technology Mark Green School of Creative Media.
FT228/3 HCI – Final Year Project. Overview of Lecture How is HCI incorporated into a normal project? Discussion of Laoise Garvey’s thesis -
J2ME Programming. 2 Recommended Books Programming Wireless Devices with the Java2 Platform, Micro Second Edition (Paperback) by Roger Riggs (Editor),
Software Development. Chapter 3 – Your first Windows 8 app.
GAME:IT Junior Bouncing Ball Objectives: Create Sprites Create Sounds Create Objects Create Room Program simple game.
An Introduction to Microsoft Word. Microsoft Word This program allows you to type letters, papers, reports and even books. It is available through the.
J2ME Java for Mobile Environments Based on J2ME In A Nutshell, by Kim Topley, O’Reilly & Associates Inc., 2002, and Tetris by Alexei Patinov.
Copyright ©: SAMSUNG & Samsung Hope for Youth. All rights reserved Tutorials Software: Building apps Suitable for: Advanced.
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
Click your mouse for next slide Flash – Introduction and Startup Many times on websites you will see animations of various sorts Many of these are created.
GAME:IT Bouncing Ball Objectives: Create Sprites Create Sounds Create Objects Create Room Program simple game.
Eduardo Araujo Dustin Littau. Agenda Introduction Requirements Design Testing Conclusion.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Game Maker Day 2 Making a Maze Game.
IT Badge Support – Stage 1. Before switching on make sure an adult has checked your computer is plugged in safely and the electricity is switched on at.
VIDEO GAME PROGRAMMING Video Game Programming Junior – DigiPutt INSTRUCTOR TEACHER’S ASSISTANT.
Introduction to Visual Basic. Quick Links Windows Application Programming Event-Driven Application Becoming familiar with VB Control Objects Saving and.
Framework and application bytecode size CLDC MIDP kXML parser Utility classes Graphics Logic (MIDlet) Application Data (XML file)
Adobe Flash CS5.5. What is Adobe Flash? formerly Macromedia Flash Is software is a powerful authoring environment for creating animation and multimedia.
J2ME Presented by May Sayed & Menna Hawash. Outline Introduction “Java Technology” Introduction “What is J2ME?” J2ME Architecture J2ME Core Concepts 
KeyListener and Keyboard Events Just as we can implement listeners to handle mouse events, we can do the same for keyboard events (keypresses) –to implement.
Art 315 Lecture 5 Dr. J. Parker AB 606. Last time … We wrote our first program. We used a tool called GameMaker. The program we wrote causes a ball to.
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.
Spong Bluetooth game Developed by: Erik Matzols Fredrik Lindberg.
Finding a Music File to Work With From the PUSD student home page, select “Royalty Free Music”
Java is an object oriented programming language In this model of programming all entities are objects that have methods and fields Methods perform tasks.
Java Threads. What is a Thread? A thread can be loosely defined as a separate stream of execution that takes place simultaneously with and independently.
Vex Robotics Programming Options. To start you off and give you a safe "home base" to return to while you explore, a few key programs are already included.
Using Xcode A Beginner’s Tutorial Erin Green. This tutorial will walk you through Xcode, a software development tool for Apple’s iOS applications – We.
Physics of WiiSports Golf Forces on slopes. (Autoplay and pause 0:53–1:01) What happens next? How does the software decide?
Making Python Pretty!. How to Use This Presentation… Download a copy of this presentation to your ‘Computing’ folder. Follow the code examples, and put.
Game Maker – Getting Started What is Game Maker?.
Team 2: Gamers & Coders Final Sprint Presentation.
Team 2: Gamers & Coders ‘ The Last Warrior’ Android Game Application By Chinmay Kulkarni, Darshan Shinde, Matt Frey, Peng Ye, Satoshi Inoue & Shachi Chandrashekhar.
Creating a Simple Game in Scratch Barb Ericson Georgia Tech June 2008.
Kakihijau.googlepages.com Introduction To Greenfoot Part-1.
MOSES YEO.  We talked about aspects of a good videogame  One element we talked about was how to get someone addicted to the game.
CMPF124 Personal Productivity with Information Technology Chapter 2 – Part 3 Introduction To Windows Operating Systems Windows Accessories CMPF 112 : COMPUTING.
Subtractive Manufacturing Exercise #1 Step #2 Key Fob Project Using Velocity CNC Software for the CNC Milling Machine Note: In order to use this set of.
By: Aaron Knight. What is Emulation? Emulation is the process of implementing in software a set of hardware. Applications meant for another platform can.
1 Introduction to J2ME Outline MIDP Building J2ME Apps- Tool J2ME Wireless Toolkit Demo MIDlet Programming -- MIDlet Transition States -- Midlet Skeleton.
Introduction to TouchDevelop Lesson 3 – Comments & Lists Created by S. Johnson
GAME:IT Paddle Ball Objectives: Review skills from Introduction Create a background Add simple object control (up and down) Add how to create a simple.
Mobile Programming Mobile Programming - Ordibehesht Ordibehesht 1390.
FINANCIAL SOCCER Module 1 SAVING Collect a quiz and worksheet from your teacher.
Creating your own Handheld Games Console
Introducing Scratch Learning resources for the implementation of the scenario
© English Language Testing Ltd Taking the Password Skills Test.
Game Maker Tutorials Introduction Clickball IntroductionClickball Where is it? Shooting Where is it?Shooting.
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.
MOM! Phineas and Ferb are … Aims:
Java N Amanquah.
By Jeff Heaton An Overview of J2ME By Jeff Heaton
Introducing Java.
Presentation transcript:

Small Game on Mobile Appliances with J2ME Akihiro Minegishi CS491b 12/10/2004

My Project The numbers of wireless and mobile appliances have been dramatically increased. At the same time, the processing powers of the mobile appliances also have been strengthened. Thus, building applications for mobile platforms is becoming more and more attractive. Also, those are tremendous opportunities to the software developers too.

My Project The project is intended to learn and experience those new wireless technologies. small game is suitable to learn programming in new application platform, because it is not too large to build by single person

Reason for Gaming One of other reports from IDC shows that “the wireless gaming market in Asia-Pacific, excluding Japan, is expected to grow at a compound annual growth rate (CAGR) of 40%, from $237.4 mln last year to $1.3 bln in 2008” ( 2004).

Choose The project started with comparing different platforms for developing application on mobile appliances. There are many, but I choose J2ME because I am familiar with JAVA Many devices supports MIDP

MIDP 2.0 or 1.0 The MIDP 2.0 is released this year and I was planning to use MIDP 2.0, but later, I found that there are not many devices that support MIDP 2.0 because it is new. I decide to follow the MIDP 1.0

Compatibility After some more research about the J2ME, I found that even though there is a standard for programming, the result of the program could be different because Differences of hardware Carriers and makers has own additional libraries I decided to code in pure MIDP 1.0 and CDLC

Environment few weeks to design the game and installing the development environment Environment: Language: Java Platform: J2ME (MIDP1.0 + CLDC) Developing Environment: J2ME wireless tool kit Forte CE v3.0 Running Environment: KVM

Process Following list shows the usual mobile application development process by using Java 2 Platform Micro Edition. 1. Write a Java application 2. Compile it 3. Pre-verify it 4. Package it into a JAR file 5. Create the application descriptor 6. Publish the MIDlet suite 7. Install on the device or emulator WLTK does for you!

Game Design The basic idea of this game came from an old DOS game. I played this game more than 10 years ago I designed my own scoring system, interfaces, graphics and such, so that even though the idea came from this game, the game is created without intention of restore or imitate the old DOS game.

Game Rules The rule of the game is simple. It is designed as simple because the game should be played without reading manuals or any effort to learn and start the game. The left picture show the moment just after the game is started. The player can control single ball, which is called my ball and it is colored in red. On the screen, there are other balls that are called target balls, colored in blue. The target ball does not move and cannot be controlled by the player. If my ball hit the wall, then my ball will bounce off the wall.

Game Rules As the left picture show, when my ball hit the target balls, then The target ball disappears and breaks into two green balls. Those are called piece balls and they moves and player does not have controls of moving piece balls. After a while, approximately ten seconds, those piece balls will disappear from the screen and player will get the score.

Game Rules The goal of this game is to dodge the piece balls and remove all the target balls and piece balls from the screen. If player successfully removed all the balls then the player wins the game and the program will be stopped. If player want to try another game, pushing the stop talking button in red on left will let player return the launcher menu. The final score of player will be displayed on the top of the screen. In the case of left picture, the score is at 2400 points.

Game Rules If the player is failed to dodge the piece balls and any one of the piece balls hit the player’s my ball, then the player looses. If the player looses the game, the program will stop and the final score of player will be displayed on the top of the screen. If player want to try another game, pushing the stop talking button in red on left will let player return the launcher menu.

DEMO

Behavior of the Program When the program starts, my ball will be displayed. Initially, my ball move at constant speed in one direction. My ball will change moving direction when a keypad is pressed. When my ball hit the wall, then my ball will bounce. When the game starts, the target ball appears. When my ball hit a target, then the target ball disappears. When my ball hit a target, then the target will break down into piece ball. Piece ball moves at constant speed in a direction. When a piece ball hit the wall, then piece ball will bounce. Afar a while, piece disappears. When you hit moving pieces, then the program ends. When all the target balls and piece balls disappear, then the program ends.

Flow Chart

Implementation Ball Class BallCanvas Class MyBall Class TargetBall Class PieceBall Class

Ball Class Ball: It is the class that controls basic flow of lifecycle of the MIDlet of the program, that includes, Ball()//Ball constructor startApp()//This method is called when MIDlet Starts, pauseApp()//This method is called when MIDlet pauses destroyApp()//This method is called when MiDlet ends doExit()//Destroys MIDlet and exit

BallCanvas Class BallCanvas: This class is the canvas of the program. So this Ball canvas extends canvas class. Also, it implements command listener and it is runnable because the program uses threads. Includes, BallCanvas()//constructor for the ballcanvas start()//when start method is called, this method will create the new thread and start the thread stop()//this method is called when the thread is stopped run()//run method for the thread as long as the program is running, it will repaint the graphics paint()//paint method will draw the graphics on the canvas keyPressed()// this method is called when the key is pressed

MyBall Class MyBall: MyBall is a ball that you can control my ball moves four ways by using key pad. My ball will bounce when it hit the wall. MyBall()//constructor for my ball Accessor methods for position and moving direction Paint()//this method will actually draw the graphics

TargetBall Class TargetBall : Target ball is a ball that is stationed TargetBall()////constructor of the targetball Accessor methods for position and moving direction Paint()//this method will actually draw the graphics

PieceBall Class PieceBall: piece ball appears after the target ball is hit by my ball. When the target ball is hit, the piece ball will breaks into two piece balls. Both piece balls’ directions are defined by the moving direction of my ball. PieceBall()//constructor for my ball Accessor methods for position and moving direction Paint()//this method will actually draw the graphics

Algorithm Collisions between target balls and my ball: Depending on the direction of my ball, the direction of piece ball will be set. Even number indexed object in array of piece ball’s direction will be set to the 45 degree left of direction of my ball and odd number indexed object in array piece ball’s direction is set to the 45 degree right of direction of my ball.

Algorithm Score: The score is 100 for one ball. There is a bonus for the number of the moving ball at the same time. Although there is no stages in the game, the player have to choose their own play level. Ether the player takes risk and have chance to get higher point or remove balls safely with lower scores. Below formula calculate the points, and the “point” parameter represents the number of currently moving ball and that number times 200 for bonus addition to 100. point--; score=score+100+point*200;

Future Work The project is a simple program but it includes basic processes to develop typical applications. So, the future work will be extending this project or making new applications such as a scheduler for mobile devices by using the knowledge that came from the first step experience.

Learned Most of the time for the project had spent on starting the project. One of the most difficult parts was to learn about the technology and to setup new development environment. If a developer knows about the technology and already has environment to develop, then the effort that the developer takes can be reduced dramatically. One of the success of the project is that the opportunity to know new technology

Thank you