Week 1 Game Design & Development for Mobile Devices.

Slides:



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

Introduction to Android Mohammad A. Gowayyed CS334-Spring 2014.
Dirk van Schalkwyk Supervisor: Prof Greg Foster Co-Supervisor: Mrs Madeleine Wright Project Title: A Comparative Study of JME and Flash Lite for Mobile.
Pete Houston Maintenance, Improvement, Patch, Optimization, Errors, Bugs, …. oh I’m totally FUCKED UP! Coders tend to make many.
Java ME vs. Flash Lite: A comparison of mobile phone game development Alex Koller Supervisors: Greg Foster, Madeleine Wright.
Will Wireless Gaming Be a Winner? February 1, 2007 Sumit Rohit Thaker Sung Ho Hwang.
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Team Monte Cristo Joseph Carrafa Sharon Clark Scott Hassett Alex Mason The Deep Fried Game Station.
Chapter 3.2 C++, Java, and Scripting Languages. 2 C++ C used to be the most popular language for games Today, C++ is the language of choice for game development.
© 2009 Research In Motion Limited Methods of application development for mobile devices.
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
J2ME Prepared by: - Gaery- Ronny - Alan- Andy. Why Technology for Mobile Devices? The nature of wireless devices is changing Old devices: All the software.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
Prototyping Teppo Räisänen
Mobile Games Pekka Kinnunen Dap02s. Topics: History Economics Technology Platforms Future / Conclusions.
SM3121 Software Technology Mark Green School of Creative Media.
Equity Valuation and Analysis with eVal
Robin Daniels Sr. Manager, Product Marketing Running Your Business in the Cloud.
SMARTPHONE OPERATION SYSTEM MARKET IN U.S. Ryan (Jang-Hoon) Doo ISM 158.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Requirements Analysis Document Template 1.Introduction.
Copyrighted material John Tullis 8/13/2015 page 1 Blaze Software John Tullis DePaul Instructor
Symbian os with smart phones Guided by: Hetal A Josiyara
Java Swing Joon Ho Cho. What is Java Swing? Part of the Java Foundation Classes (JFC) Provides a rich set of GUI components Used to create a Java program.
Chapter 1- Introduction
UNIT 14 Lecturer: Ghadah Aldehim 1 Websites. Introduction 2.
WINDOWS XP PROFESSIONAL Bilal Munir Mughal Chapter-1 1.
Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.
MobeSys Technologies MobeSys – helping you overcome mobile technology challenges.
Introduction to Computers. Objectives Overview Describe the five components of a computer Discuss the advantages and disadvantages that users experience.
FatMax Licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 LicenseCreative Commons Attribution-NonCommercial-ShareAlike 2.5.
Exception Handling Basic -- from generic idea to Java.
Previously Fetch execute cycle Pipelining and others forms of parallelism Basic architecture This week we going to consider further some of the principles.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
 2005 Pearson Education, Inc. All rights reserved Introduction to Computers, the Internet and the World Wide Web.
◦ What is an Operating System? What is an Operating System? ◦ Operating System Objectives Operating System Objectives ◦ Services Provided by the Operating.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Investigation in the development of Standalone Location Based Services Nkululeko Gojela Supervisor: Dr Hannah Thinyane FINAL PROJECT PRESENTATIONS.
GEOREMINDERS ANDROID APPLICATION BY: ADRIENNE KECK.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Computer Science 313 – Advanced Programming Topics.
Chapter Nine NetWare-Based Networking. Introduction to NetWare In 1983, Novell introduced its NetWare network operating system Versions 3.1 and 3.1—collectively.
MULTIMEDIA DEFINITION OF MULTIMEDIA
CHAPTER TEN AUTHORING.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Seamless Mobility: Michael Wehrs Director of Technology & Standards Mobile Device Division, Microsoft Corp. Wireless Software Innovations Spurring User.
Tolo-e-aftab higher education 1 th semester Bcs 1/2/1392 MINISTRY OF HIGHER EDUCATION.
AN ASPECT-ORIENTED ARCHITECTURE FOR HANDLING VARIATION ACROSS MOBILE PLATFORMS Proposed by: Chokchai Phatharamalai Advisor: Dr. Paul Janecek.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Session 13 Pinball Game Construction Kit (Version 3):
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
Java Example Presentation of a Language. Background Conception: Java began as a language for embedded processors in consumer electronics, such as VCR,
© 2012 IBM Corporation 3 rd Party Registration & Account Management 1 1 SMT 2015 Approved AMWG Change Requests.
Topic : 4.0 WIRELESS TECHNOLOGIES.  Wireless networks utilize radio waves and/or microwaves to maintain communication channels between computers. Wireless.
Chapter 2 – Part 1 Introduction To Windows Operating Systems CMPF 112 : COMPUTING SKILLS.
Power Guru: Implementing Smart Power Management on the Android Platform Written by Raef Mchaymech.
Object orientation and Packaging in Java Object Orientation and Packaging Introduction: After completing this chapter, you will be able to identify.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Lecture #20: Profiling NetBeans Profiler 6.0.
Web Cache. What is Cache? Cache is the storing of data temporarily to improve performance. Cache exist in a variety of areas such as your CPU, Hard Disk.
Introduction to Android OS Димитър Н. Димитров Astea Solutions AD.
If you are thinking about developing mobile application for your customer, this is an important aspect to consider the platform.
Activity Based Costing (ABC). Activity based costing An alternative method to absorption costing, called Activity Based Costing (ABC) has emerged. It.
Application development process Part 1. Overview State of the mobile industry Size of the market Popularity of platforms How users use their devices Internationalisation.
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.
Moving from Stencyl 2 to Stencyl 3 & beyond
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1st edition CS 4455.
Intro to SaaS Software as a service (SaaS) is a model of software delivery where the software company provides maintenance, daily technical operation,
Chapter 2: System Structures
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
SUCCESS STORY.
Presentation transcript:

