Cross Platform

Challenges + Opportunities

For games and interactive developers.

Bruno Fonzi
ART+TECH Commodore at CODAME
Bruno Fonzi
About Me
Bruno Fonzi
•
•

Mostly a Geek!	

Also UX Software engineer 	

• C/C++/AS/JS/…	

• Client/Server (mostly client)	

• Web/Mobile
• Gaming

Bruno Fonzi
Worked at

European Space Agency (ESA)

Project Hermes: The European Spaceplane
Bruno Fonzi
Worked at

European Space Agency (esa)

Project Silex: World First Data Transmission Between Satellites Using Laser Light
Bruno Fonzi
Worked at
Quark

Bruno Fonzi
Worked at
Adobe

Bruno Fonzi
Worked at

Powerflasher (FDT)

Bruno Fonzi
Worked at Startups
Around the world

Bruno Fonzi
Worked at Startups
Virtual Vegas

Bruno Fonzi
Landed at Lanica
co-founder

Bruno Fonzi
Commodore at CODAME

Bruno Fonzi
My Journey to Gaming

Bruno Fonzi
This is where it all started!
TI 99/A4

Bruno Fonzi
TI 99/A4 Specs
	


Released:

1981

Processor:

TMS9900, 16(!) Bit

Mhz:

3,3

RAM:

16 KB, expandable to 48 KB 	


ROM:

26 KB, expandable

OS:

Basic in ROM, Extendes-Basic with Cartridge	


Resolution:

Graphic: 256x192, 64x48, 32x24,

Text:

40x24

Colors:

15 + 1 transparent color

	


	


Bruno Fonzi
How it looked!

Bruno Fonzi
This Too!

Bruno Fonzi
Cross Platform
Challenges + Opportunities

A bit of History

Bruno Fonzi
Cross Platform in the 80s
•
•
•
•
•
•

Few colors	

Screen was mostly our tv	

Text based	

Basic was the language	

Assembler otherwise	

Cross-platform:
not really an option

Bruno Fonzi
Cross Platform in the 90s

• 92% Windows PCs	

• 5% Macintosh	

• 3% Unix

Bruno Fonzi
Cross Platform in the 90s
Revolution
• Hardware 	

Cheaper and more powerful	

• Java 	

Write once, run anywhere	

• Internet 	

AOL: you got mail!

Bruno Fonzi
Apple Evolution

25 Years of Mac: Product Timeline [Wired]
Bruno Fonzi
Cross Platform Now
Mobile

PCs

Tablets

Other Devices

Bruno Fonzi
What’s next?
So much more!

Bruno Fonzi
Cross Platform
Challenges + Opportunities

Development & Design
Considerations

Bruno Fonzi
Operating Systems
Landscape

•
•
•
•
•

Desktops
Windows, OSX, Linux, ChromeOS …
Browsers
IE, Safari, Chrome, Firefox, Opera… (desktop and mobile)
Mobile
iOS, Android, Windows 8, Blackberry, FirefoxOS, Ubuntu …
Game Consoles & Media Receivers
Xbox, Playstation, Wii, OUYA, GameStick, ChromeCast,
Apple TV …
Embedded Devices
“iWatch”, Google Glass, Arduino, Car Dashboards ...
Bruno Fonzi
Design & Functionality
Diversity

•
•
•
•
•

Screens
Sizes, Colors, Portrait, Landscape …	

Power
Processor, Memory, Battery …	

Inputs
Keyboard, Gestures …	

Capabilities
Accelerometer, Multi Touch, Geolocation …	

Programming Languages
C++, Objective C, Java, JavaScript …
Bruno Fonzi
Fragmentation

Bruno Fonzi

Lanica, Inc.
Android Fragmentation

Bruno Fonzi

Lanica, Inc.
Apple Screen Fragmentation

iOS Fragmentation

*via PhoneArena

Bruno Fonzi

Lanica, Inc.
More Challenges
Distribution & Monetization
•
•
•
•
•

Mobile Market Places
Apple, Android, Amazon, Nook, GetJar… (100s!)	

Social Networks & Web Aggregators
Facebook, Twitter, Google+, GREE …	

Mochi Media, Kongregate …
Video Game Distributors	

Steam, XBox Live, GREE …
Desktop Software Platforms	

Umbutu, Mac, Windows, Chrome Store …
Game Publishers	

EA, Activision, Ubisoft, Zynga, Sony …
Bruno Fonzi
+ More Challenges
Advertise
Let the people know about your app/service
!

•
•
•
•
•
•
•
•

Pre-loads
Recommendation sites
SEO
Press
Ad Networks
Giveaways
Cross promotions
User acquisition
Bruno Fonzi
++ More Challenges
Development & Design Strategies

Choose a Technical
Architecture Strategy

Bruno Fonzi
#1 Multiple Code & Designs
Desktop Web Web Mobile
Desktop Mobile Device
Desktop

Bruno Fonzi
#2 Single Code & Multiple Designs
Desktop Web Web Mobile
Desktop Mobile Device

