Flash: Not Just a Flash In The Pan? - Develop 2010


Published on

Dan Borthwick, Playfish senior software engineer, will focus on creating complex and compelling social games using the Flash platform. Additionally, Dan will discuss recent developments in Flash and other platforms and how these will impact the future of social gaming.


Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Slow, personal
  • Social gaming company, founded late 2007 Two and a half years, released 14 titles
  • multiple social networks Games have been installed >250 million times
  • Most successful title, Pet Society >2.5 million people login every day
  • All game clients = Flash
  • Try to differentiate our games on quality & polish Means pushing Flash to the limit Feel that we help to define the cutting edge, at least within the social sector
  • Two and a half years. Led development of Pet Society, also conversions of Flash games to other platforms Now with Core Tech team providing shared technology and support to our studio teams Here today to ask a question….
  • Here today to ask a question. Three years ago, working in mobile, cool stuff, assembler. Stag do, bumped into an old uni friend, Kristian. Lot’s can’t talk about. Idea for new startup, weird concept of social gaming. Decision to make. Not up there with Chamberlain deciding to appease Hitler But important to me, so indulge me and join me on an exciting journey through the career decision of a mid-level games developer…
  • Overview
  • Animation system? Yes. Heritage - SuperPaint, 25 years, Apple II. Evolved, obscure pen-based OS. Render to Java. Released as plugin-based Macromedia FP in 1996. Simple scripting added. Even today, primarily targetted at banner ads. Functionality for games really tacked on.
  • And yet… 9 of the top 10 Facebook games are Flash based
  • 7 of the top 10 online gaming sites are Flash based Arguably 9 out of 10 Only WildTangent serves most of its content with alternative technology (custom installer).
  • All very nice, but one of several competing web animation standards So real question: Why are we using this art tool to make games?
  • #1 answer, because it lets people play our games Figures speak for themselves. In practice, Playfish sees even better. Second place is a long way back, Java ~80% Frankly, for 99% access we’d go back to Atari VCS machine code n.b. Figures are pre-iPhone – significant browser market (esp. spenders) – More later!
  • Great toolchain. Bit controversial, especially coming from a coder. Though much maligned actually very good at what it does. Well integrated with Illustrator, Photoshop. Power in hands of artists, where it should be. Almost trivial to prototype new ideas, features Vector art has its limitations, but lead to better, simpler art compared to bitmap tools. Even from less experienced artists. Even coders. CS horrible for coding, don’t use it. FlexBuilder IDE much more fun. Other’s available.
  • Deployment = Getting games to your players <click for transition> Flash Player Stable? Controversial – But yeah, in the grand scheme of things. Occasional browser crashing vs year on year constant platform. Backwards compatibility. Cross-platform compatibility works (most of the time) Success maybe due to compiling to simple byte code. Separation of renderer.
  • For online games, especially connected, it’s a great fit. Easy to serve. SWFs are de facto standard, use same static content infrastructure as HTML/images. Nice browser caching behaviour. Can run against same dynamic web services. Requests still come through browser. Easy to process XML and hook in to JS for lots of nice Web 2.0 goodness.
  • All looks great, gave up job took the leap with Playfish. Quite a ride. Model morph from advertising through paid access to micro-transaction based content publishing Not here to be a cheerleader for Flash. (Took a while on Google Images to find an appropriate image for this slide!) <click> Pretty soon, began to discover some pretty good reasons NOT to make your next game in Flash
  • Explain timeline, code in frames. Actually, this is true. Horrible, distributes code across many files. But not necessary. Just don’t put code on the timeline. Similarly other code problems, e.g. typing. Imperfect, but in practice not a problem. <click> Actually this is true. But ActionScript and SWF aren’t. Actually possible to write complete Flash app using only open source tools. And run too. Smokescreen = HTML5 / JS flash player
  • Great for prototypes, simple games. Especially single developer titles <cite auteurs>. Sucks for large teams, coordinating art and code. <click> Historically used by inexperienced coders. Reflected in community. Tech very defensive, some strange choices. Lots of unsolved problems, relatively little expertise. <click> AS is high level language. FP is closed system. ‘My way or the high way’. If coming from C, expect to give up a lot of control.
  • Have talked about why we are using Flash, and problems. But thousands of developers use it every day. Since move to PF, made lots of mistakes, learnt a huge amount Now here’s how we do things in practice…
  • <don’t read stats> PS = big game. A lot considering no real engine code. Verbose code seems to be characteristic of Flash development. Repeated code for similar game objects, tough to manage. Asset management is hard. Balance between number of files and library organisation. No solution, CS is not good with large data sets. Investigating XML based format with CS5. Little control over total runtime size. Get clever with resource handling to minimise load times.
  • Here is our stack, as used in all our games. <long pause> Notice just a classic Web 2.0 stack + Flash client. Fully RESTful. If one was ever to take time to analyse competitors games, nearly all the same (exceptions poker, YoVille) <click> Integrates very well - HTTP, XML support. Third party libs for Facebook, JSON, Google Analytics
  • Build options – CS for artists, Flex for devs/debug Custom build release build process. Preprocessor. Control over shipped code. FLAs (explain) don’t play well with SCM as any artist, staying late into evening, C&P resources AIR tools
  • ‘ Games as a Service’ - Buzzword, but very true in social/casual. Trending towards web development, over game development. Releasing new content and code every week. Spend a lot of time on deploy process but still a problem. Server/client coordination. Dev, QA, production instances. Can’t afford downtime. Process as much as technically driven. Recent issue – Perfect storm of production only client/server issue + Flash closed system. Console config, duplicate class def, unloading Flash library.
  • Some workarounds possible. Code obfuscation. Memory hash/checksum. Script kiddie paradise. Your game will be hacked. Also, balance latency and dev effort
  • After xmas break, walked into office. Everyone gathered around monitor. Will say no more about ‘Happy Baby’ other than great game, if a little familiar. Code, graphics trivially easy to rip. Reverse engineering server must have been fun.
  • Wherever possible, design around the problem WHTBB – Removed world leaderboards – Users prefer friends anyway! All logic on server – PS - jamming the server Consider any shipped code public Mostly worry about distributable hacks Primary mechanism is YouTube. Randomise, individualise data
  • Framerate a big problem Audience means huge hardware range Rarely ActionScript limited, normally renderer (might improve with hardware) Lots of optimisation possible. Imposters, caching. Very hard to profile.
  • Most ‘Flash Coders’ = web designers (no disrespect). How to advertise? Flip side, still seen as lightweight platform by good coders Graduates, non-game devs ftw
  • Back to original question. Should my next game be a Flash game? Well, if publishing online then probably yes =) <click>
  • But what about the future? It’s 2014, world cup fever, whole country behind captain Rooney. We’ve got the license, ready to make our online game. Will we be making it in Flash?
  • As we’ve seen, Flash currently in rapid maturing phase as a game dev platform In my view, accelerating away from competitors. (also turns out need to be careful image searching for Sam J Jones, interesting early career!)
  • Entirely contrived and anecdotal evidence (somewhat patronising) – Speakers at LFPUG Moved on 8-bit era to 32-bit era in just a few years
  • 64 million dollar question. Why not HTML5? Can go back to positives of Flash… Ubiquity: Counter-intuitive for competition between open/closed standard. HTML5 rollout range 5-8 years. Chrome Frame plugin. Several JavaScript Flash players in dev. What’s in it for users? Toolchain: JS/Canvas impressive but no tools. Flash probably best content creation option. But why bother? Deployment: Implementation differences a big problem. Thought consistently rendering web pages was bad? HTML5 can and will get to where Flash is now. But where will Flash be by then? HTML4 already an option! Mafia Wars
  • Difficult birth on mobile. Flash Player Lite failed (some traction in Japan). Changes with 10.1 Great news, unless iPhone owner, but most content will need reworking. Screen resolutions, performance, UI. If you could play Desktop Tower Defense, would you want to? Steve Jobs has a point, mobile devices are inherently unsuited for rendering Flash content. WHTBB iPhone as case study. Might work for proven titles, big players, not a game changer.
  • Gaining traction amongst hardcore Microsoft good strategy for shipping Silverlight Incrementally better than Flash, but need killer app (Flash has YouTube)
  • ScaleForm GFx middleware. Flash content on PC, console. <pause> Marketed for UI, but starting to be used for minigames. Includes ActionScript. Could become attractive path for full downloadable games.
  • Meanwhile, in core… Slowly seeing some game features PixelBender actually software, to keep player size down? Native API would be great, but security nightmare.
  • If you’re asking the question, answer almost certainly yes, for better or worse. Not looking like changing any time soon. Adobe on a roll, game support increasing all the time. Casual market going crazy. Never been a better time to be a Flash game developer!
  • Quick plug
  • Thank you very much for listening Any questions <repeat questions>
  • Flash: Not Just a Flash In The Pan? - Develop 2010

    1. 1. Flash: Not Just A Flash In The Pan Dan Borthwick, Playfish
    2. 2. Intro Video
    3. 3. Who are Playfish?
    4. 4. Who is this guy? Dan Borthwick Senior Developer Playfish Core Technology Team
    5. 5. Should my next game be a Flash game?
    6. 6. Should my next game be a Flash game? • Why Flash? • How do I use Flash? • What next for Flash?
    7. 7. Why Flash?
    8. 8. “But isn‟t Flash an animation system?”
    9. 9. 9 of the top 10 games on Facebook are Flash AppData.com, June 2010
    10. 10. 7 of the top 10 online gaming sites are Flash based comScore Media Metrix, July 2009
    11. 11. Why Flash?
    12. 12. Q: Why Flash? A1: Ubiquity • >95% of PCs have Flash Player installed • 99.3% of U.S. web users • Windows, Mac, Linux, more…
    13. 13. Q: Why Flash? A2: Toolchain
    14. 14. Q: Why Flash? A3: Deployment • Flash Player is a stable platform [is this right? – ed.]
    15. 15. Q: Why Flash? A3: Deployment • Flash Player is a stable platform • Flash content ≈ HTML content • Plays well with HTTP, XML, JavaScript
    16. 16. “Flash, Flash, I Love you!”
    17. 17. Q: Why Flash? Why NOT Flash: The Myths • Myth: Scripting is nasty • Myth: Flash is proprietary
    18. 18. Q: Why Flash? Why NOT Flash: The Reality • Not designed for complex projects • The web designer legacy • Closed system
    19. 19. How do I use Flash?
    20. 20. Q: How Flash? Complexity Pet Society: – ~700 source files, 100k LoC – ~20 FLAs, 50 XML files – ~15Mb runtime
    21. 21. Q: How Flash? Database (MySQL) Static Content SQL (Amazon S3) FB Lib Game Server (Java) (Java) API calls (HTTP, HTML, SWF JSON) (HTTP) RPC calls (HTTP) Game Client FB Lib (Flash) (Flash) API calls Facebook Canvas (HTTP, (HTML, JavaScript) Flash JS Bridge JSON) FB API (JavaScript)
    22. 22. Q: How do I use Flash? Tools We use: – CS3 / CS4 – FlexBuilder (but not Flex) – Ant, SVN – Custom Java, ActionScript, JSFL
    23. 23. „Games As A Service‟
    24. 24. Q: How do I use Flash? Security • Platform is inherently insecure: – Decompilable Trillix – Pokeable CheatEngine – Spoofable Fiddler • Trust nothing from the client!
    25. 25. Q: How do I use Flash? Security • Design around the problem • Make hacks non-distributable
    26. 26. Q: How do I use Flash? Performance
    27. 27. Q: How do I use Flash? Recruitment • Non-trivial projects require non-trivial coders • Hiring good Flash coders is hard • Convincing good coders to move to Flash is harder
    28. 28. Should my next game be a Flash game?
    29. 29. Should my next game be a Flash game?
    30. 30. Q: What next for Flash? Flash continues to mature
    31. 31. Q: What next for Flash? London Flash Platform User Group: Speakers • May 2007 –‘Physics for Flash Games’ Velocity, acceleration, gravity, drag, friction • June 2010 –‘Hands on Unity 3D’ Meshes, rigid bodies, lighting and shaders
    32. 32. Q: What next for Flash?
    33. 33. Q: What next for Flash? Mobile
    34. 34. Q: What next for Flash? Other plugins
    35. 35. Flash in Native Games
    36. 36. Q: What next for Flash? Meanwhile… • Hardware rendering • True 3D API • Native API
    37. 37. Should my next game be a Flash game?
    38. 38. Changing How the World Plays Games 44
    39. 39. We are hiring! Game devs, server devs, artists, producers… www.playfish.com/jobs
    40. 40. Questions? dan.borthwick@playfish.com