SlideShare a Scribd company logo
Douglas Pearson
Co-Founder and CTO
FlowPlay, Inc
January 2015
VegasWorld.com apps.facebook.com/vegas_world zone.msn.com/en/casino/default.htm
m
iPad Android & Kindle
 ~$1 million/month
 Company size 35 people
 1,400,000 lines of ActionScript
 Code developed over 8 years
 Slow on mobile devices
 Flash way going away…some day
 Art assets used vector art, not bitmap art
 No GPU help
 Slow on mobile
 Aging code base (8 years of work)
 Technical debt
 But only a small development team
 Browsers could drop Flash support at any time
 Would completely kill our business
 Needed to replace the entire car while driving down the freeway
 Players expect new features, new games
 Monetization improvements, bug fixes
 New partnerships, new devices
 One codebase for all devices
 Web
 iPad, iPhone
 Android tablet, phones, kindle
 Needed to support a large, complex code base
 > 1 million line code base
 Type safety a major plus
 Caveat: Solution for our business – not 1 size fits all.
 HTML5 (JavaScript)
 Wrapped on mobile (phone gap, appcelerator, cordova etc.)
 Pros
 No need to cross compile for different devices
 Write once, run everywhere
 Cons
 Slowest performance on the lowest end devices
Structural competitive disadvantage
 JavaScript’s lack of strong type safety
 Facebook very publicly dropped this approach
 Perhaps correct in another 5 years?
 Pros
 Native Android
 Native iOS
 Native Windows App
 Cons
 Define “cross-platform” differently
 No web support
Total show stopper for us
 Quite like that others choose these platforms: “mobile first”
Less open web competition, mobile is brutal
 Pros:
 Cross compile to native (Android/iOS), HTML5 and lots more
 Strong 3D engine and content creation tool
 C# programming language
 Huge community
 Cons:
 Weak on the web (plugin => cross compile through C++)
 Version model assumed game written for one version
Not great for long lived games
 Closed platform
Show stopper bug that nobody else cared to fix?
What if platform died off? Looks most similar to Flash ecosystem today
 “Heavy” platform
Content creation, runtime, cross compilation etc.
Does lots but more tightly coupled
 Pros:
 Cross compile to native (Android/iOS), HTML5 and lots more
 Strongly typed language designed for cross compilation
 OpenFL library to help with porting Flash code
 Open source (MAJOR plus)
 Cons:
 Small community at the time (Tivo,…)
 Could it handle a game of our size and complexity?
 Tool chain, documentation etc. less polished
 In practice did it work as well as the marketing blurb said?
 Project 1:
 Rewrite entire codebase to use bitmap art
 Still Flash (ActionScript)
 Rewriting a million lines of code – no small task
 Project 2:
 Write a Haxe slots game from scratch
 Use our existing backend – shared accounts with web
 Prove we could use this platform and deliver on
 Flash (SWF)
 iOS + Android
 HTML5
 Get familiar with the tech
 New UI design / all new art
 Model-View-Controller architecture
 900,000 lines of new code
 Timeline ~ 18 months:
 9 months small team; 6 months full (20+) team, 3 months QA, Aug 2016 live.
 First handset targeted game for us
 All new design
 First experience with Haxe tools
 Timeline ~ 12 months with a small team (~4)
 Jan 2016 live on Android + iOS
 April 2016 HTML5 (Windows 10 store app)
 Project 1: “Rewrite”
 Complete and live (but polish needed)
 Project 2: “Haxe slots game”
 Complete and live
 Demonstrated Haxe was viable
Flash, Android, iOS, HTML5 all from one code base
Native extensions a major challenge
Haxe plugin for IDEs had some problems
 May 2016 major announcement
 Chrome announced “Flash disabled by default” in 6 months
 We needed to get porting!!
 Direct port of rewritten code base
 No UI/art/game changes
 Initial goal – launch as a Flash game still
 Then HTML5
 Supporting 3 live, large codebases at once:
 Old ActionScript game
 New ActionScript game
 New ported Haxe game
 Still adding features to the live games
 “Rebuilding car as driving down the freeway”
 Anything added to old game needed to be added to new and Haxe too
 Big, complex game
 900,000 lines of code to port to Haxe
 50+ slot machines, 12+ table games
 50,000+ in game items
 Avatars, social features, a whole world
 Picky players
 Social games are hard. Players can revolt.
 Abstract platform design
 Loading images
 Drawing images
 Playing animations
 Playing sounds
 Talking to server
 Modular game design (each game like blackjack largely independent of others)
 Invested directly in the Haxe platform
 Hired Joshua Granick (lead dev Haxe-OpenFL)
 Contracted with Eric Bishton (lead dev on IntelliJ Haxe plugin)
 Limited use of automated tools to port
 Started using “AS2HX” tool
 Switched to our own simple string-replace tool
 Guaranteed correct only
 Rewrite first, port second
 Rewrote in language and tools we knew
 Learned new platform first
 Then ported without changing
 No new art
 No server changes
 Open source platform
 Bugs/problems in rendering engines
 IPv6 support
 Able to extend areas important to us (e.g. modular HTML5 loads)
