1112 Oct 2005 Kuala Lumpur - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

1112 Oct 2005 Kuala Lumpur

Description:

We have created a large range of wallpapers. MMS and animated screen savers for mobile devices using our cute character sets. ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 43
Provided by: jim984
Category:
Tags: kuala | lumpur | oct | wallpapers

less

Transcript and Presenter's Notes

Title: 1112 Oct 2005 Kuala Lumpur


1
Developing Cross-platform Games for Mobile Devices
  • Panutat Tejasen (A.K.A. Jimmy)CEO
    FounderJimmy Software Ltd.
  • Chiang Mai Digital Works Ltd.

2
Whos this guy?
  • Panutat Tejasen
  • (A.K.A. Jimmy)
  • The Serial Entrepreneur
  • www.jimmysoftware.comwww.cmdworks.com

3
Our Business
J2ME MOBILE GAMES
MOBILE CONTENT
POCKET PC SOFTWARE
Producing advanced J2ME games for mobile phones
is one of our specialties. We pride ourselves on
the quality of games we produce both for the
smartphone and standard mobile phones.
We have created a large range of wallpapers. MMS
and animated screen savers for mobile devices
using our cute character sets. We also offer
custom design services.
Our advanced pocket PC games use the latest in
gaming technology and have won awards in both
Europe and America. We currently distribute our
extensive range of PPC games to over 50 countries
world wide.
CHARACTER DESIGN
LICENSING AGENT
DESIGN / RE-DESIGN
We specialize in cartoon design / development and
have produced 3 world class character sets. Each
set includes over 150 posses. 2D/3D animations,
games and merchan.
As well as producing our own cartoon character
series, we are also the licensing agents for
other cartoon character developers within Asia.
We license these character sets for all kinds of
animations and merchandise.
We have a fully equipped design studio with many
experienced graphic designers and character
developers for design projects. Our services
include Graphic Design, Corporate Design, Web
Design, Flash Animation and General Publications.
4
Games
5
Awards
6
Developing Cross-platform Games for Mobile Devices
7
Cross-Platform
  • Desktop PC
  • Windows / Macintosh / Linux
  • Special Device
  • HDLP (100 Dollar Laptop Project)
  • Linux for iPod (just for fun)
  • Windows Mobile
  • Pocket PC
  • MS Smartphone
  • Symbian Phone
  • Nokia S60,80,90
  • Symbian UIQ
  • J2ME Phone (Limited Support)

8
What is the 100 Laptop, really?
  • The proposed 100 machine will be
  • a Linux-based, full-color, full-screen laptop
    that will use innovative power (including
    wind-up) and will be able to do most everything
    except store huge amounts of data.
  • These rugged laptops will be WiFi- and cell
    phone-enabled, and have USB ports galore.
  • Its current specifications are 500MHz, 1GB, 1
    Megapixel.

9
HDLP - 100 Dollar Laptop Project
10
HDLP - 100 Dollar Laptop Project
11
HDLP - 100 Dollar Laptop Project
12
OLPC - One Laptop Per Child Project
  • MIT cooperative with the governments.
  • Brazil, China, Thailand, Egypt, South Africa
  • Free 600,000 800,000 Laptops per year for
    primary school students in Thailand

13
Software?
  • Additional Software needed
  • Educational Software
  • E-Book
  • E-Learning
  • Entertainment
  • Games
  • Government Sponsored Project
  • Cross-platform educational software for PC and
    HDL 600,000 HDL/year to student
  • Lower the software development cost for ISV
  • Software Development Framework including the Game
    Engine
  • Compatible with Mobile Devices
  • 800,000 Mobile Phones Sales / month
  • Symbian vs. J2ME

14
Cross-PlatformSoftware Development
Frameworkwith Game Engine
  • Desktop PC
  • Windows / Macintosh / Linux
  • Special Device
  • HDLP (100 Dollar Laptop Project)
  • Linux for iPod (just for fun)
  • Windows Mobile
  • Pocket PC
  • MS Smartphone
  • Symbian Phone
  • Nokia S60,80,90
  • Symbian UIQ
  • J2ME Phone (Limited Support)

