Posts Tagged ‘big fish games’

  • Mystery Case Files: The 13th Skull was made in Flash. Let’s investigate …

    My wife and I have been big fans of the Mystery Case Files games for years. The first few were genre defining moments in gaming, and I’m sure made the developers (and Big Fish Games) an awful lot of money in the process. So it was no great shock when we bought the 7th in the series, 13th Skull. The game itself is good puzzle solving fun, with wonderful hammy acting and FMV that reminded me of old CD-Rom games like 7th Guest. Something that has gotten bolder as the MCF series has evolved.

    Being a curious sort of person I had a poke around the installation directory, and was genuinely surprised to find that the game used hundreds of SWF files. Some more poking around revealed a really nice game structure that I thought was worth talking about. Obviously I’m not the developer, Adrian Woods takes credit for that (along with coding he also did voice acting, graphics and animation too!). So this is just investigative guess-work on the most part, but fascinating all the same.

    Each location and puzzle in the game is an individual SWF file

    Opening one of these SWF files (from the Assets/Location folder) into Flash Player reveals something interesting.  As you can see in the picture below (click it for the full res version) there are differently marked zones. The green boxes represent “Movement Link” and the Aqua Blue boxes are “Hit Masks”. This is tavernExterior.swf:

    Some of the other SWFs contain yellow boxes with exclamation marks in them, usually above animated characters.

    This whole scene is animated. The water at the bottom ripples, the tavern sign animates and the lights flicker. It looks beautiful, and further investigation reveals it to be simple timeline animated sequences. High quality CG assets and Flash can do some great things. The animation is cut-up into sections, the bottom puddles being a couple of frames, masked in such a way that only the water is sequenced:

    The idea of having the Movement Links and Hit Masks as Sprites is of course extremely sensible. Simply hidden at run-time it means the designer can move them around and tweak them as needed, without having to bother a developer.

    WeatherFields and Particles

    Mystery Case File games make good use of particle effects. From mouse trails to rain drops, they are typically found in most scenes. It was interesting to see that they appear to be controlled by the use of “WeatherFields”. Visible in the top-left of the tavern screen shot, the icon appears to represent the effect in action across the scene.

    Particle definitions are stored in an XML file. A ParticleTemplate controls the base particle with values such as Count, Spawn Delay, Velocity, Rotation, Scale and Color. Particles also appear to be able to have Keyframes, which is an interesting concept in its own right.

    Some of the particle names include HiddenObjectFound, HintGlimmerTrail and Smoke2. These appear to be used for the generic particles. Weather is controlled by ActionScript. When a WeatherField is added to a scene a reference is created which controls factors such as the Flake Count and Velocity. I really like the way these weather events are part of the scene. It means you could drop in different weather effects to visually see how they look. In the tavern example above the effect of the rain is pulled off by a combination of parlour tricks – the great CG assets in the first place making the scene look damp and soggy, the timelined puddle animations, the WeatherField that splashes across the whole scene and finally there are raindrop “splat” animations placed randomly. Add all of these things together with powerful audio and you’ve got yourself a totally believable soggy setting.

    Package Structure

    The game has its own package called MCF7. This is split into sections such as:

    • MCF7.ActionState
    • MCF7.Assets
    • MCF7.Collectible
    • MCF7.Engine
    • MCF7.GameState
    • MCF7.Hint
    • MCF7.Location
    • MCF7.Quest
    • MCF7.StrategyGuide
    • MCF7.Vignette
    • MCF7.Util
    • MCF7.Weather

    … and I’m sure many more that I’ve yet to see. What I find most interesting about this structure is the depth into which it goes. MCF7.Collectible for example contains classes such as CrownInsignia. This is an extremely well organised system. MCF7 appears to over-ride Flashes native MovieClip class and extend it, adding some extra functionality on the top. I love the fact that the HintAgent is a class all of its own. The Game Engine and State Manager are kept independent of the Quests or graphical effects like the Vignette.

    There is real clarity in the design and structure used, something a lot of Flash developers would do well to emulate.


    As you’d expect with a game release this big it was built to be easily localised. This is handled with XML as you’d expect. Those of you who have translated your games in the past (for sponsors such as Spil) have probably already gone through the pain of getting all your text into an XML document and then reading it in, making sure the TextFields are correctly replaced, that fonts are embedded, etc. So spare a thought for the MCF team, who’s localisation file is 180Kb alone!

    The MCF localisation XML uses the Flash IDE MovieClip name as the reference. For example:

    <tavernKitchenHiddenObject_limeWedge_mc>Lime wedge</tavernKitchenHiddenObject_limeWedge_mc>

    Here we can see that the tavernKitchenHiddenObject_limeWedge_mc MovieClip will display as Lime wedge in my English version.

    It includes the name of literally every single item in the game (did you know that in the fridge there’s a hidden pancake for example?). Every location and every puzzle is broken down in the same way. Quests, Quest Items and Conversation Topics are broken down in a similar way. As are all of the Puzzle Hints (some of which I wish I had known before playing the game!)

    The method of tying the translated text to the MovieClip name itself is a good one, and one I would certainly consider for future titles. I just hope I never have to deal with a translation job this large 🙂

    Sounds and Video

    All of the sound in MCF7 is stored in external MP3 files. Literally hundreds of them. Over 600 sound effects and nearly 70 music tracks, as well as Ambient sounds and all of the characters in the game. I assume that the sounds are loaded at run-time as you move from location to location. Each scene probably only uses around 40 at most, so with the speed of modern hard drives you don’t even notice the fact they are loaded each time. From a memory management point of view, something for which Flash has a pretty poor track record, it must be essential to be able to unload those sounds in order to keep memory in check.

    Another interesting element about the sound is that MCF uses cuepoint files to control sub-titles. Here is a cuepoint from a piece of conversion you have with Charlotte:

    <Text>Keep your hands off our property!</Text>

    I really like this technique! Something well worth exploring to hook events to sound. Video uses the same technique. As you’d imagine by now all video in the game are FLV files. When looking at the video files I found that there are 4 possible endings. On my play-through I figure I got one of the better ones!

    Exe Wrapper

    The main MCF EXE is a UPX packed file. Somewhat annoyingly I couldn’t manage to unpack it using any of the usual means (NsPack, UPack, etc). Obviously it has Big Fish Games shell wrapped around it for license management and protection. Being unable to do this last step I wasn’t able to confirm exactly what lives in the final EXE, or indeed if it was the standard Flash Player, or a custom build (such as used in the likes of ScaleForm). From all that I’ve seen while digging through the assets and AS3 code embedded in the SWFs, I believe that the whole game is made in Flash. I may be wrong of course, and even if I am the asset management and location handling most certainly is.

    What can we take away from all of this?

    As a Flash game developer there are several things that this made me realise:

    1) Commercial grade Flash games are possible. The Mystery Case Files series is a massive multi-million selling franchise, expanded out into books and other platforms. To think that even in their 7th release they are still building the games in Flash is really quite something. For me personally I find that very inspiring actually. For web games I wouldn’t have doubted Flashes ability for a second, but for a download title I’d have been highly sceptical previously.

    2) Be organised with your code and your assets! This is something I strive to do in my personal and professional work alike. But it’s not always easy, not when deadlines loom or you just want to get finished and released. I guess after 7 iterations the MCF team have finely honed their game engine, but I expect that clarity and fastidious tidyness was there from the start.

    3) Break your assets down into small chunks. I do this in my own games already, especially so for the ones I build at work. But it really does pay dividends if you’re building something big or asset heavy. Having all of the locations as single files was a bold move. It means very little asset sharing could take place between locations, but with today’s multi gigabyte hard drives being standard what do they care about a few MB saved? For web games we have to think differently, but there are still lessons to be learnt. There is no reason at all why you can’t keep your background items / scenery in one FLA, and your sprites in another. Flash CS5 moved towards working like this with its XML based FLA structure.

    4) Great graphics really help 🙂 The MCF games have always had beautiful graphics, and this release is no different. Their clever combination of CG, video, timeline sequences and particle effects all combine together for a lovely end result. Never under-estimate the power of good assets!

    My full respect to Adrian Woods and the rest of the team at Big Fish Games who worked on MCF7. It’s a great game and highly entertaining. I’m sure it will be another massive title for them. For me personally I’m both inspired and still somewhat in awe of the fact it appears to be created in Flash. And even if the core game itself isn’t, all of the asset handling and management certainly is. And that’s pretty cool indeed.

    Mystery Case Files: The 13th Skull is available from Big Fish Games.

  • Garden Box live on BigFishGames

    This one slipped under the radar a bit, but I released a new game “Garden Box”  a few months ago. It was a “casual friendly” update of my game Dark Cubes. With the hardcore techno and demoscene vibe replaced with flowers, birds and gardening paraphenalia 🙂

    Anyway the game went live on BigFishGames today, so hop on over and have a play if you feel like a cerebral 3D challenge!

  • Kyobi Flash vs. iPhone sales figures & #1 in BigFishGames Online Top 10

    Kyobi on BigFishGames

    My match-3 physics game Kyobi went live onto BigFishGames today, and is currently sitting proud as the #1 game in the Online charts. At the time of writing it has a staggering 40,000 people currently playing it. I mean, whoa. That’s pretty incredible. That’s like the entire population of my home town all playing my game at the same time. I’m not sure how often the player count is updated, but it seems to be every minute.

    Adding those stats into the mix the game has reached 1 million plays since release just under a month ago, and it’s not even out on the really big sites I’ve sold it to.

    I’m well aware the reason it is currently #1 is because it’s the “New Game of the Day” – but so what, I still took a screen grab and will cherish it as my first ever BFG title 🙂

    “How did you get so many sponsors?”

    I’ve been asked this question quite a lot recently (along with “How is the iPhone game doing?” which I answer below)

    When I put Kyobi onto (FGL) the interest was immediate and rapid. As well as having it on FGL I also spent time emailing sponsors directly. Most of them didn’t bother to reply, but 2 did and both bought licenses, so it was worth my time just for this. One of companies who contacted me was GameJacket, who offered a $1000 advertising advance on the basis that all other versions of the game I sold were site locked (which they of course are), and no-one else got the game before them.

    I liked the sound of this offer. I was low risk to me, so I accepted it. This automatically meant that none of the other sponsors could have exclusive rights to the game. So I told them this and most of them re-adjusted their bids accordingly, understanding that they would get the game on the day of release, but on a non-exclusive basis. In effect, everyone got it at the same time.

    So I persisted with this offer to the various sponsors and they all agreeded. I built custom versions for them all, with API work in some cases, custom logos and pre-loaders in others. All versions were packaged up and ready for launch day.

    I also created a Media Pack they could download. This pack included a range of high resolution screen shots, game artwork, logo, description and thumbnails for them to use on their sites if they wished (and a number of them did).

    To date I have sold Kyobi to 9 different sponsors. 5 of those had the game on day of release, 2 others contacted me directly as a result of having seen it on NewGrounds (where it got a Daily 5th Place Award) and asked for custom builds. The other 2 bought it via the FGL game shop service. Updated: 26th April (5 days after original article written) – Kyobi won 3rd place in the Whirled single player game contest, adding $1000. It has also been picked up by another 2 sponsors adding $600 to the figure below.

    Combined I received $5,155 $6,755 (updated 26th April) from these deals. By making a lot of “smaller” sales I managed to effectively double what I would have got from the best “single sponsor” offer had I gone down that route. And of course the game is still on sale.

    You can see some of the custom builds of Kyobi on Andkon Arcade, Hubits, Juegos Juegos, Whirled and even a dating site called Connecting Singles! A tie-in with GameJacket means a special version will also go across the Spil Group of sites shortly too.

    2 very high profile sponsors are yet to release their versions, despite having had them for some weeks now. I’ll update when they do because I expect them both to deliver serious play figures.

    Of course the GameJacket version carries adverts, and the daily income rate from those has been quite encouraging (at least compared to my experience with Mochi). It won’t set my financial world on fire, but it should earn back the $1000 advance relatively painlessly. And then the money from that point on goes directly to me. As I have a full-time job that I love, that pays all the bills money made by Kyobi is surplus income. After tax it helped pay towards a new kitchen and parts for me to build a top of the line Quad Core PC. Could I “live off” the income from this game? No, of course not. That is what Flash game dev contract work is for, but that’s another post for another day.

    … and what about the iPhone version?

    iphoneKyobi was converted to the iPhone by my good friends at The Game Creators. The iPhone version is enhanced in several ways. It has a nice use of the accelerometer, more complex level patterns, blockers, bonuses and power-ups which improve the gameplay significantly.

    In short it’s a really nice game, and my agreement with TGC meant I’d get a decent percentage from sales.

    On the downside they renamed it from Kyobi to “Touch & Go”. In retrospect this was a horrendous move. Not only did it disjoint the brand, if you try searching for it on AppStore you’ll get about a million results back thanks to the generic title (have a guess how many AppStore games have the word “touch” somewhere in them! yeah, it’s a lot). Even direct searching for the exact title barely reveals the game.

    It was quite literally impossible to find. The GameJacket release carried an advert for the iPhone game at the end, which helped lead to some small sales figures, but quite frankly nothing I could ever retire on. It was far removed from the “iPhone $$$ dream” the media hypes, to say the least. A “Lite” version was also released to help shift things along, but it of course suffered the same “invisible to search” problem.

    So I pretty much wrote it off as a bad experience and forgot about it. That was until iDare hit the scene.

    He who iDares, wins!

    iDare is a free game TGC created over the course of 3 days. If you are old enough to remember the classic sci-fi film Aliens, you’ll remember the scene where the android Bishop holds down Hudsons hand on the dinner table, and spreads his fingers out and proceeds to stab a knife between his fingers as quickly as possible.

    School kids worldwide at the time re-created this using everything from pencils to protractors! iDare is basically an iPhone version of this crazy game. It’s good fun, it’s original and it is free. Since release it has gone absolutely ballistic. Currently #1 in the UK charts and #2 in the Canadian charts and#4 in the US charts and still climbing – that is out of ALL free downloadable apps on AppStore. The net result of this is over 600,000 downloads since release and increasing every day. Edit Update: As of today (April 26th) iDare now has over 1.2 million downloads.

    What does this have to do with Kyobi? Very simple: iDare was created with the express purpose of advertising the other games TGC had made, including mine.

    I cannot give any specific sales data, but suffice to say that Touch & Go has gone from being flat-lined at a few sales per week, to selling 3 digits worth of copies per day (and the first digit is > 1). And of course the more it sells, the higher it climbs up the charts. And the higher up the charts it goes, the more it sells. It’s currently #19 in Strategy titles and edging ever closer to the magic Top #100 games. If it manages to hit that mark TGC and I will be very happy indeed.

    At the moment direct income from the Flash version is greater than that of the iPhone one – but at current projections this could be reversed shortly. I’ll keep you all updated.

    So in my very limited experience with the Flash to iPhone market here are a few bullet points to take away with you:

    1. Don’t screw your brand up! Keep the same game name where possible 🙂
    2. Ensure your game title and description is AppStore SEO friendly! Avoid this part at your peril.
    3. Don’t assume that just by existing on AppStore you’ll make any money at all. You need a method of promotion. Find what works for you.
    4. “Lite” versions are mandatory now. Create one. But again, the “free” app space there is flooded, so don’t assume just because you have one that “Full” version sales will increase dramatically. They won’t, but it will help.
    5. Promote, promote, promote! Find a way to pimp your game as best you can. If you don’t it will sink without trace, no matter how excellent it may be. If you have no promotion strategy then don’t invest a dime into your iPhone game.
    6. Just having a Flash version of the game doesn’t mean you’ll dramatically increase iPhone sales – yes the sales do cross over, but the conversion rate was pretty tiny for this game. Hopefully yours will fare better.
    7. Talk about what you are doing! Blog about your game, tweet about it, Facebook wall it, YouTube it, put screen shots on Flickr, write about it in forums. Do the whole social works. If you do this well enough it’s possible to build up a good “following” before the game is released, leading to an initial flux of sales that will give it a little kick-start up the App charts.
    8. Cross promote. If you know another iPhone game doing well, and know the developer, ask if they’d be willing to sell you some “ad space”. It could pay dividends.
    9. Be realistic. Even with a #1 AppStore download promoting your game, Apple still won’t be sending trucks full of gold bullion your way. That moment is gone. Live with it and set realistic goals, you’re in hell of a competitive market place.
    10. Please keep making games, no matter what happens 🙂