SlideShare a Scribd company logo
OpenKODE, Airplay and the new reality of “ Write Once, Run Anywhere” April 2008 Tim Closs, CTO Mark Sheehan, Key Engineer Ideaworks3D Ltd.
Overview   What is OpenKODE? What is Airplay? OpenKODE - detailed overview OpenKODE coding Airplay - detailed overview Airplay coding
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.
Ideaworks3D recent Studio projects Dirge of Cerberus™ Lost Episode Final Fantasy® VII PGR ™  Mobile (native versions) Need For Speed ™ Most Wanted The Sims 2™ Mobile System Rush™ Evolution Metal Gear Solid™ Mobile
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.
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.
OpenKODE fights fragmentation OpenKODE unifies interface to OS and drivers, and increases driver interoperability.
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.
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.
OpenKODE – detailed overview OpenKODE is actually two things: OpenKODE Core  APIs: POSIX-like C APIs for OS portability. 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.
OpenKODE – How things fit
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.
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.
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.
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.
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.
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.
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 handler LRESULT CALLBACK s3eWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (uMsg == case WM_KEYDOWN && wParam == WINMOBILE_KEY_CODE) { // Do whatever } }
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:
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?
Let’s OpenKODE!
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.
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
Let’s Airplay!
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
Thank you! Julian Jones VP Business Development [email_address] Jeremy Adams VP Business Development, EMEA [email_address] Tim Closs CTO [email_address]
Ad

More Related Content

What's hot (20)

PHP And Silverlight - DevDays session
PHP And Silverlight - DevDays sessionPHP And Silverlight - DevDays session
PHP And Silverlight - DevDays session
Maarten Balliauw
 
Les ZAPeroTech #4 : découverte de Flutter
Les ZAPeroTech #4 : découverte de FlutterLes ZAPeroTech #4 : découverte de Flutter
Les ZAPeroTech #4 : découverte de Flutter
DocDoku
 
Android
AndroidAndroid
Android
Murtaza Abbas
 
Silverlight
SilverlightSilverlight
Silverlight
Murtaza Abbas
 
The benefits of running simulations in the cloud vs. on-premise – Unite Copen...
The benefits of running simulations in the cloud vs. on-premise – Unite Copen...The benefits of running simulations in the cloud vs. on-premise – Unite Copen...
The benefits of running simulations in the cloud vs. on-premise – Unite Copen...
Unity Technologies
 
Android
AndroidAndroid
Android
Shivam Tuteja
 
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Jianbin LIN
 
Windows 8 App and Game Development Landscape
Windows 8 App and Game Development LandscapeWindows 8 App and Game Development Landscape
Windows 8 App and Game Development Landscape
Jim O'Neil
 
Developing for HoloLen 2 with Unity- Unite Copenhagen 2019
Developing for HoloLen 2 with Unity- Unite Copenhagen 2019Developing for HoloLen 2 with Unity- Unite Copenhagen 2019
Developing for HoloLen 2 with Unity- Unite Copenhagen 2019
Unity Technologies
 
TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013
Jeff Haynie
 
Cross-platform development with Qt and OpenGL ES 2.0
Cross-platform development with Qt and OpenGL ES 2.0Cross-platform development with Qt and OpenGL ES 2.0
Cross-platform development with Qt and OpenGL ES 2.0
feldifux
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Android
guest213e237
 
Simulating Lidar Sensors for Computer Vision
Simulating Lidar Sensors for Computer VisionSimulating Lidar Sensors for Computer Vision
Simulating Lidar Sensors for Computer Vision
Unity Technologies
 
Primers on mobile application development
Primers on mobile application developmentPrimers on mobile application development
Primers on mobile application development
Satta Nathan
 
Adobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for AndroidAdobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for Android
Mark Doherty
 
Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...
Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...
Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...
AugmentedWorldExpo
 
Firefox os
Firefox osFirefox os
Firefox os
Shruthi Srigadi
 
Datasheet: Openlook
Datasheet: OpenlookDatasheet: Openlook
Datasheet: Openlook
Fresche Solutions
 
INTEL XDK
INTEL XDKINTEL XDK
INTEL XDK
Sumit Rajpal
 
TiConf NYC 2014
TiConf NYC 2014TiConf NYC 2014
TiConf NYC 2014
Jeff Haynie
 
PHP And Silverlight - DevDays session
PHP And Silverlight - DevDays sessionPHP And Silverlight - DevDays session
PHP And Silverlight - DevDays session
Maarten Balliauw
 
Les ZAPeroTech #4 : découverte de Flutter
Les ZAPeroTech #4 : découverte de FlutterLes ZAPeroTech #4 : découverte de Flutter
Les ZAPeroTech #4 : découverte de Flutter
DocDoku
 
The benefits of running simulations in the cloud vs. on-premise – Unite Copen...
The benefits of running simulations in the cloud vs. on-premise – Unite Copen...The benefits of running simulations in the cloud vs. on-premise – Unite Copen...
The benefits of running simulations in the cloud vs. on-premise – Unite Copen...
Unity Technologies
 
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Jianbin LIN
 
Windows 8 App and Game Development Landscape
Windows 8 App and Game Development LandscapeWindows 8 App and Game Development Landscape
Windows 8 App and Game Development Landscape
Jim O'Neil
 
Developing for HoloLen 2 with Unity- Unite Copenhagen 2019
Developing for HoloLen 2 with Unity- Unite Copenhagen 2019Developing for HoloLen 2 with Unity- Unite Copenhagen 2019
Developing for HoloLen 2 with Unity- Unite Copenhagen 2019
Unity Technologies
 
TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013
Jeff Haynie
 
Cross-platform development with Qt and OpenGL ES 2.0
Cross-platform development with Qt and OpenGL ES 2.0Cross-platform development with Qt and OpenGL ES 2.0
Cross-platform development with Qt and OpenGL ES 2.0
feldifux
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Android
guest213e237
 
Simulating Lidar Sensors for Computer Vision
Simulating Lidar Sensors for Computer VisionSimulating Lidar Sensors for Computer Vision
Simulating Lidar Sensors for Computer Vision
Unity Technologies
 
Primers on mobile application development
Primers on mobile application developmentPrimers on mobile application development
Primers on mobile application development
Satta Nathan
 
Adobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for AndroidAdobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for Android
Mark Doherty
 
Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...
Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...
Philipp Nagele (Wikitude): Context Is for Kings: Putting Context in the Hands...
AugmentedWorldExpo
 

Similar to Open Kode, Airplay And The New Reality Of Write Once Run Anywhere (20)

Dot Net Project Mini Game
Dot Net Project Mini GameDot Net Project Mini Game
Dot Net Project Mini Game
varun arora
 
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
Paris Android LiveCode - Creating cross-platform 3D apps with MinkoParis Android LiveCode - Creating cross-platform 3D apps with Minko
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
Minko3D
 
Cross platform development with C#
Cross platform development with C#Cross platform development with C#
Cross platform development with C#
Michele Scandura
 
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
Paris Open Source Summit
 
Minko - Creating cross-platform 3D apps with Minko
Minko - Creating cross-platform 3D apps with MinkoMinko - Creating cross-platform 3D apps with Minko
Minko - Creating cross-platform 3D apps with Minko
Minko3D
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
Yoojoo Jang
 
Synapse india reviews sharing asp.net
Synapse india reviews sharing  asp.netSynapse india reviews sharing  asp.net
Synapse india reviews sharing asp.net
SynapseindiaComplaints
 
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSLMinko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko3D
 
Symbian OS
Symbian  OS Symbian  OS
Symbian OS
Adit Pathak
 
Asp dot net
Asp dot netAsp dot net
Asp dot net
husnara mohammad
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
Karthika Parthasarathy
 
Android
Android Android
Android
Nishant Jain
 
.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions
QUONTRASOLUTIONS
 
Asp net
Asp netAsp net
Asp net
MohitKumar1985
 
Minko - Flash Conference #5
Minko - Flash Conference #5Minko - Flash Conference #5
Minko - Flash Conference #5
Minko3D
 
test2PPT
test2PPTtest2PPT
test2PPT
Admin
 
Asp net
Asp netAsp net
Asp net
MohitKumar1985
 
jhkghj
jhkghjjhkghj
jhkghj
Admin
 
Android architecture
Android architectureAndroid architecture
Android architecture
Hari Krishna
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_gl
changehee lee
 
Dot Net Project Mini Game
Dot Net Project Mini GameDot Net Project Mini Game
Dot Net Project Mini Game
varun arora
 
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
Paris Android LiveCode - Creating cross-platform 3D apps with MinkoParis Android LiveCode - Creating cross-platform 3D apps with Minko
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
Minko3D
 
Cross platform development with C#
Cross platform development with C#Cross platform development with C#
Cross platform development with C#
Michele Scandura
 
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
Paris Open Source Summit
 
Minko - Creating cross-platform 3D apps with Minko
Minko - Creating cross-platform 3D apps with MinkoMinko - Creating cross-platform 3D apps with Minko
Minko - Creating cross-platform 3D apps with Minko
Minko3D
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
Yoojoo Jang
 
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSLMinko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko3D
 
.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions
QUONTRASOLUTIONS
 
Minko - Flash Conference #5
Minko - Flash Conference #5Minko - Flash Conference #5
Minko - Flash Conference #5
Minko3D
 
test2PPT
test2PPTtest2PPT
test2PPT
Admin
 
jhkghj
jhkghjjhkghj
jhkghj
Admin
 
Android architecture
Android architectureAndroid architecture
Android architecture
Hari Krishna
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_gl
changehee lee
 
Ad

Recently uploaded (20)

mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...
Leonid Ledata
 
Movement intervention in sepecial population children .pptx
Movement intervention in sepecial population children .pptxMovement intervention in sepecial population children .pptx
Movement intervention in sepecial population children .pptx
nakisanianeani
 
1883 Season 2_ What’s Really Going On With the Yellowstone Prequel.docx
1883 Season 2_ What’s Really Going On With the Yellowstone Prequel.docx1883 Season 2_ What’s Really Going On With the Yellowstone Prequel.docx
1883 Season 2_ What’s Really Going On With the Yellowstone Prequel.docx
voice ofarticle
 
mr discrimination________________________________________________________1.pdf
mr discrimination________________________________________________________1.pdfmr discrimination________________________________________________________1.pdf
mr discrimination________________________________________________________1.pdf
Leonid Ledata
 
A Hypothetical ad for ether a Video Game, TV show, Movie.
A Hypothetical ad for ether a Video Game, TV show,  Movie.A Hypothetical ad for ether a Video Game, TV show,  Movie.
A Hypothetical ad for ether a Video Game, TV show, Movie.
skylarleakeybusiness
 
mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...
Leonid Ledata
 
mr discrimination________________________________________________________.pdf
mr discrimination________________________________________________________.pdfmr discrimination________________________________________________________.pdf
mr discrimination________________________________________________________.pdf
Leonid Ledata
 
mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...
Leonid Ledata
 
Best IPTV Provider 2025 Top 5 Ranked IPTV Subscriptions.pdf
Best IPTV Provider 2025 Top 5 Ranked IPTV Subscriptions.pdfBest IPTV Provider 2025 Top 5 Ranked IPTV Subscriptions.pdf
Best IPTV Provider 2025 Top 5 Ranked IPTV Subscriptions.pdf
MimounKhamhand1
 
ch11.pptKGYUTFYDRERLJIOUY7T867RVHOJIP09-IU08Y7GTFGYU890-I90UIYGUI
ch11.pptKGYUTFYDRERLJIOUY7T867RVHOJIP09-IU08Y7GTFGYU890-I90UIYGUIch11.pptKGYUTFYDRERLJIOUY7T867RVHOJIP09-IU08Y7GTFGYU890-I90UIYGUI
ch11.pptKGYUTFYDRERLJIOUY7T867RVHOJIP09-IU08Y7GTFGYU890-I90UIYGUI
Abodahab
 
10 Best IPTV Free Trials in 2025 (Try Before You Buy).pdf
10 Best IPTV Free Trials in 2025 (Try Before You Buy).pdf10 Best IPTV Free Trials in 2025 (Try Before You Buy).pdf
10 Best IPTV Free Trials in 2025 (Try Before You Buy).pdf
BEST IPTV
 
Millie Bobby Brown Life Biography The Celeb Post
Millie Bobby Brown Life Biography The Celeb PostMillie Bobby Brown Life Biography The Celeb Post
Millie Bobby Brown Life Biography The Celeb Post
Lionapk
 
Understanding Rich Messaging Services Enhancing Communication in the Digital ...
Understanding Rich Messaging Services Enhancing Communication in the Digital ...Understanding Rich Messaging Services Enhancing Communication in the Digital ...
Understanding Rich Messaging Services Enhancing Communication in the Digital ...
Times Mobile
 
Travis Kelce Life Biography The Celeb Post
Travis Kelce Life Biography The Celeb PostTravis Kelce Life Biography The Celeb Post
Travis Kelce Life Biography The Celeb Post
Lionapk
 
Jeopardy u.s. independece day game for esl students
Jeopardy  u.s. independece day game for esl studentsJeopardy  u.s. independece day game for esl students
Jeopardy u.s. independece day game for esl students
JohanOrtega18
 
Environmental_Footprint_LCA_Project_Creative.pptx
Environmental_Footprint_LCA_Project_Creative.pptxEnvironmental_Footprint_LCA_Project_Creative.pptx
Environmental_Footprint_LCA_Project_Creative.pptx
shahbaz78678678678
 
Prelims Saarang IITM Chennai Finals+ Answers.pptx
Prelims Saarang IITM Chennai Finals+ Answers.pptxPrelims Saarang IITM Chennai Finals+ Answers.pptx
Prelims Saarang IITM Chennai Finals+ Answers.pptx
gabssienna0o
 
Adapting to Change_ How Los Angeles' TV Industry is Evolving by David Shane P...
Adapting to Change_ How Los Angeles' TV Industry is Evolving by David Shane P...Adapting to Change_ How Los Angeles' TV Industry is Evolving by David Shane P...
Adapting to Change_ How Los Angeles' TV Industry is Evolving by David Shane P...
David Shane PR
 
The Psychology of Scene Transitions - Mark Murphy Director
The Psychology of Scene Transitions - Mark Murphy DirectorThe Psychology of Scene Transitions - Mark Murphy Director
The Psychology of Scene Transitions - Mark Murphy Director
Mark Murphy Director
 
Khloé Kardashian Biography The Celeb Post
Khloé Kardashian Biography The Celeb PostKhloé Kardashian Biography The Celeb Post
Khloé Kardashian Biography The Celeb Post
Lionapk
 
mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...
Leonid Ledata
 
Movement intervention in sepecial population children .pptx
Movement intervention in sepecial population children .pptxMovement intervention in sepecial population children .pptx
Movement intervention in sepecial population children .pptx
nakisanianeani
 
1883 Season 2_ What’s Really Going On With the Yellowstone Prequel.docx
1883 Season 2_ What’s Really Going On With the Yellowstone Prequel.docx1883 Season 2_ What’s Really Going On With the Yellowstone Prequel.docx
1883 Season 2_ What’s Really Going On With the Yellowstone Prequel.docx
voice ofarticle
 
mr discrimination________________________________________________________1.pdf
mr discrimination________________________________________________________1.pdfmr discrimination________________________________________________________1.pdf
mr discrimination________________________________________________________1.pdf
Leonid Ledata
 
A Hypothetical ad for ether a Video Game, TV show, Movie.
A Hypothetical ad for ether a Video Game, TV show,  Movie.A Hypothetical ad for ether a Video Game, TV show,  Movie.
A Hypothetical ad for ether a Video Game, TV show, Movie.
skylarleakeybusiness
 
mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...
Leonid Ledata
 
mr discrimination________________________________________________________.pdf
mr discrimination________________________________________________________.pdfmr discrimination________________________________________________________.pdf
mr discrimination________________________________________________________.pdf
Leonid Ledata
 
mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...mr discrimination________________________________________________________1111...
mr discrimination________________________________________________________1111...
Leonid Ledata
 
Best IPTV Provider 2025 Top 5 Ranked IPTV Subscriptions.pdf
Best IPTV Provider 2025 Top 5 Ranked IPTV Subscriptions.pdfBest IPTV Provider 2025 Top 5 Ranked IPTV Subscriptions.pdf
Best IPTV Provider 2025 Top 5 Ranked IPTV Subscriptions.pdf
MimounKhamhand1
 
ch11.pptKGYUTFYDRERLJIOUY7T867RVHOJIP09-IU08Y7GTFGYU890-I90UIYGUI
ch11.pptKGYUTFYDRERLJIOUY7T867RVHOJIP09-IU08Y7GTFGYU890-I90UIYGUIch11.pptKGYUTFYDRERLJIOUY7T867RVHOJIP09-IU08Y7GTFGYU890-I90UIYGUI
ch11.pptKGYUTFYDRERLJIOUY7T867RVHOJIP09-IU08Y7GTFGYU890-I90UIYGUI
Abodahab
 
10 Best IPTV Free Trials in 2025 (Try Before You Buy).pdf
10 Best IPTV Free Trials in 2025 (Try Before You Buy).pdf10 Best IPTV Free Trials in 2025 (Try Before You Buy).pdf
10 Best IPTV Free Trials in 2025 (Try Before You Buy).pdf
BEST IPTV
 
Millie Bobby Brown Life Biography The Celeb Post
Millie Bobby Brown Life Biography The Celeb PostMillie Bobby Brown Life Biography The Celeb Post
Millie Bobby Brown Life Biography The Celeb Post
Lionapk
 
Understanding Rich Messaging Services Enhancing Communication in the Digital ...
Understanding Rich Messaging Services Enhancing Communication in the Digital ...Understanding Rich Messaging Services Enhancing Communication in the Digital ...
Understanding Rich Messaging Services Enhancing Communication in the Digital ...
Times Mobile
 
Travis Kelce Life Biography The Celeb Post
Travis Kelce Life Biography The Celeb PostTravis Kelce Life Biography The Celeb Post
Travis Kelce Life Biography The Celeb Post
Lionapk
 
Jeopardy u.s. independece day game for esl students
Jeopardy  u.s. independece day game for esl studentsJeopardy  u.s. independece day game for esl students
Jeopardy u.s. independece day game for esl students
JohanOrtega18
 
Environmental_Footprint_LCA_Project_Creative.pptx
Environmental_Footprint_LCA_Project_Creative.pptxEnvironmental_Footprint_LCA_Project_Creative.pptx
Environmental_Footprint_LCA_Project_Creative.pptx
shahbaz78678678678
 
Prelims Saarang IITM Chennai Finals+ Answers.pptx
Prelims Saarang IITM Chennai Finals+ Answers.pptxPrelims Saarang IITM Chennai Finals+ Answers.pptx
Prelims Saarang IITM Chennai Finals+ Answers.pptx
gabssienna0o
 
Adapting to Change_ How Los Angeles' TV Industry is Evolving by David Shane P...
Adapting to Change_ How Los Angeles' TV Industry is Evolving by David Shane P...Adapting to Change_ How Los Angeles' TV Industry is Evolving by David Shane P...
Adapting to Change_ How Los Angeles' TV Industry is Evolving by David Shane P...
David Shane PR
 
The Psychology of Scene Transitions - Mark Murphy Director
The Psychology of Scene Transitions - Mark Murphy DirectorThe Psychology of Scene Transitions - Mark Murphy Director
The Psychology of Scene Transitions - Mark Murphy Director
Mark Murphy Director
 
Khloé Kardashian Biography The Celeb Post
Khloé Kardashian Biography The Celeb PostKhloé Kardashian Biography The Celeb Post
Khloé Kardashian Biography The Celeb Post
Lionapk
 
Ad

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

  • 1. OpenKODE, Airplay and the new reality of “ Write Once, Run Anywhere” April 2008 Tim Closs, CTO Mark Sheehan, Key Engineer Ideaworks3D Ltd.
  • 2. Overview What is OpenKODE? What is Airplay? OpenKODE - detailed overview OpenKODE coding Airplay - detailed overview Airplay coding
  • 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.
  • 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™ Mobile System Rush™ Evolution Metal Gear Solid™ Mobile
  • 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.
  • 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.
  • 7. OpenKODE fights fragmentation OpenKODE unifies interface to OS and drivers, and increases driver interoperability.
  • 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.
  • 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.
  • 10. OpenKODE – detailed overview OpenKODE is actually two things: OpenKODE Core APIs: POSIX-like C APIs for OS portability. 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.
  • 11. OpenKODE – How things fit
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 handler LRESULT CALLBACK s3eWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (uMsg == case WM_KEYDOWN && wParam == WINMOBILE_KEY_CODE) { // Do whatever } }
  • 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:
  • 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?
  • 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.
  • 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
  • 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
  • 26. Thank you! Julian Jones VP Business Development [email_address] Jeremy Adams VP Business Development, EMEA [email_address] Tim Closs CTO [email_address]