15
Architecture
  • Device dependent
  • System memory, file, I/O
  • Math floating point (with fixed point
    implementation)
  • Display surface, double buffer, direct screen
    access
  • Input keyboard, mouse, touch screen, joy stick
  • Sound wave buffer mix, volume, stereo
  • Device Independent
  • 2D Graphics surface, bitmap, sprite
  • 3D Graphics scene, 3d math, full-textured model
    animation
  • Game Template Game Loop, Flip, Input state poll
  • User Interface button, menu, textbox, list box,
    check box, radio button
  • Script Supported
  • Lua Script (selected among Python, Lua and
    AngelScript)

16
Development Tools
  • PC
  • Visual C 6.0 (OK, we know -- dont flame us!!!)
  • MinGW, GCC
  • wxWidgets, DialogBlocks
  • Windows Mobile
  • MS Embedded Visual Tools 3.0
  • Symbian
  • Nokia Series 60 1.2 SDK (Symbian 6.1)
  • Nokia Series 60 2.0 SDK (Symbian 7.0s)
  • Nokia Series 60 2.1 SDK (Symbian 7.0s)
  • Nokia Series 60 2nd FP2 SDK (Symbian 8.0a)
  • Nokia 9200 Communicator 1.2 SDK (Symbian 6.0)
  • Nokia Series 80 2.0 SDK (Symbian 7.0s)
  • Nokia7710 (Series 90) SDK (Symbian 7.0s)
  • Symbian UIQ 2.1 SDK (Symbian 7.0)

17
Hello World
  • Write everything from scratch (May be released
    as Open Source project)
  • We took 1 month to make it run on all real
    devices
  • Symbian is a nightmare for Windows
    Programmers(Finally, we need to separate team)
  • No multiple library support in Symbian ARMI
  • Global Modifiable Data (GMD) is not allowed on
    ARMI(Error message is .APP has initialized
    data)
  • non-const global variables
  • non-const static class member variables
  • non-const local static variables
  • Floating Point Exception in Symbian ARMI (Divided
    by zero, overflow, underflow)
  • Everything OK on WINS
  • I hate MMP, BLD.inf, BLDMAKE.bat, ABLD.bat

18
Phase of Development
  • Phase 1 (Released)
  • E-Book Reader
  • Phase 2 (Alpha)
  • 2D Game Engine
  • Phase 3 (Proofed of concept)
  • 3D Game Engine
  • 1500 polygons with full texture at minimum 25 FPS
    using software render
  • Support both DirectX (Windows Mobile) and OpenGL
    ES (Symbian) in the future

19
Run-Time Device Identification
  • Not reliable / Impossible in some devices
  • Big difference among devices
  • Dynamic Screen Size, Orientation, Bit Depth
  • Double Resolution Support
  • Double Buffer Support
  • Input code changed in new model
  • Key pad, Keyboard, Touch screen, Wheel, Joy
    Stick, Mouse
  • No way to create one binary for all

20
(No Transcript)
21
(No Transcript)
22
(No Transcript)
23
(No Transcript)
24
EXE INI RES - LUA
  • Software Package for redistribute to users
  • Executable File EXE, APP
  • Engine Runtime DLL
  • Resource RES
  • Data pack of Bitmap, Sprite, Sound, Model,
    Texture, Animation Files
  • Encrypted version of INI and LUA
  • Configuration File INI
  • Start-up Screen size, Orientation, Mode
  • Default Input code
  • Initialized value for device dependent variables
  • Script File LUA
  • For quick customization when we have no time to
    compile or cant compile successfully on deadline

25
J2ME
  • PC, Linux, Windows Mobile, Symbian
  • Share the same C Source Libraries
  • Binary, INI, RES, LUA for each program
  • J2ME
  • Different source tree libraries
  • Share INI
  • Converter for RES
  • No script support (no time yet, sorry)

26
Code Modules
  • Device dependent - Big mess here
  • System memory, file, I/O
  • Math floating point (with fixed point
    implementation)
  • Display surface, double buffer, direct screen
    access
  • Input keyboard, mouse, touch screen, joy stick
  • Sound wave buffer mix, volume, stereo
  • Device Independent Same on all devices (with
    many ifdef)
  • 2D Graphics surface, bitmap, sprite
  • 3D Graphics scene, 3d math, full-textured model
    animation
  • Game Template Game Loop, Flip, Input state poll
  • User Interface button, menu, textbox, list box,
    check box, radio button
  • Script Supported
  • Lua Script

