+ All Categories
Home > Entertainment & Humor > Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

Date post: 28-Nov-2014
Category:
Upload: guest991eb3
View: 6,550 times
Download: 0 times
Share this document with a friend
Description:
A look at OpenKODE, and it's first widespread commercial implementation Airplay. This presentation was given as part of the OverTheAir event on 4th April 08, and included a large portion of "live coding".
Popular Tags:
26
1 OpenKODE, Airplay and the new reality of “Write Once, Run Anywhere” April 2008 Tim Closs, CTO Mark Sheehan, Key Engineer Ideaworks3D Ltd.
Transcript
Page 1: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

1

OpenKODE, Airplayand the new reality of

“Write Once, Run Anywhere”

April 2008

Tim Closs, CTO

Mark Sheehan, Key Engineer

Ideaworks3D Ltd.

Page 2: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

2

Overview

• What is OpenKODE?

• What is Airplay?

• OpenKODE - detailed overview

• OpenKODE coding

• Airplay - detailed overview

• Airplay coding

Page 3: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

3

Introduction to Ideaworks3D

• Founded 1999

• 1999 – 2003: Technology Development (Vecta3D, Optimaze, Airplay Online for Nokia)

• 2003 – 2005: Mobile Games Studio (N-Gage, BREW, Symbian, PocketPC)

• 2005 – 2008: Technology and Games

• 65 people today

• Offices in London, Los Angeles, Kyoto

• Co-editors of OpenKODE Core spec, and provided initial API draft to Khronos working group.

Page 4: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

4

Ideaworks3D recent Studio projects

Dirge of Cerberus™ Lost Episode

Final Fantasy® VII

PGR™ Mobile

(native versions)Need For Speed™ Most Wanted

•The Sims 2™ MobileSystem Rush™

EvolutionMetal Gear Solid™ Mobile

Page 5: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

5

What is OpenKODE?

• An open standard for mobile application portability.

• A Khronos group initiative.

• Royalty-free, cross-platform native APIs.

• Increased source-portability for rich media and graphics applications.

Page 6: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

6

What is OpenKODE’s problem set?

Both embedded software developers and application software developers face fragmentation at the device driver level and the OS level.

Also, device drivers lack interoperability, which limits features.

Page 7: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

7

OpenKODE fights fragmentation

OpenKODE unifies interface to OS and drivers, and increases driver interoperability.

Page 8: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

8

What is Airplay?

• A complete development and deployment environment for rich-media mobile applications.

• Allows a single ARM binary to be deployed to all handsets, irrespective of OS, form factor or chipset.

• Powerful tools and middleware modules including the world’s fastest mobile software renderer, and a scalable graphics pipeline which exploits OpenGL ES if GPU is present, otherwise reverts to SW.

• Provides full real-time desktop emulation and source-level debugging of the ARM binary.

• Conformant with OpenKODE on every commercially-relevant mobile platform.

Page 9: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

9

How does Airplay differ from OpenKODE?

• Airplay is an implementation of OpenKODE for every platform you’ll ever want; Symbian OS (Series60 and UIQ), BREW, Windows Mobile, Mobile Linux, N-Gage, iPhone, Android… as well as Windows and Linux desktops.

• Airplay supports OpenKODE but also provides a much richer API set, including full C and C++ standard libraries.

• Airplay provides binary compatibility – you don’t even need to install any OS SDKs. Binary portability across devices means you build 1 SKU – huge savings on porting.

• Desktop ARM debugging provides savings for development and testing.

• Advanced 3D graphics tools and middleware.

Page 10: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

10

OpenKODE – detailed overview

OpenKODE is actually two things:

1. OpenKODE Core APIs: POSIX-like C APIs for OS portability.

2. Trans-media APIs: C APIs for driver interoperability.

Chipset vendors (who also tend to be the providers of reference device drivers) tend to emphasise (2), also called “Trans-APIs”. Their hardware can accelerate multiple things (2D, 3D, video, audio) and they would like to see this exploited.

Application developers or middleware providers (like Ideaworks3D) tend to emphasise (1). Their main concern is reducing the cost of deploying to half a dozen platforms and a couple of hundred handsets.

Page 11: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

11

OpenKODE – How things fit

Page 12: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

12

Why do we need trans-media APIs?

Example: using a video stream as a texture.

Currently requires client-side data copying.

In future, OpenKODE trans-media APIs remove this critical step.

Page 13: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

13

Why do we need trans-media APIs?

Handheld “GeoBlog” Concept(courtesy of NVIDIA)

Navigation using 2D maps, satellite, terrain and 3D city data.

GPS phone captures and uploads images, audio and video.

Location tagging inserts media correctly into the map.

Blog can be viewed on handheld or PC.

Page 14: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

14

Trans-media APIs - detail

• Previously, EGL was an API for draw-surface management, associated with OpenGL ES.

• EGL is now also the home for the OpenKODE Trans-media APIs. These are a small number of new APIs which allow different media drivers to interoperate.

• What this essentially boils down to is a shared concept of an image buffer (EGLImage).

• OpenKODE 1.0 mandates an implementation of EGL 1.3 plus defined extensions. These allow OpenGL ES 1.1 and OpenVG 1.0 to interoperate.

• However, it will take a while for the required versions of EGL, OpenGL ES, OpenVG, OpenMAX etc. to appear in handsets (first devices end ’08).

• Generally, chipset providers (e.g. NVIDIA) will provide the trans-media API implementations.

Page 15: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

15

OpenKODE Core

