Author Archive

  • 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.

    Localisation

    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:

    <CuePoints>
    <CuePoint>
    <Sample>1349</Sample>
    <Type>Subtitle</Type>
    <Subtitle>
    <Speaker>Charlotte</Speaker>
    <Text>Keep your hands off our property!</Text>
    </Subtitle>
    </CuePoint>
    </CuePoints>

    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.

  • Join the 16K Atari Inspired Retro Re-make Contest

    The guys over at 8bitrocket are holding a coding contest.

    The aim is to make an Atari inspired game, using any web-friendly language that you like, in 16KB or less.

    When they say “Atari inspired” they do NOT mean a straight port / re-make. But instead for you to take perhaps the core concept, or game world, or environment of an Atari game, and make something new and exciting from it.

    Considering how many excellent games appeared on both Atari home computers / consoles, and from Atari / Tengen in the arcades, that is a truly staggering wealth of titles to choose from.

    To get those of you who aren’t 99% Atari (like me) started, here are some useful links:

    Atari Arcade Games (134 games from APB to Xevious)

    Atari Games (another 68 arcade games, from from 720 to Xybots)

    Atari 2600 Games

    Atari 5200 Games

    Atari 7800 Games

    and of course, Atari ST games – here’s a listing from my site the Little Green Desktop, and another from Atari Legend.

    There are literally thousands of games to choose from, and remember you are not trying to port or accurately re-create them. You simply need to draw inspiration from them, and re-make them in a modern way. I agree 16K is limiting. But limitations breed creativity 🙂

    The full rules / details can be found here: http://www.8bitrocket.com/2010/11/19/announcing-the-8bitrocket-16k-retro-re-make-contest/

  • Cat Astro Phi is finished and up for bidding on FGL

    Cat Astro Phi is a game Ilija and I have been working on, and tinkering with, for the past month or so. I always wanted to make a Gameboy Classic game, back in the day, but was too young and never got the chance. This changed when in August my main desktop PC died. While I waited 6 weeks for a replacement all I had access to was a very basic laptop. No Flash IDE, no Photoshop, no SoundBooth.  Just really basic software and not much grunt power. So I thought it’d be fun to try and create a game, in the style of a Gameboy Classic, as all I had access to were super-limited apps anyway. So I restricted myself to those limitations – a resolution of 160 x 144, only 4 colours on-screen, 3 channel chip music, 8×8 tile sprites (or similar). It was a fun experience 🙂

    Well one thing lead to another, and here we are two months later and Cat Astro Phi is done! Ilija has worked his usual pixel magic on the graphics and music, and together we’ve built a 3-level action adventure game. The blurb goes something like this …

    “An unfortunate accident leaves your pet cat stranded. Explore and battle your way through three hostile alien planets. Each with their own puzzles, traps and inhabitants to encounter.

    Created in the style of Gameboy Classic games, Cat Astro Phi features stunning pixel artwork and authentic sounds through-out. Three planets, with interactive story sequences between them, leads the player on a journey – as they explore the levels, interact with the environment, solve puzzles, hack lazer walls, explode bombs, avoid sentry guns and blow stuff up! All while searching for their missing pet cat. “

    The game is in active bidding here on FlashGameLicense. If you’re a sponsor / portal then join in 🙂 Fellow FGL devs can also play the game there.

    The rest of you will have to wait until it’s released into the wild I’m afraid. At which point I’ll do a proper dev write-up. Until then I’ll leave you with a couple of screen shots (click for full size).

    Am glad to finally have this done 🙂 It’s been too long since we released anything (6 months), but brand new babies will do that to your productivity!

  • Getting Your Flash Game Sponsored – Book Review

    Ryan Wolniak, fellow Flash game dev and owner of the popular freelanceflashgames.com was kind enough to send me a copy of his new book: Getting Your Flash Game Sponsored. This is a self-published title available to buy from his site for $20 in PDF form, or $30 as a paperback.

    I felt it only fair that I should give the book a detailed but balanced review. So after reading it all that is what I present here …

    The contents of this book start with “What is Sponsorship?” and cover a decent range of subjects from uploading to FGL, making your game “appealing”, dealing with the bidding process through to sale. There are over 160 pages of content, although depending on your experience as a developer some of them could be seen as filler.

    It kicks off with the most important aspect of all – the variety of sponsorship offers out there, and the terminology that goes with it. Exclusive, Primary, Site-locked, Performance Bonuses, etc. It does a good job of giving the basics for each type although I did smile at the comment that “site-lock” sales usually are not “that much work”  because you just switch out branding and drop in a new API. I’m sure I am not alone when I say that I’ve seen some portal APIs that would make you truly weep! And you should never under-estimate how long some API work can take. It’s not uncommon for the more complex ones to be a good evenings work (3+ hours). On the flip-side I do find that the most complex APIs come from the portals who pay the most.

    I like the fact that Ryan mentions the selling of Source Code, although I didn’t agree with the statement that “You lose all rights to your game”. That is entirely specific to the deal you are making. I’ve sold the source code to a couple of my games, and both times they bought the rights to re-brand it for a single-use game and nothing more. It was an easy way to make a decent amount of money, although I know a number of developers who wouldn’t part with their code for all the tea in China.

    There are some interesting stats in the Game Details section. Here we are told about the importance of naming our game well. The stats show how many words are optimal in your game title across both Kongregate and Newgrounds. The only issue I had was that the pie chart segments were all in very similar shades of blue making them hard to read. As you can imagine most games have between 1-3 words in their title. This chapter continues to explain the right way to handle thumbnails, game screen shots, your game description and then dives out into an 11 page tangent on video capture and production (should you wish to make your own game trailer). I honestly feel it would have been better to insert good examples of thumb nails, screen shots and really captivating game descriptions instead.

    The Upload Process is essentially a guide to using the Flash Game License web site. There’s nothing wrong with this section, and it could be of help to newbies or younger developers. But I can’t help shake the feeling that if you’ve got to the point of being capable of coding your own game, then you’re almost certainly capable of filling out an upload form. Having said that it does help steer you through the jargon minefield you’ll encounter on the way.

    The next chapter is on the importance of getting Feedback on your game. Again this is mostly about how to achieve this via FGL and using their First Impressions service. Both things I’d suggest you do. Although First Impressions are very hit and miss, they nearly always carry a core element of truth to them. Once you’ve collected your feedback it makes sense to improve your game based upon it, and there’s a chapter dedicated to doing exactly that. This walks you through improving everything from your main menu, to your instructions process (how you educate the player), to audio, highscores, upgrades and achievements. This is a big section. And for the most part it’s a really good one, especially for new developers.

    On page 121 we hit the “Start the Bidding” process. Arguably the most important part of the book. It contains a lot of information direct from the guys who run Flash Game License, by way of lots of quotes about how their process works. This is useful stuff, and gives you a little insight into what’s going on behind the web site itself. There’s a huge section on dealing with emailing sponsors, how to talk to them, negotiation and managing your relationship.

    I very much liked the fact that Ryan makes it clear that sponsors are “just people too” as this is bang-on. But I wish he’d expanded this section a bit to include “How to deal with asshole sponsors”. If you are being offered a duff deal, don’t take it. Walk away. If a sponsor is offering you grief via a horrendous API, or taking ages to process a payment, don’t be scared of making this known to them. While I agree that you should remain professional, you should never be made to feel intimidated. I once had a sponsor successfully win the bid on one of my games, only to email me a few days later saying “We’ve realised there is only one level in the game. Can you add some more?” – I was extremely annoyed because it clearly said the game had one level (that was actually the whole point of the game), and more importantly they were requesting something well beyond the price they’d paid for it. So I said “no”. All I can say is don’t let them take the piss – if a sponsor starts asking for changes to your game, or offering creative advice, don’t be scared of reminding them they aren’t the game designer – you are – and they sponsored the game in the state it was shown on FGL, and additional work will be charged for.

    There’s a really nice Case Study from Bezerk Studios. Certainly one of the most successful Flash game development team working at the moment, it was really interesting to read about how they are constantly pitting bidders against each other. They demonstrate clearly that even after you’ve done everything this book recommends, and have tweaked your game to perfection, the best deals come down to constant negotiating and haggling, and that in itself is a fine art.

    I’m in a mixed mind over the book. Ryan has done a sterling amount of work, collecting together helpful quotes and opinions from developers and sponsors alike. He’s covered all of the core areas of game sponsorship, if a little briefly in some places, and it’s written in a good conversational tone without making too many outlandish claims. However if you’ve already sold a game on FGL then there is probably very little you will read that hasn’t occurred to you already. If you are extremely new to the process, then it covers some solid ground in a decent amount of depth. At the end of the day only you will know if the book is worth your time or not, and there is always the “30 day money back guarantee” on the PDF version, which is a rare and brave thing to offer. I feel there are several sections that could have been added to this book, and some which it wouldn’t hurt from dropping. But as a self-published first attempt I can’t fault the enthusiasm on display here.

    Getting Your Flash Game Sponsored is available from http://freelanceflashgames.com/getting-your-flash-game-sponsored/ (and yes I know the layout and copy on this page reads like one of those “Get Rich Quick” schemes – “I learned from their mistakes so you don’t have to!” (ick) but thankfully the copy of the book itself is far more approachable! So don’t let it put you off)

  • 9 Videos showcasing Flash 3D GPU

    As pretty much all Flash devs connected to the Internet now know, Adobe announced proper 3D GPU support for Flash at the Adobe Max 2010 Conference. Codenamed “Molehill” you can read all about it here. I’m not going to wax lyrical about how great this will be, but instead I just wanted to collect together all the great videos showing this new technology off.

    Max Racer

    The one that started it all, as shown in the Max 2010 opening Keynote.

    There are three videos featuring this game: The Multiplayer version, the Single Player version and a video introduction to what Flash 3D is all about (featuring this game) by Thibault Imbert.

    Ostrova Online

    From Alternativa, the same team who created the Max Racer game above, this is another showcase of their technology.

    There are two videos of this game: The original one (referred to as “Islands Online” on Twitter, but non-Russian speakers!) and this slightly newer one, showing the game scene from different angles.

    Metro 2033 Online

    The final video from Alternativa.

    View on YouTube.

    Doesn’t showcase much, other than a murky tunnel system and some nicely animated monsters. It’s apparently a turn-based browser MMO-game in the universe of “Metro 2033” novel by famous Russian writer Dmitry Glukhovsk.

    Zombie Tycoon Demo

    This is a lovely looking game demo of Zombie Tycoon by Frima Studio.

    Featuring half a million polygons, 500 zombies and some beautiful shadow and lighting effects, this is certainly exciting stuff! There are two versions of this video: The first is from the blog of Jean-Philippe Auclair who works for Frima Studio. His blog entry is a fascinating read because it gives some juicy technical details. His version of the video has the HiRes Stats component visible in the top left, so you can get a good idea of framerate / ram (in the HD version at least!). The second video is the official one which is similar, but without the interesting stats 🙂

    Disconnected Demo

    Last but not least is a new demo created by the Away 3D guru Rob Bateman and the Flash demo crew EvoFlash.

    Take a trip around a (rather grey looking) city. Flying cars zoom by, water reflects the world, and then a giant purple metaball drops in and explodes the place into bits. Lovely demoscene music to boot.

    I can’t wait to see what else is coming! I also can’t wait until this is in public beta. FlashPlayer 11 is going to be a real game changer for game developers at long, long, last.