27
DEBUG in Win32 Simulation
  • Device Independent part of code are exactly the
    same for every devices
  • Simulate on Desktop PC (Win32 mode)
  • Most of the program can debug on Desktop PC
    Simulation
  • We hate real device debug (Actually, we never
    success doing that on some devices)

28
Application Class
  • Initialize Screen
  • Symbian use CCoeControl Derived Object (Not its
    own Window created)
  • Infinite Loop
  • Pump up message
  • Poll Input Status
  • Call Flip function to update and switch back
    buffer

29
Display Class
  • Support many bit depth
  • 8 Bit Palette (limited support using R-G-B 2-3-2)
  • 16 Bit (R-G-B 4-4-4)
  • 16 Bit (R-G-B 5-5-5)
  • 16 Bit (R-G-B 5-6-5)
  • 24 Bit (R-G-B 8-8-8)
  • 24 Bit (B-G-R 8-8-8)
  • 32 Bit (A-R-G-B 8-8-8-8)
  • Need to use device specific graphics resource due
    to speed problem to convert
  • Impossible to do one binary for all devices
    because of resource file size

30
Font
  • Different size between each language model of
    phone
  • Locale Identification is not support on some
    devices
  • Some phone use 3rd party Language Tools
  • Solve problem by using BITMAP FONTS
  • Could not support full Unicode due to size of
    BITMAP FONTS
  • Can do pixel level anti-alias
  • Try to support sub-pixel anti-alias (Like
    ClearType but too hard to do due to the LCD
    alignment are vary

31
Memory Class
  • Use in Win32 Debug or Symbian WINS
  • Prevent memory leak
  • Use MACRO to allocate and free memory
  • Create static variable to track memory allocation
    and free
  • Report memory leak when program end
  • Not support in real devices (Symbian ARMI)
  • Use to simulate memory limitation when debug on
    desktop PC

32
Input
  • Windows Mobile GAPI
  • Define only 3 Key (A, B, C)
  • Other key is totally different on each devices
  • Symbian Phone
  • Key code is not consistency
  • Response time is vary
  • Use Message and KeyState together to solve
    problem
  • Very device dependent
  • Table translation (via INI) to our key code to
    solve problem
  • All key need to customizable many Bluetooth
    joy-stick available

33
Sound
  • Support WAVE playback with multiple wave buffer
    mix
  • Resume / Continue when phone called
  • Stereo / Pan Control
  • Volume Control
  • Port the MOD player to play music save memory
    but reduce speed

34
Math
  • Floating point math
  • Use compiler supported
  • Not use Double due to memory and speed
  • Dont forget to turn off exception on Symbian
  • Support Fixed point math
  • Full compatible class (floating point / fixed
    point)
  • Support future devices easily
  • Easy to overflow / underflow
  • We like its speed

35
Future (Nightmare)
  • Windows Mobile 5.0
  • Nokia UI 3.0 (Symbian 9.0)
  • Dynamic Screen (Size, Resolution, Orientation)
  • Double Resolution
  • Double Screen
  • Direct X (Windows Mobile) vs. Open GL (Symbian)

36
Game Design
  • Screen Design
  • Display Size Bit Depth
  • Display Orientation / Dynamic Change
  • Double Resolution / Pixel Pitch
  • Sharp new 3D Screen
  • No glasses 3D Screen
  • Switch between 2D and 3D mode

37
(No Transcript)
38
(No Transcript)
39
Game Design
  • Input Problem
  • Keypad
  • Keyboard
  • Touch Screen Button
  • Stylus

40
(No Transcript)
41
Vector Graphics
  • We ported Flash player to our library
  • Good for title or cut-scene
  • Too complicate to add script control
  • Windows Meta File support
  • Good result in speed
  • Looks bad BITMAP is much better
  • Need to pre-render to create sprite
  • 3D textured surface
  • May be the best solution
  • Still need multiple texture file
  • Get back to use multiple bitmap file

42
Question?
  • E-Mail jimmy _at_ jimmysoftware.com
Write a Comment
User Comments (0)
About PowerShow.com