Error Messages
Web Connectivity
Platform Code

Core Code

Interaction Logic
Core Logic

System Capabilities

Framework
Bruno Fonzi
#3 Single Code Base & Design
Desktop Web Web Mobile
Desktop Mobile Device

Error Messages
Web Connectivity
Platform Code

Core Code

• Screen Dimensions 	

• Platform Logic	

• System Capabilities
• Cloud Services
• ...

Interaction Logic
Core Logic

System Capabilities

Framework
Bruno Fonzi
+++ More Challenges
Technical Solutions

•
•
•
•
•

Native Objective C, Java, C/C++, C# …	

Web Flash, HTML5 (JQuery, ImpactJS, Angular…)	

Hybrid Titanium (Appcellerator), Platino (Lanica)…	

Interpreted Adobe Air, PhoneGap…	

Generated GWT, Haxe, CoronaSDK, Unity3D …

Bruno Fonzi
Technology Web Apps
Frameworks Help

•

HTML5 Canvas
• Sencha Touch
• ImpactJS
• JQuery Mobile
• LimeJS
• Angular
• Polymer
• …

Bruno Fonzi
Technology Web Apps
Frameworks Help

•

WebGL
• Goo Engine
• Ludei
• Three.js
• Cocos2D-JS
• Isogenic
• …

Bruno Fonzi
Technology Web Apps
HTML or FLASH*

* Except on iOS Safari otherwise plug-in required!
Bruno Fonzi
Technology Web Apps
Toshiba libretto concept

Bruno Fonzi
Technology Web Apps
Games?

FLASH	

HTML5

Bruno Fonzi
Technology Web Apps
HTML or FLASH*
Development

Easy

Effort

Known technology

Monetization

Not ideal user experience

Experience

Sexy UI possible, but
platform specific

Hardware

Very Limited

Offline

Generally Possible
Bruno Fonzi
Technology Hybrid Apps
JavaScript or ActionScript

Sencha

Bruno Fonzi
Technology Hybrid Apps
Adobe Air

Bruno Fonzi
Thoughts About Flash
“Flash is a cross platform development tool. It is not Adobe’s goal
to help developers write the best iPhone, iPod and iPad apps. It is
their goal to help developers write cross platform apps. “ – Steve
Jobs	

!
http://www.apple.com/hotnews/thoughts-on-flash/

Bruno Fonzi
Flash Developers
Can sing!

“Powerflasher San Francisco Band
Bruno Fonzi
Hybrid Apps Phone Gap

Bruno Fonzi
Hybrid Apps

JavaScript or ActionScript*
Development

Easy

Effort

Known technology

Monetization

App Store

Experience

Sexy UI possible, but
platform specific

Hardware

Partially accessible

Offline

Possible
Bruno Fonzi
Interpreted Apps
JavaScript

Apache 2 License
JS programmatically
native controls
iPhone, iPad, Android
BlackBerry (soon)

Bruno Fonzi
Interpreted Apps
Appcelerator Titanium

Bruno Fonzi
Interpreted Apps
Lanica

Physics
Multi Channel

Parallax Scrolling
Random Terrain
GPU Particles
Bruno Fonzi
Interpreted Apps
Java & Action Script
Development

API Learning curve required

Effort

Up and coming

Monetization

App Store & IAP

Development
Experience
Effort
Monetization
Hardware
Offline

API Learning curve
Close
Up and coming	

 to native
App Store	

Partially accessible
Yes
Bruno Fonzi
Generated Apps
Cross-Compilers

• Unity3D Mono C#, JS, Boo to Native
• Apportable ObjectiveC to Native
• Xamarin MonoTouch C# to Native

• Google Web Toolkit (GWT) Java to JS
• Corona SDK Lua to iOS, Android
• Haxe from Haxe to Native
• …

Bruno Fonzi
Generated Apps
Cross-Compilers
Development

Experienced Developer

Effort

Easy for aimed cases, easy to
extend

Monetization

App Store & IAP

Experience

Native

Hardware

Native

Offline

Yes
Bruno Fonzi
Native Examples
Adobe Photoshop Companion

Bruno Fonzi
Thoughts About HTML5
2007
Thoughts About
“You can write amazing web apps that look
exactly and behave exactly like apps on the
iPhone. “ – Steve Jobs at WWDC 2007

Bruno Fonzi
What Happened HTML5?
2013

• Apple (even Google) mix messages
• W3 Standard Different Agendas?
• Device Manufactures Pushing boundaries.

Bruno Fonzi
What Happened HTML5?
Interesting trends

• Microsoft: Complaining about The limits of
Google’s openness.
• JavaScript: Becoming the facto scripting
language?
• Gaming: Is HTML5 the future of (mobile) gaming?

Bruno Fonzi
Cross Platform

Up for the challenge?

Bruno Fonzi
Extra Popcorn Time

Recommended presentations to watch!

Bret Victor The Future of Programming
http://www.youtube.com/watch?v=8pTEmbeENF4
Bruno Fonzi

Cross platform challenges and opportunities for games and interactive developers