Sept 2016 - Haxe port started small team (1-2)
Feb 2017 - Expanded to full team (~20) Haxe porting
Apr 201 7 - Haxe (Flash) into QA
June 2017 - Haxe (HTML5) working (very little effort)
July 2017 - Haxe (Flash) ready for release
- Haxe (HTML5) in QA
- Haxe (Android/iOS) soon
 For us Haxe was definitely the correct choice
 It worked !!
 Flash, Android, iOS for today
 HTML5 for tomorrow
 WebAssembly, Desktop app for next year?
 Cross-compiling feels very strong
 Performance looks excellent
 Not tied to one target if market shifts
 Open source so we can shape the future direction
 Haxe tool set lighter than a full platform like Unity
 Less in the platform
 More in the libraries (Starling, Away3D etc.) – easier to extend
 Historically this sort of platform has aged better (e.g. Java vs Flash)
 Company still in business
 Revenues up 50% from when we started
 Time to go build exciting new stuff
The Future of Cross-Platform Development: Post-Mortem on Transitioning from Flash to Haxe | Doug Pearson
Ad

More Related Content

What's hot (6)

Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...
Aurélien Pupier
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for business
Bartosz Kosarzycki
 
Intro to Flutter SDK
Intro to Flutter SDKIntro to Flutter SDK
Intro to Flutter SDK
digitaljoni
 
DevCon Summit 2014: Trends in iOS Development by Allen Tan
DevCon Summit 2014: Trends in iOS Development by Allen TanDevCon Summit 2014: Trends in iOS Development by Allen Tan
DevCon Summit 2014: Trends in iOS Development by Allen Tan
DEVCON
 
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
Võ Duy Tuấn
 
[DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak...
 [DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak... [DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak...
[DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak...
DevDay Da Nang
 
Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...
Aurélien Pupier
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for business
Bartosz Kosarzycki
 
Intro to Flutter SDK
Intro to Flutter SDKIntro to Flutter SDK
Intro to Flutter SDK
digitaljoni
 
DevCon Summit 2014: Trends in iOS Development by Allen Tan
DevCon Summit 2014: Trends in iOS Development by Allen TanDevCon Summit 2014: Trends in iOS Development by Allen Tan
DevCon Summit 2014: Trends in iOS Development by Allen Tan
DEVCON
 
[DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak...
 [DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak... [DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak...
[DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak...
DevDay Da Nang
 

Similar to The Future of Cross-Platform Development: Post-Mortem on Transitioning from Flash to Haxe | Doug Pearson (20)

Where Design and Development Meet: Cross Platform Mobile Experiences
Where Design and Development Meet: Cross Platform Mobile Experiences Where Design and Development Meet: Cross Platform Mobile Experiences
Where Design and Development Meet: Cross Platform Mobile Experiences
Seattle Interactive Conference
 
Seattle javascript game development - Overview
Seattle javascript game development - OverviewSeattle javascript game development - Overview
Seattle javascript game development - Overview
Grant Goodale
 
Presentation of programming languages for beginners
Presentation of programming languages for beginnersPresentation of programming languages for beginners
Presentation of programming languages for beginners
Clement Levallois
 
Ffd 05 2012
Ffd 05 2012Ffd 05 2012
Ffd 05 2012
Sandeep Sharma IIMK Smart City,IoT,Bigdata,Cloud,BI,DW
 
Windows 8 App Development
Windows 8 App DevelopmentWindows 8 App Development
Windows 8 App Development
Google Developer Group - Galgotias University
 
Mobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market ShareMobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market Share
Jeremy Callinan
 
Mobile and tablet app dev
Mobile and tablet app devMobile and tablet app dev
Mobile and tablet app dev
Jeremy Callinan
 
Presentation3
Presentation3Presentation3
Presentation3
mohammed khalid
 
Cross platform development with C#
Cross platform development with C#Cross platform development with C#
Cross platform development with C#
Michele Scandura
 
Open-source, how we survive with it?
Open-source, how we survive with it?Open-source, how we survive with it?
Open-source, how we survive with it?
Hermet Park
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
Manuel Carrasco Moñino
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
Gilad Khen
 
The Future of Flash
The Future of FlashThe Future of Flash
The Future of Flash
Chris Black
 
Hack language
Hack languageHack language
Hack language
Ravindra Bhadane
 
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180
Mahmoud Samir Fayed
 
Minko - Why we created our own Flash platform and why you should care
Minko - Why we created our own Flash platform and why you should careMinko - Why we created our own Flash platform and why you should care
Minko - Why we created our own Flash platform and why you should care
Minko3D
 
chuckgaffney-resume-unity-2016-Recruiter-Note
chuckgaffney-resume-unity-2016-Recruiter-Notechuckgaffney-resume-unity-2016-Recruiter-Note
chuckgaffney-resume-unity-2016-Recruiter-Note
Charles Gaffney
 
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
DataArt
 
Mobile Web Apps
Mobile Web AppsMobile Web Apps
Mobile Web Apps
Athhar Ahamed
 
Native App + Wep App = ? (Hybrid Applications)
Native App + Wep App = ? (Hybrid Applications)Native App + Wep App = ? (Hybrid Applications)
Native App + Wep App = ? (Hybrid Applications)
GameWisp
 
Where Design and Development Meet: Cross Platform Mobile Experiences
Where Design and Development Meet: Cross Platform Mobile Experiences Where Design and Development Meet: Cross Platform Mobile Experiences
Where Design and Development Meet: Cross Platform Mobile Experiences
Seattle Interactive Conference
 
Seattle javascript game development - Overview
Seattle javascript game development - OverviewSeattle javascript game development - Overview
Seattle javascript game development - Overview
Grant Goodale
 
Presentation of programming languages for beginners
Presentation of programming languages for beginnersPresentation of programming languages for beginners
Presentation of programming languages for beginners
Clement Levallois
 
Mobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market ShareMobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market Share
Jeremy Callinan
 
Mobile and tablet app dev
Mobile and tablet app devMobile and tablet app dev
Mobile and tablet app dev
Jeremy Callinan
 
Cross platform development with C#
Cross platform development with C#Cross platform development with C#
Cross platform development with C#
Michele Scandura
 
Open-source, how we survive with it?
Open-source, how we survive with it?Open-source, how we survive with it?
Open-source, how we survive with it?
Hermet Park
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
Manuel Carrasco Moñino
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
Gilad Khen
 
The Future of Flash
The Future of FlashThe Future of Flash
The Future of Flash
Chris Black
 
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180
Mahmoud Samir Fayed
 
Minko - Why we created our own Flash platform and why you should care
Minko - Why we created our own Flash platform and why you should careMinko - Why we created our own Flash platform and why you should care
Minko - Why we created our own Flash platform and why you should care
Minko3D
 
chuckgaffney-resume-unity-2016-Recruiter-Note
chuckgaffney-resume-unity-2016-Recruiter-Notechuckgaffney-resume-unity-2016-Recruiter-Note
chuckgaffney-resume-unity-2016-Recruiter-Note
Charles Gaffney
 
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
DataArt
 
Native App + Wep App = ? (Hybrid Applications)
Native App + Wep App = ? (Hybrid Applications)Native App + Wep App = ? (Hybrid Applications)
Native App + Wep App = ? (Hybrid Applications)
GameWisp
 
Ad

More from Jessica Tams (20)

You Only Pitch Once – Getting Game Pitches Right The First Time | Gregan Dunn
You Only Pitch Once – Getting Game Pitches Right The First Time | Gregan DunnYou Only Pitch Once – Getting Game Pitches Right The First Time | Gregan Dunn
You Only Pitch Once – Getting Game Pitches Right The First Time | Gregan Dunn
Jessica Tams
 
Insights You Need to Win in Mobile Gaming | Herman Lee
Insights You Need to Win in Mobile Gaming | Herman LeeInsights You Need to Win in Mobile Gaming | Herman Lee
Insights You Need to Win in Mobile Gaming | Herman Lee
Jessica Tams
 
Zero to 60: Building A Successful Games Studio Within A Hollywood Media Compa...
Zero to 60: Building A Successful Games Studio Within A Hollywood Media Compa...Zero to 60: Building A Successful Games Studio Within A Hollywood Media Compa...
Zero to 60: Building A Successful Games Studio Within A Hollywood Media Compa...
Jessica Tams
 
Succeeding in the Maturing Mobile Gaming Market | Tuyen Nguyen, Owen O’Donoghue
Succeeding in the Maturing Mobile Gaming Market | Tuyen Nguyen, Owen O’DonoghueSucceeding in the Maturing Mobile Gaming Market | Tuyen Nguyen, Owen O’Donoghue
Succeeding in the Maturing Mobile Gaming Market | Tuyen Nguyen, Owen O’Donoghue
Jessica Tams
 
Staying on Top of Your Game: Engaging and Converting Players in an Evolving L...
Staying on Top of Your Game: Engaging and Converting Players in an Evolving L...Staying on Top of Your Game: Engaging and Converting Players in an Evolving L...
Staying on Top of Your Game: Engaging and Converting Players in an Evolving L...
Jessica Tams
 
Improving LTV with Personalized Live Ops Offers: Hill Climb Racing 2 Case Stu...
Improving LTV with Personalized Live Ops Offers: Hill Climb Racing 2 Case Stu...Improving LTV with Personalized Live Ops Offers: Hill Climb Racing 2 Case Stu...
Improving LTV with Personalized Live Ops Offers: Hill Climb Racing 2 Case Stu...
Jessica Tams
 
The rise of the regulators | Paul Gardner
The rise of the regulators | Paul GardnerThe rise of the regulators | Paul Gardner
The rise of the regulators | Paul Gardner
Jessica Tams
 
Why the Games Industry Needs Initiatives Like Putting The G Into Gaming | Liz...
Why the Games Industry Needs Initiatives Like Putting The G Into Gaming | Liz...Why the Games Industry Needs Initiatives Like Putting The G Into Gaming | Liz...
Why the Games Industry Needs Initiatives Like Putting The G Into Gaming | Liz...
Jessica Tams
 
Epic Team Principles | Roman Zorin
Epic Team Principles | Roman ZorinEpic Team Principles | Roman Zorin
Epic Team Principles | Roman Zorin
Jessica Tams
 
10 Years of Angry Birds | Stephen Porter
10 Years of Angry Birds | Stephen Porter10 Years of Angry Birds | Stephen Porter
10 Years of Angry Birds | Stephen Porter
Jessica Tams
 
Game Changers: Three Business Disruptions Upon Us | Eric Goldberg
Game Changers: Three Business Disruptions Upon Us | Eric GoldbergGame Changers: Three Business Disruptions Upon Us | Eric Goldberg
Game Changers: Three Business Disruptions Upon Us | Eric Goldberg
Jessica Tams
 
Understanding Mobile Game Players | Saad Hameed
Understanding Mobile Game Players | Saad HameedUnderstanding Mobile Game Players | Saad Hameed
Understanding Mobile Game Players | Saad Hameed
Jessica Tams
 
Soft Launch Planning and Management | Dylan Tredrea
Soft Launch Planning and Management | Dylan TredreaSoft Launch Planning and Management | Dylan Tredrea
Soft Launch Planning and Management | Dylan Tredrea
Jessica Tams
 
1 Million Years of Audience Watch Time | James Beaven
1 Million Years of Audience Watch Time | James Beaven1 Million Years of Audience Watch Time | James Beaven
1 Million Years of Audience Watch Time | James Beaven
Jessica Tams
 
Accessible Reality | Trevor Blom
Accessible Reality | Trevor BlomAccessible Reality | Trevor Blom
Accessible Reality | Trevor Blom
Jessica Tams
 
Maximizing App Monetization: 5 Uncommon Tips | Rémy Cottin
Maximizing App Monetization: 5 Uncommon Tips | Rémy CottinMaximizing App Monetization: 5 Uncommon Tips | Rémy Cottin
Maximizing App Monetization: 5 Uncommon Tips | Rémy Cottin
Jessica Tams
 
Do You Have What it Takes? What VCs are Looking For in Esports Investments | ...
Do You Have What it Takes? What VCs are Looking For in Esports Investments | ...Do You Have What it Takes? What VCs are Looking For in Esports Investments | ...
Do You Have What it Takes? What VCs are Looking For in Esports Investments | ...
Jessica Tams
 
Commercial and Contractual Stability in Esports | Adam Whyte
Commercial and Contractual Stability in Esports | Adam WhyteCommercial and Contractual Stability in Esports | Adam Whyte
Commercial and Contractual Stability in Esports | Adam Whyte
Jessica Tams
 
Playtika's growth by change | Boaz Levin
Playtika's growth by change | Boaz LevinPlaytika's growth by change | Boaz Levin
Playtika's growth by change | Boaz Levin
Jessica Tams
 
Only the Best is Good Enough: How LEGO is Transforming its Approach to Videog...
Only the Best is Good Enough: How LEGO is Transforming its Approach to Videog...Only the Best is Good Enough: How LEGO is Transforming its Approach to Videog...
Only the Best is Good Enough: How LEGO is Transforming its Approach to Videog...
Jessica Tams
 
You Only Pitch Once – Getting Game Pitches Right The First Time | Gregan Dunn
You Only Pitch Once – Getting Game Pitches Right The First Time | Gregan DunnYou Only Pitch Once – Getting Game Pitches Right The First Time | Gregan Dunn
You Only Pitch Once – Getting Game Pitches Right The First Time | Gregan Dunn
Jessica Tams
 
Insights You Need to Win in Mobile Gaming | Herman Lee
Insights You Need to Win in Mobile Gaming | Herman LeeInsights You Need to Win in Mobile Gaming | Herman Lee
Insights You Need to Win in Mobile Gaming | Herman Lee
Jessica Tams
 
Zero to 60: Building A Successful Games Studio Within A Hollywood Media Compa...
Zero to 60: Building A Successful Games Studio Within A Hollywood Media Compa...Zero to 60: Building A Successful Games Studio Within A Hollywood Media Compa...
Zero to 60: Building A Successful Games Studio Within A Hollywood Media Compa...
Jessica Tams
 
Succeeding in the Maturing Mobile Gaming Market | Tuyen Nguyen, Owen O’Donoghue
Succeeding in the Maturing Mobile Gaming Market | Tuyen Nguyen, Owen O’DonoghueSucceeding in the Maturing Mobile Gaming Market | Tuyen Nguyen, Owen O’Donoghue
Succeeding in the Maturing Mobile Gaming Market | Tuyen Nguyen, Owen O’Donoghue
Jessica Tams
 
Staying on Top of Your Game: Engaging and Converting Players in an Evolving L...
Staying on Top of Your Game: Engaging and Converting Players in an Evolving L...Staying on Top of Your Game: Engaging and Converting Players in an Evolving L...
Staying on Top of Your Game: Engaging and Converting Players in an Evolving L...
Jessica Tams
 
Improving LTV with Personalized Live Ops Offers: Hill Climb Racing 2 Case Stu...
Improving LTV with Personalized Live Ops Offers: Hill Climb Racing 2 Case Stu...Improving LTV with Personalized Live Ops Offers: Hill Climb Racing 2 Case Stu...
Improving LTV with Personalized Live Ops Offers: Hill Climb Racing 2 Case Stu...
Jessica Tams
 
The rise of the regulators | Paul Gardner
The rise of the regulators | Paul GardnerThe rise of the regulators | Paul Gardner
The rise of the regulators | Paul Gardner
Jessica Tams
 
Why the Games Industry Needs Initiatives Like Putting The G Into Gaming | Liz...
Why the Games Industry Needs Initiatives Like Putting The G Into Gaming | Liz...Why the Games Industry Needs Initiatives Like Putting The G Into Gaming | Liz...
Why the Games Industry Needs Initiatives Like Putting The G Into Gaming | Liz...
Jessica Tams
 
Epic Team Principles | Roman Zorin
Epic Team Principles | Roman ZorinEpic Team Principles | Roman Zorin
Epic Team Principles | Roman Zorin
Jessica Tams
 
10 Years of Angry Birds | Stephen Porter
10 Years of Angry Birds | Stephen Porter10 Years of Angry Birds | Stephen Porter
10 Years of Angry Birds | Stephen Porter
Jessica Tams
 
Game Changers: Three Business Disruptions Upon Us | Eric Goldberg
Game Changers: Three Business Disruptions Upon Us | Eric GoldbergGame Changers: Three Business Disruptions Upon Us | Eric Goldberg
Game Changers: Three Business Disruptions Upon Us | Eric Goldberg
Jessica Tams
 
Understanding Mobile Game Players | Saad Hameed
Understanding Mobile Game Players | Saad HameedUnderstanding Mobile Game Players | Saad Hameed
Understanding Mobile Game Players | Saad Hameed
Jessica Tams
 
Soft Launch Planning and Management | Dylan Tredrea
Soft Launch Planning and Management | Dylan TredreaSoft Launch Planning and Management | Dylan Tredrea
Soft Launch Planning and Management | Dylan Tredrea
Jessica Tams
 
1 Million Years of Audience Watch Time | James Beaven
1 Million Years of Audience Watch Time | James Beaven1 Million Years of Audience Watch Time | James Beaven
1 Million Years of Audience Watch Time | James Beaven
Jessica Tams
 
Accessible Reality | Trevor Blom
Accessible Reality | Trevor BlomAccessible Reality | Trevor Blom
Accessible Reality | Trevor Blom
Jessica Tams
 
Maximizing App Monetization: 5 Uncommon Tips | Rémy Cottin
Maximizing App Monetization: 5 Uncommon Tips | Rémy CottinMaximizing App Monetization: 5 Uncommon Tips | Rémy Cottin
Maximizing App Monetization: 5 Uncommon Tips | Rémy Cottin
Jessica Tams
 
Do You Have What it Takes? What VCs are Looking For in Esports Investments | ...
Do You Have What it Takes? What VCs are Looking For in Esports Investments | ...Do You Have What it Takes? What VCs are Looking For in Esports Investments | ...
Do You Have What it Takes? What VCs are Looking For in Esports Investments | ...
Jessica Tams
 
Commercial and Contractual Stability in Esports | Adam Whyte
Commercial and Contractual Stability in Esports | Adam WhyteCommercial and Contractual Stability in Esports | Adam Whyte
Commercial and Contractual Stability in Esports | Adam Whyte
Jessica Tams
 
Playtika's growth by change | Boaz Levin
Playtika's growth by change | Boaz LevinPlaytika's growth by change | Boaz Levin
Playtika's growth by change | Boaz Levin
Jessica Tams
 
Only the Best is Good Enough: How LEGO is Transforming its Approach to Videog...
Only the Best is Good Enough: How LEGO is Transforming its Approach to Videog...Only the Best is Good Enough: How LEGO is Transforming its Approach to Videog...
Only the Best is Good Enough: How LEGO is Transforming its Approach to Videog...
Jessica Tams
 
Ad

Recently uploaded (20)

Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
iTop VPN With Crack Lifetime Activation Key
iTop VPN With Crack Lifetime Activation KeyiTop VPN With Crack Lifetime Activation Key
iTop VPN With Crack Lifetime Activation Key
raheemk1122g
 
IObit Uninstaller Pro Crack {2025} Download Free
IObit Uninstaller Pro Crack {2025} Download FreeIObit Uninstaller Pro Crack {2025} Download Free
IObit Uninstaller Pro Crack {2025} Download Free
Iobit Uninstaller Pro Crack
 
File Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full VersionFile Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full Version
raheemk1122g
 
Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025
Web Designer
 
Quasar Framework Introduction for C++ develpoers
Quasar Framework Introduction for C++ develpoersQuasar Framework Introduction for C++ develpoers
Quasar Framework Introduction for C++ develpoers
sadadkhah
 
Welcome to QA Summit 2025.
Welcome to QA Summit 2025.Welcome to QA Summit 2025.
Welcome to QA Summit 2025.
QA Summit
 
Download 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-ActivatedDownload 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-Activated
Web Designer
 
Do not let staffing shortages and limited fiscal view hamper your cause
Do not let staffing shortages and limited fiscal view hamper your causeDo not let staffing shortages and limited fiscal view hamper your cause
Do not let staffing shortages and limited fiscal view hamper your cause
Fexle Services Pvt. Ltd.
 
GC Tuning: A Masterpiece in Performance Engineering
GC Tuning: A Masterpiece in Performance EngineeringGC Tuning: A Masterpiece in Performance Engineering
GC Tuning: A Masterpiece in Performance Engineering
Tier1 app
 
Why CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Why CoTester Is the AI Testing Tool QA Teams Can’t IgnoreWhy CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Why CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Shubham Joshi
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
UI/UX Design & Development and Servicess
UI/UX Design & Development and ServicessUI/UX Design & Development and Servicess
UI/UX Design & Development and Servicess
marketing810348
 
How to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber PluginHow to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber Plugin
eGrabber
 
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-RuntimeReinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Natan Silnitsky
 
cram_advancedword2007version2025final.ppt
cram_advancedword2007version2025final.pptcram_advancedword2007version2025final.ppt
cram_advancedword2007version2025final.ppt
ahmedsaadtax2025
 
Best HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRMBest HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRM
accordHRM
 
Unit Two - Java Architecture and OOPS
Unit Two  -   Java Architecture and OOPSUnit Two  -   Java Architecture and OOPS
Unit Two - Java Architecture and OOPS
Nabin Dhakal
 
AI Agents with Gemini 2.0 - Beyond the Chatbot
AI Agents with Gemini 2.0 - Beyond the ChatbotAI Agents with Gemini 2.0 - Beyond the Chatbot
AI Agents with Gemini 2.0 - Beyond the Chatbot
Márton Kodok
 
How I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetryHow I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetry
Cees Bos
 
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studiesTroubleshooting JVM Outages – 3 Fortune 500 case studies
Troubleshooting JVM Outages – 3 Fortune 500 case studies
Tier1 app
 
iTop VPN With Crack Lifetime Activation Key
iTop VPN With Crack Lifetime Activation KeyiTop VPN With Crack Lifetime Activation Key
iTop VPN With Crack Lifetime Activation Key
raheemk1122g
 
IObit Uninstaller Pro Crack {2025} Download Free
IObit Uninstaller Pro Crack {2025} Download FreeIObit Uninstaller Pro Crack {2025} Download Free
IObit Uninstaller Pro Crack {2025} Download Free
Iobit Uninstaller Pro Crack
 
File Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full VersionFile Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full Version
raheemk1122g
 
Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025Wilcom Embroidery Studio Crack Free Latest 2025
Wilcom Embroidery Studio Crack Free Latest 2025
Web Designer
 
Quasar Framework Introduction for C++ develpoers
Quasar Framework Introduction for C++ develpoersQuasar Framework Introduction for C++ develpoers
Quasar Framework Introduction for C++ develpoers
sadadkhah
 
Welcome to QA Summit 2025.
Welcome to QA Summit 2025.Welcome to QA Summit 2025.
Welcome to QA Summit 2025.
QA Summit
 
Download 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-ActivatedDownload 4k Video Downloader Crack Pre-Activated
Download 4k Video Downloader Crack Pre-Activated
Web Designer
 
Do not let staffing shortages and limited fiscal view hamper your cause
Do not let staffing shortages and limited fiscal view hamper your causeDo not let staffing shortages and limited fiscal view hamper your cause
Do not let staffing shortages and limited fiscal view hamper your cause
Fexle Services Pvt. Ltd.
 
GC Tuning: A Masterpiece in Performance Engineering
GC Tuning: A Masterpiece in Performance EngineeringGC Tuning: A Masterpiece in Performance Engineering
GC Tuning: A Masterpiece in Performance Engineering
Tier1 app
 
Why CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Why CoTester Is the AI Testing Tool QA Teams Can’t IgnoreWhy CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Why CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Shubham Joshi
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
UI/UX Design & Development and Servicess
UI/UX Design & Development and ServicessUI/UX Design & Development and Servicess
UI/UX Design & Development and Servicess
marketing810348
 
How to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber PluginHow to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber Plugin
eGrabber
 
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-RuntimeReinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Natan Silnitsky
 
cram_advancedword2007version2025final.ppt
cram_advancedword2007version2025final.pptcram_advancedword2007version2025final.ppt
cram_advancedword2007version2025final.ppt
ahmedsaadtax2025
 
Best HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRMBest HR and Payroll Software in Bangladesh - accordHRM
Best HR and Payroll Software in Bangladesh - accordHRM
accordHRM
 
Unit Two - Java Architecture and OOPS
Unit Two  -   Java Architecture and OOPSUnit Two  -   Java Architecture and OOPS
Unit Two - Java Architecture and OOPS
Nabin Dhakal
 
AI Agents with Gemini 2.0 - Beyond the Chatbot
AI Agents with Gemini 2.0 - Beyond the ChatbotAI Agents with Gemini 2.0 - Beyond the Chatbot
AI Agents with Gemini 2.0 - Beyond the Chatbot
Márton Kodok
 
How I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetryHow I solved production issues with OpenTelemetry
How I solved production issues with OpenTelemetry
Cees Bos
 

The Future of Cross-Platform Development: Post-Mortem on Transitioning from Flash to Haxe | Doug Pearson

  • 1. Douglas Pearson Co-Founder and CTO FlowPlay, Inc
  • 4.  ~$1 million/month  Company size 35 people
  • 5.  1,400,000 lines of ActionScript  Code developed over 8 years  Slow on mobile devices  Flash way going away…some day
  • 6.  Art assets used vector art, not bitmap art  No GPU help  Slow on mobile  Aging code base (8 years of work)  Technical debt  But only a small development team  Browsers could drop Flash support at any time  Would completely kill our business  Needed to replace the entire car while driving down the freeway  Players expect new features, new games  Monetization improvements, bug fixes  New partnerships, new devices
  • 7.  One codebase for all devices  Web  iPad, iPhone  Android tablet, phones, kindle  Needed to support a large, complex code base  > 1 million line code base  Type safety a major plus  Caveat: Solution for our business – not 1 size fits all.
  • 8.  HTML5 (JavaScript)  Wrapped on mobile (phone gap, appcelerator, cordova etc.)  Pros  No need to cross compile for different devices  Write once, run everywhere  Cons  Slowest performance on the lowest end devices Structural competitive disadvantage  JavaScript’s lack of strong type safety  Facebook very publicly dropped this approach  Perhaps correct in another 5 years?
  • 9.  Pros  Native Android  Native iOS  Native Windows App  Cons  Define “cross-platform” differently  No web support Total show stopper for us  Quite like that others choose these platforms: “mobile first” Less open web competition, mobile is brutal
  • 10.  Pros:  Cross compile to native (Android/iOS), HTML5 and lots more  Strong 3D engine and content creation tool  C# programming language  Huge community  Cons:  Weak on the web (plugin => cross compile through C++)  Version model assumed game written for one version Not great for long lived games  Closed platform Show stopper bug that nobody else cared to fix? What if platform died off? Looks most similar to Flash ecosystem today  “Heavy” platform Content creation, runtime, cross compilation etc. Does lots but more tightly coupled
  • 11.  Pros:  Cross compile to native (Android/iOS), HTML5 and lots more  Strongly typed language designed for cross compilation  OpenFL library to help with porting Flash code  Open source (MAJOR plus)  Cons:  Small community at the time (Tivo,…)  Could it handle a game of our size and complexity?  Tool chain, documentation etc. less polished  In practice did it work as well as the marketing blurb said?
  • 12.  Project 1:  Rewrite entire codebase to use bitmap art  Still Flash (ActionScript)  Rewriting a million lines of code – no small task  Project 2:  Write a Haxe slots game from scratch  Use our existing backend – shared accounts with web  Prove we could use this platform and deliver on  Flash (SWF)  iOS + Android  HTML5  Get familiar with the tech
  • 13.  New UI design / all new art  Model-View-Controller architecture  900,000 lines of new code  Timeline ~ 18 months:  9 months small team; 6 months full (20+) team, 3 months QA, Aug 2016 live.
  • 14.  First handset targeted game for us  All new design  First experience with Haxe tools  Timeline ~ 12 months with a small team (~4)  Jan 2016 live on Android + iOS  April 2016 HTML5 (Windows 10 store app)
  • 15.  Project 1: “Rewrite”  Complete and live (but polish needed)  Project 2: “Haxe slots game”  Complete and live  Demonstrated Haxe was viable Flash, Android, iOS, HTML5 all from one code base Native extensions a major challenge Haxe plugin for IDEs had some problems  May 2016 major announcement  Chrome announced “Flash disabled by default” in 6 months  We needed to get porting!!
  • 16.  Direct port of rewritten code base  No UI/art/game changes  Initial goal – launch as a Flash game still  Then HTML5
  • 17.  Supporting 3 live, large codebases at once:  Old ActionScript game  New ActionScript game  New ported Haxe game  Still adding features to the live games  “Rebuilding car as driving down the freeway”  Anything added to old game needed to be added to new and Haxe too
  • 18.  Big, complex game  900,000 lines of code to port to Haxe  50+ slot machines, 12+ table games  50,000+ in game items  Avatars, social features, a whole world  Picky players  Social games are hard. Players can revolt.
  • 19.  Abstract platform design  Loading images  Drawing images  Playing animations  Playing sounds  Talking to server  Modular game design (each game like blackjack largely independent of others)  Invested directly in the Haxe platform  Hired Joshua Granick (lead dev Haxe-OpenFL)  Contracted with Eric Bishton (lead dev on IntelliJ Haxe plugin)
  • 20.  Limited use of automated tools to port  Started using “AS2HX” tool  Switched to our own simple string-replace tool  Guaranteed correct only  Rewrite first, port second  Rewrote in language and tools we knew  Learned new platform first  Then ported without changing  No new art  No server changes
  • 21.  Open source platform  Bugs/problems in rendering engines  IPv6 support  Able to extend areas important to us (e.g. modular HTML5 loads)
  • 22. Sept 2016 - Haxe port started small team (1-2) Feb 2017 - Expanded to full team (~20) Haxe porting Apr 201 7 - Haxe (Flash) into QA June 2017 - Haxe (HTML5) working (very little effort) July 2017 - Haxe (Flash) ready for release - Haxe (HTML5) in QA - Haxe (Android/iOS) soon
  • 23.  For us Haxe was definitely the correct choice  It worked !!  Flash, Android, iOS for today  HTML5 for tomorrow  WebAssembly, Desktop app for next year?  Cross-compiling feels very strong  Performance looks excellent  Not tied to one target if market shifts  Open source so we can shape the future direction
  • 24.  Haxe tool set lighter than a full platform like Unity  Less in the platform  More in the libraries (Starling, Away3D etc.) – easier to extend  Historically this sort of platform has aged better (e.g. Java vs Flash)  Company still in business  Revenues up 50% from when we started  Time to go build exciting new stuff
  翻译: