Author Archive

  • The 8-bit Rocket auto-biography is out

    20 man months of work.

    Copious amounts of writing, editing, re-writing, re-editing and editing once more.

    Stacks of demo games and hundreds of lines of quality source code.

    All to make this the finest 650+ pages of AS3 game development ever commited to dead tree.

    Jeff and Steve, the 8-bit Dynamic Duo have done it! Their book is finally out …

    The Essential Guide to Flash Games: Building Interactive Entertainment with ActionScript

    Despite having a slightly odd title (how many games have you ever played that weren’t interactive?!) this book looks awesome. I’ve pre-ordered my copy from Amazon UK and will give it a proper write-up when received. I have major respect for people who hold down full-time jobs / families, and still manage to produce such a mammoth book as this.

    There is a bit of blurb on the Friends of Ed web site about it, although not as much as I would have liked. For example no contents listing, no sample chapter, a poor quality cover image and no index even. Given how many books on web development FoEd produce it begs the question why their own site is so shit. But I digress (and hopefully they will update this page over time). So for now the best place to learn about the contents is from the horses mouth so to speak, here on the 8-bit Rocket.

    Congrats Jeff and Steve – I wish you all the best with sales. All you have to do now is stop calling my games advergames and the world will be perfect 😉

  • Stop Telling Me What To Do!

    “Games, you see, are about having control.

    Videogames, most often, present the player with a world with a single end goal of “winning”. They are a perfect contrast to the real world, in which one makes one’s own goals, where goals and desires are constantly shifting, and the only ending anyone ever sees involves the main character dying.

    News flash: most people in the world are not astronaut supervisors or rock-star-slash-helicopter-pilots. Most people never get an opportunity and/or have the balls to be the guy who shows up to his job in a big stuffy corporate office on his first day in a leather jacket and sunglasses, tell the boss “You codgers need to change your game!”, and be the flip-flop-wearing CEO by Friday. Games like Dynasty Warriors give us a world with the invincibility code turned on: now we are the badass warrior capable of killing 300 guys before learning what a flesh wound is.

    We do — and this is a trite a thing as one can say — play games, sometimes, to escape the real world. People talk about that all the time. What I am proposing is that we play games precisely to avoid the parts of the world that tell us what to do, and when to do them, dangling “a more comfortable life” in front of our eyes all the while.

    Though that’s not all: games also present us with things we can finish. Things we can see through to an intended end. And we want to see the end. And the makers want us to see the end. Hence their trying to help us.”

    From Tim Rogers excellent article. I read it last year, and recently had reason to read it again. It requires a time investment to read it all, but it’s one I feel will pay back on itself many times over.

  • Flash vs. HTML5? Here’s what I’m doing about it …

    Goodness, the Interwebs surely have exploded with this whole Flash vs. HTML5 debate. I don’t think I’ve read so much dis-information since “weapons of mass destruction”.

    There is an excellent piece here (“I’d rather be a Woz“) all about it, which covers everything I feel, and strips away the sensationalist clap-trap coming from most quarters.

    But if that post summed it up so brilliantly, why am I writing here? It’s simple really. It doesn’t matter how many brainless blog posts and comments are made about how “terrible” Flash is, or how HTML5 is the bringer of world peace and technological unity. None of that translates into the real world right now, today.

    At work we are building some truly massive Flash based projects, in partnership with some of the largest broadcasters in the world (most projects of which I can’t even mention in passing, let alone link to). Sites that will be visited by tens of millions of people. Last week we released a new Shaun the Sheep game called “Home Sheep Home“. It has spread around the gaming portals like wild-fire, and is currently hitting 570,000+ plays per day. Since this time last week over 3 million people have enjoyed playing that one single game.

    And you know what makes that possible? Flash Player does. Adobe does.

    Would the same have happened if we’d made it in HTML5 and JavaScript? My arse would it. If we’d done that our support team would be pulling their hair out as millions of people across the world email to say “it doesn’t work in my browser!”. Maybe in 10 years time things will change. I for one surely hope so, as choice is a good thing – and goodness knows HTML4 needs a shot in the arm to wake it up from the 90s. But Adobe don’t sit still. Where will Flash be a decade down the line? Heck of a lot further on than where it is today, that’s for sure.

    So you know what fellow Flash devs… stop reading the constant stream of HTML5 / Standards / iPad ramblings (to which I just added :)), and get back to making and releasing great quality Flash games and sites. Because for every new release you put out there, you’re just strengthening what is already the largest platform in the world. Leave the zealots to their theory and hypothesis, because you and I are the front-line, and our creations are what makes the web a fun place to be.

  • Silmarils Collection for the PC

    If you were a real gamer back in the early 90’s you owned an Atari ST or an Amiga (and some poor freaks also owned PCs). But all of you would have been aware of the game developer Silmarils. Renowned for an almost Cinemaware-like level of graphics and attention to detail in their games. Most of them are classic fantasy based such as the Ishar series. This isn’t surprising given that the company were named after the symbolic jewels central in JRR Tolkein’s work The Silmarillion. This love of fantasy was evident in their games, graphics and stunning box artwork.

    I was pleased to read today that DotEmu will be releasing the Silmarils Collection for the PC on March the 10th. This includes 16 games. You can make out most of them from the box shots above. Personally I always thought the Ishar trilogy and the concepts of Robinson’s Requiem were superb, so as long as this collection is keenly priced I’ll be there. Hopefully DotEmu will have done as good a job on these titles as it did on R-Type and Street Fighter.

    You can sign-up to their mailing list here: http://www.silmarils-collection.com and once released (March 10th) this site will probably also contain full details of the games. For now here is a link to their newsletter announcement.

  • Save MovieClip as PNG Example

    A couple of guys on Twitter asked me if I would write-up how I generate PNG files from MovieClips in my SWF, at run-time. So I put this example together and am sharing it here.

    We use this technique in our virtual world WebbliWorld to save a PNG version of the users avatars after they have customised them. But there are all kinds of other reasons you may need this. My example includes two methods: Saving the PNG locally using the local file system, and Saving the PNG to a web server using AMFPHP.

    This technique requires Flash Player 10 and the Adobe AS3 Core Lib.

    Here’s a very simple example (included in the zip download below):

    [swfobj src=”http://sandbox.photonstorm.com/saveAsPNG/SaveAsPNG.swf” width=”640″ height=”480″]

    Essentially it all boils down to this:

    1) When you are ready to save your image, create a Bitmap version of your MovieClip.

    [as]
    private function getMovieClipAsBitmap():Bitmap
    {
    var bounds:Rectangle = theMovieClip.getBounds(theMovieClip);

    //    The * 2 is because we’re scaling the clip up by a factor of two, to result in a larger PNG
    //    If you don’t need this, remove it and comment out the m.scale call below
    var theBitmap:Bitmap = new Bitmap(new BitmapData(bounds.width * 2, bounds.height * 2, true, 0x0));

    var m:Matrix = new Matrix(1, 0, 0, 1, -bounds.x, -bounds.y);

    //    Simply scale the matrix to make a bigger PNG. Here we are doubling it. Comment this out if you don’t need it.
    m.scale(2, 2);

    //    Need to crop the PNG to a given size? Pass it a Rectangle as the 5th parameter to draw()
    //var r:Rectangle = new Rectangle(0, 0, 50, 40);

    theBitmap.bitmapData.draw(theMovieClip, m, null, null, null, true);

    return theBitmap;
    }
    [/as]

    2) Convert this Bitmap to a ByteArray.

    [as]
    private function getMovieClipAsByteArrayPNG():ByteArray
    {
    var data:Bitmap = getMovieClipAsBitmap();

    var ba:ByteArray = PNGEncoder.encode(data.bitmapData);

    return ba;
    }
    [/as]

    3) Send this ByteArray to either the local filesystem, or AMFPHP.

    [as]
    //    Uses FileReference to save the PNG locally to the hard drive (see “saveToServer” for an alternative)
    private function saveLocalPNG(event:MouseEvent):void
    {
    var ba:ByteArray = getMovieClipAsByteArrayPNG();

    file.save(ba, “BirdyNamNam.png”);
    }
    [/as]

    Complete source code is included in the zip file including an AMFPHP PHP script for saving on a web server.

    Hope someone finds this useful.

    Download the Soure Code zip.