Latest Posts
-
Cat Astro Phi is released!
8th Dec 20104I am very pleased to announce that we have finally shipped our new game: Cat Astro Phi. This has been a long, drawn-out development process. Not so much because of the game itself. Although I did fall foul of constant feature-creep. But because so many other things interrupted it: My most insane period at work all year, the birth of my daughter, a huge 5-game release project for the BBC, and loads of other things. All fighting for a slice of my time.
But I finally battled through and got the game into a state where I felt it was nearly complete. Then I showed it to a few friends, and the reaction was awesome. Adam Atomic told me “I LOVE THIS GAME it is like sci-fi Link’s Awakening i am like enthralled by this“. Tom Fulp emailed and said “I just played through, killed the robot and got left behind on planet 4. It was mesmerizing!“, and people I work with and respect highly were also very enthusiastic. So I knew I had something good on the boil. It’s so easy to lose sight of that when you’re deep in the game. For you, you almost hate the sight of it, and it just doesn’t excite you any longer. Know what I mean? But to have people like Adam, Tom and Chris say really positive things gave me that belief in the game back again. Enough to fight through and finish.
And finish I did 🙂 The game is now up on NewGrounds (who also sponsored it) and will be front-paged today. There are 11 Medals for you to unlock, some of which are easier than others, and a host of easter eggs to find. Plus of course there is this amazing soundtrack too by Rich Vreeland! You just have to check it out, or buy the digital remix album. At $3 it’s a steal!
Right now I’m going to have a bit of a rest, and take in the feedback and comments the game receives. I may make a few tweaks based on them, but essentially I now consider this game finished. And that’s a wonderfully liberating feeling 🙂 Atari 16k contest here I come!
-
Check us out in Computer Arts Projects Issue 144
2nd Dec 2010I’m very pleased to announce that Issue 144 of Computer Arts Projects magazine went on sale today. Ordinarily this wouldn’t be anything I’d blog about, but this issue is a little bit special. It carries a full-page feature on Photon Storm.
Entitled “From online to mobile” it talks about 4 of our games, and how we approach game development with mobile in mind.
There are some lovely screen shots of the Droplet game sprite sheet, Quartet, our new game Cat Astro Phi (which will be front-paged on NewGrounds next Wednesday) and the coming-soon Chickaboom.
While the article itself is a bit tongue-in-cheek, some of it clearly made-up on my behalf, it’s still nice to be represented in the mainstream press.
And even nicer to see Ilija’s awesome artwork in full colour display.
Computer Arts Projects 144. You can buy the single issue (soon) from here.
-
Mystery Case Files: The 13th Skull was made in Flash. Let’s investigate …
28th Nov 2010My 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.
More posts to tickle your grey matter ...
- Phaser Coding Tips 5
- Phaser Coding Tips 4
- Phaser 3 Development Log - w/e 30 Jan
- Phaser Coding Tips 3
- Phaser 3 Development Log - w/e 16th Jan
- Phaser Coding Tips 2
- Phaser Coding Tips 1
- Phaser v2.1.3 and Pixi v2 are out!
- Welcome to the DarkForge - An archive of all my old DarkBASIC code
- Phaser goes to the movies
Hire Us
All about Photon Storm and our
HTML5 game development services
Recent Posts
OurGames
Filter our Content
- ActionScript3
- Art
- Cool Links
- Demoscene
- Flash Game Dev Tips
- Game Development
- Gaming
- Geek Shopping
- HTML5
- In the Media
- Phaser
- Phaser 3
- Projects
Brain Food