“The typical rule of thumb for a developer is that one-third of the total cost of development will go towards porting, one-third towards development of the game itself and one-third to quality assurance (QA). Since most of the QA costs are related to porting, the costs associated with this issue equals two-thirds of the total cost of game development.”

Informa, Mobile Entertainment: The Future of Wireless Content 4th Edition

Fragmentation is a killer. Here’s an example from an analysis of costs involved in mobile game development/deployment:

OpenKODE Core offers a royalty-free open standard which aims to reduce fragmentation and therefore greatly reduce cost.

Page 16: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

16

OpenKODE Core APIs

• OpenKODE Core provides source-level abstraction of common operating system services in an event-driven environment.

• Based on POSIX and also draws on the C89, C99 standards.

• Carefully designed to be implementable over any mobile OS; none of the C std library is assumed.

• APIs cover the following areas:• Threads – however an implementation could provide only a single thread.

• Events – either loop-in-application, or loop-in-framework.

• Utility – e.g. string, random, memory, assert.

• Math – analogs of much of the C std math library.

• Timer – analogs of much of the C std math library, plus timed events.

• File – virtual file system, providing option of file-sandboxed apps.

• Networking – similar to BSD, but uses events to notify send/receive.

• IO – e.g. keypad input, vibration output – very extensible.

• Windowing – however an implementation could support only full-screen.

Page 17: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

17

OpenKODE Core – who provides it?

• OpenKODE Core has no implementation dependencies on the media APIs.

• Therefore OpenKODE Core can be deployed onto a platform independently from the media APIs.

• Middleware vendors (e.g. Ideaworks3D with Airplay) will include OpenKODE Core implementations within their products to provide portability even if OpenKODE Core is not made available by the platform vendor.

• It is hoped that platform vendors will provide OpenKODE Core as part of a complete OpenKODE implementation to enable easy porting of OpenKODE applications to their products. However, there is no direct evidence yet that this will happen.

Page 18: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

18

OpenKODE Core – implementation

// Symbian (assume main game class derived from required base class)TKeyResponse CMyAppCnt::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType){

if (aType == EEventKey && aKeyEvent.iCode == SYMBIAN_KEY_CODE){

// Do whatever}

} // Brew (assume main game class derived from required base class)void GameMainCanvas::keyPress(uint16 key){

if (key == BREW_KEY_CODE){

// Do whatever }} // Windows Mobile - standard window message handlerLRESULT CALLBACK s3eWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){

if (uMsg == case WM_KEYDOWN && wParam == WINMOBILE_KEY_CODE){

// Do whatever}

}

Page 19: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

19

OpenKODE Core – implementation

#include "KD/kd.h"int kdMain(KDint argc, const KDchar* argv[]){

while(1){

// Update events, including keyboard.kdPumpEvents();

 // Poll the state of 'Game key A' and put the result in// res. Game key A should be mapped onto whatever is the// device's normal fire button, so the game developer doesn't// have to worry about what that is.int res = 0;kdInputPollb(KD_IO_GAMEKEYS_A, 1, &res);

// Now see if our key is pressed.if (res){

// Do whatever.kdAssert(("It's been pressed", 0));

}}

}

In OpenKODE Core, the keypress example above reduces to the following:

Page 20: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

20

OpenKODE Core – limitations

• No binary format.

• Still need to build each SKU within OS proprietary environment.

• If OpenKODE appears for iPhone, you’ll still need a Mac!

• Vendors can claim conformance through a single platform instance, i.e. handset... how much effort will go into ensuring absolutely consistent behaviour across all handsets?

• Will OpenKODE ever appear as embedded software, or will developers have to continue to pay middleware providers?

Page 21: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

21

Let’s OpenKODE!

Page 22: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

22

What is Airplay?

• A complete development and deployment environment for rich-media mobile applications.

• Allows a single ARM binary to be deployed to all handsets, irrespective of OS, form factor or chipset.

• Conformant with OpenKODE on every commercially-relevant mobile platform.

• Provides full real-time desktop emulation and source-level debugging of the ARM binary.

• Powerful tools and middleware modules including the world’s fastest mobile software renderer, and a scalable graphics pipeline which exploits OpenGL ES if GPU is present, otherwise reverts to SW.

Page 23: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

23

Airplay programmer workflow

Windows

build

Project text file (.MKB)

Airplay MKB Python Script

Programming IDE workspace

Airplay Windows Simulator

ARM

build

ARM

Real Time System Model (RTSM)

• Single text file (.MKB) describes all project settings.

• Windows Explorer integration means double-clicking this file creates the IDE (Microsoft Visual C++) workspace.

• Workspace is provided with Windows and ARM, Debug and Release configurations.

• Programmer starts development using Windows Debug configuration, testing using Airplay Windows Simulator. This performs identically to a handset.

• Programmer then uses ARM Debug configuration and tests actual ARM binary in ARM RTSM tool, on the desktop.

• Finally programmer builds using ARM Release configuration, and is ready to deploy.

Device

Page 24: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

24

Let’s Airplay!

Page 25: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

25

Metal Gear Solid™ Mobile

Metal Gear Solid™ Mobile now released, Verizon and KDDI

Winner “Best Game”, IMGA awards, Barcelona Feb 08

Winner “Operators’ Choice”, IMGA awards, Barcelona Feb 08

Page 26: Open Kode, Airplay And The New Reality Of Write Once Run Anywhere

26

Thank you!

Julian Jones

VP Business Development

[email protected]

Jeremy Adams

VP Business Development, EMEA

[email protected]

Tim Closs

CTO

[email protected]


Recommended