Week 1 Game Design & Development for Mobile Devices

Overview Introduction Phone Differences Approaches Challenges Development

Introduction JavaME is relatively easy to learn It is misleading to suggest that mobile game development is simpler than on the PC or console Ideally, a J2ME game developed for one device should run on all devices with the same APIs

Phone Differences There are several reasons why there are so many phone models –Mobile phones are highly personal; each one is designed for a specific usage pattern I.e. enterprise users, messaging teenagers, gamers, price conscious people, etc –Manufacturers need to differentiate their product They adopt different CPUs, memory sizes, UIs, operating systems, screen sizes, etc

Phone Differences (Cont.) Providers need to differentiate their offerings –Customizing their hardware or software Enabling/disabling functionality (i.e. NexTel disallows consumers to run 3 rd party Java applications) Mobile phones are evolving faster than Moore’s Law. –Hundreds of new models every year.

Phone Differences (Cont.) Supporting all the popular devices will maximize the game’s chance of success Java games ported for different devices need to be tested and optimized on each device Example; Nokia devices series 60 and series 40 have very different screen sizes, memory sizes and CPUs

Phone Differences (Cont.) Different devices have different bugs, or problems in their Thread or memory management implementations

Approaches Java is object-oriented Object-oriented approach provides maintainability and extensibility. This is normally a good thing In the mobile world memory is expensive –It is best to avoid multiple objects unless necessary Do not write one massive super class

Approaches (Cont.) Write your game in the simplest manner that is comfortable Afterwards, merge classes that do not provide much gain in functionality

Challenges Supporting many different devices in a fragmented market Different hardware limitations –CPU –Screen size –memory Cost of porting games (if needed)

Memory Limitations 3 Times of memory –Working, storage, and application memory Working memory is where the game is in runtime –A game too big will throw a out of memory error Storage memory is where all the high scores, user options, and other state data.

Memory Limitations (Cont.) The game itself takes up storage (application) memory Application memory takes into account all of the games and applications stored Code the game accordingly to memory constraints –Consult manufacturer specifications Check the maximum size a game can be during runtime and memory storage available

Screen Limitations A fairly big challenge Displays differentiate not only from manufacturer to manufacturer, but from model to model too Consider –Screen size –Frame rate –Colour

Screen Limitations (Cont.) Target devices to design games for Good idea to create games generically, then make alternate versions for different mobile devices

Improve Performance Decide which type of model you will develop for. –Lower end or higher end –Lower end have most of the market Optimization –Use shorter variable, method and class names –Avoid unnecessary protocols –Reuse objects rather then instantiating new ones –Merge graphics into one sheet instead of several separate graphics –Obfuscate your code to Prevent reverse engineering Significantly reduce final jar size

Development Beginners should start development with a higher end device that has the least amount of API constraints. This allows the developer to focus on proper game design and API usage –Without worrying about limitations

Development (Cont.) A good start: –Start with a device that has MDIP 2 As a developer becomes more experienced, moving to an older or more restrictive device would be a good idea

Development (Cont.) Porting a game from strong device to a more restrictive device requires –Reworking the graphics –Changing the game play A strength in mobile games is large volume that it occupies in the market Mostly low end devices are in the market