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.
http://www.develop-conference.com/developconference2010/all-sessions-evolve.html
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>