SlideShare a Scribd company logo
1 of 25
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

What's hot

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 businessBartosz Kosarzycki
 
Intro to Flutter SDK
Intro to Flutter SDKIntro to Flutter SDK
Intro to Flutter SDKdigitaljoni
 
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 TanDEVCON
 
[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.org
 

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 ...
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for business
 
Intro to Flutter SDK
Intro to Flutter SDKIntro to Flutter SDK
Intro to Flutter SDK
 
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
 
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
 
[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...
 

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

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 - OverviewGrant Goodale
 
Presentation of programming languages for beginners
Presentation of programming languages for beginnersPresentation of programming languages for beginners
Presentation of programming languages for beginnersClement 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 ShareJeremy Callinan
 
Mobile and tablet app dev
Mobile and tablet app devMobile and tablet app dev
Mobile and tablet app devJeremy 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 & GWTManuel Carrasco Moñino
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive SummaryGilad Khen
 
The Future of Flash
The Future of FlashThe Future of Flash
The Future of FlashChris 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 180Mahmoud 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 careMinko3D
 
chuckgaffney-resume-unity-2016-Recruiter-Note
chuckgaffney-resume-unity-2016-Recruiter-Notechuckgaffney-resume-unity-2016-Recruiter-Note
chuckgaffney-resume-unity-2016-Recruiter-NoteCharles 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
 

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 javascript game development - Overview
Seattle javascript game development - OverviewSeattle javascript game development - Overview
Seattle javascript game development - Overview
 
Presentation of programming languages for beginners
Presentation of programming languages for beginnersPresentation of programming languages for beginners
Presentation of programming languages for beginners
 
Ffd 05 2012
Ffd 05 2012Ffd 05 2012
Ffd 05 2012
 
Windows 8 App Development
Windows 8 App DevelopmentWindows 8 App Development
Windows 8 App Development
 
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
 
Mobile and tablet app dev
Mobile and tablet app devMobile and tablet app dev
Mobile and tablet app dev
 
Presentation3
Presentation3Presentation3
Presentation3
 
Cross platform development with C#
Cross platform development with C#Cross platform development with C#
Cross platform development with C#
 
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?
 
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
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
The Future of Flash
The Future of FlashThe Future of Flash
The Future of Flash
 
Hack language
Hack languageHack language
Hack language
 
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
 
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
 
chuckgaffney-resume-unity-2016-Recruiter-Note
chuckgaffney-resume-unity-2016-Recruiter-Notechuckgaffney-resume-unity-2016-Recruiter-Note
chuckgaffney-resume-unity-2016-Recruiter-Note
 
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
Маргарита Остапчук (Microsoft Украина) «Разработка на универсальной платформе...
 
Mobile Web Apps
Mobile Web AppsMobile Web Apps
Mobile Web Apps
 
Native App + Wep App = ? (Hybrid Applications)
Native App + Wep App = ? (Hybrid Applications)Native App + Wep App = ? (Hybrid Applications)
Native App + Wep App = ? (Hybrid Applications)
 

More from 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 DunnJessica 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 LeeJessica 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’DonoghueJessica 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 GardnerJessica 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 ZorinJessica 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 PorterJessica 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 GoldbergJessica Tams
 
Understanding Mobile Game Players | Saad Hameed
Understanding Mobile Game Players | Saad HameedUnderstanding Mobile Game Players | Saad Hameed
Understanding Mobile Game Players | Saad HameedJessica 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 TredreaJessica 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 BeavenJessica Tams
 
Accessible Reality | Trevor Blom
Accessible Reality | Trevor BlomAccessible Reality | Trevor Blom
Accessible Reality | Trevor BlomJessica 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 CottinJessica 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 WhyteJessica 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 LevinJessica 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
 

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
 
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
 
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...
 
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
 
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...
 
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...
 
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
 
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...
 
Epic Team Principles | Roman Zorin
Epic Team Principles | Roman ZorinEpic Team Principles | Roman Zorin
Epic Team Principles | Roman Zorin
 
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
 
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
 
Understanding Mobile Game Players | Saad Hameed
Understanding Mobile Game Players | Saad HameedUnderstanding Mobile Game Players | Saad Hameed
Understanding Mobile Game Players | Saad Hameed
 
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
 
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
 
Accessible Reality | Trevor Blom
Accessible Reality | Trevor BlomAccessible Reality | Trevor Blom
Accessible Reality | Trevor Blom
 
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
 
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 | ...
 
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
 
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
 
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...
 

Recently uploaded

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 

Recently uploaded (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 

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