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

More Related Content

DOCX
Programming in c plus plus2
PPTX
The Power, and Pain, of Cordova Plugins
PDF
Flutter - DevFestDC
PPTX
Visual Studio Productivity Tools
PDF
Flutter study jam 2019
PPTX
Codename: Roslyn
PDF
Js foo famo.us- build native quality apps using html5 within a day
PPTX
Tearing down the //build/ 2016 conference
Programming in c plus plus2
The Power, and Pain, of Cordova Plugins
Flutter - DevFestDC
Visual Studio Productivity Tools
Flutter study jam 2019
Codename: Roslyn
Js foo famo.us- build native quality apps using html5 within a day
Tearing down the //build/ 2016 conference

What's hot (6)

PDF
Feedback from an eclipse plugin developer to provide support to large set of ...
PDF
Flutter overview - advantages & disadvantages for business
PPTX
Intro to Flutter SDK
PDF
DevCon Summit 2014: Trends in iOS Development by Allen Tan
PPTX
Flutter introduction
PDF
[DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak...
Feedback from an eclipse plugin developer to provide support to large set of ...
Flutter overview - advantages & disadvantages for business
Intro to Flutter SDK
DevCon Summit 2014: Trends in iOS Development by Allen Tan
Flutter introduction
[DevDay 2016] Cross-platform desktop app with Electron - Introduction. Speak...
Ad

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

PPTX
Where Design and Development Meet: Cross Platform Mobile Experiences
KEY
Seattle javascript game development - Overview
PDF
Presentation of programming languages for beginners
PPTX
PPT
Mobile and Tablet App Development and Market Share
PPT
Mobile and tablet app dev
PPTX
Presentation3
PPTX
Cross platform development with C#
PDF
Open-source, how we survive with it?
PDF
Rapid and Reliable Developing with HTML5 & GWT
PDF
HTML5 Technical Executive Summary
PPTX
The Future of Flash
RTF
Hack language
PDF
The Ring programming language version 1.5.1 book - Part 4 of 180
PDF
Minko - Why we created our own Flash platform and why you should care
DOCX
chuckgaffney-resume-unity-2016-Recruiter-Note
PPTX
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
PPTX
Mobile Web Apps
PPTX
Native App + Wep App = ? (Hybrid Applications)
Where Design and Development Meet: Cross Platform Mobile Experiences
Seattle javascript game development - Overview
Presentation of programming languages for beginners
Mobile and Tablet App Development and Market Share
Mobile and tablet app dev
Presentation3
Cross platform development with C#
Open-source, how we survive with it?
Rapid and Reliable Developing with HTML5 & GWT
HTML5 Technical Executive Summary
The Future of Flash
Hack language
The Ring programming language version 1.5.1 book - Part 4 of 180
Minko - Why we created our own Flash platform and why you should care
chuckgaffney-resume-unity-2016-Recruiter-Note
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
Mobile Web Apps
Native App + Wep App = ? (Hybrid Applications)
Ad

More from Jessica Tams (20)

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

Recently uploaded (20)

PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Transform Your Business with a Software ERP System
PPTX
history of c programming in notes for students .pptx
PDF
System and Network Administration Chapter 2
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Digital Strategies for Manufacturing Companies
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Odoo POS Development Services by CandidRoot Solutions
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Reimagine Home Health with the Power of Agentic AI​
How to Migrate SBCGlobal Email to Yahoo Easily
2025 Textile ERP Trends: SAP, Odoo & Oracle
Transform Your Business with a Software ERP System
history of c programming in notes for students .pptx
System and Network Administration Chapter 2
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PTS Company Brochure 2025 (1).pdf.......
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Digital Strategies for Manufacturing Companies
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Design an Analysis of Algorithms II-SECS-1021-03
How to Choose the Right IT Partner for Your Business in Malaysia
Design an Analysis of Algorithms I-SECS-1021-03
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...

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