01
Oct 09

DarkCubes released – Retro 16-bit demoscene gameyness

Away3D is an awesome 3D library for Flash. Flod is an awesome library for replaying tracker music in Flash. Throw those two things together with my inner-geek upbringing of the 80s and you get DarkCubes. I grew up drip-fed on ST/Amiga demo effects, and this random little 3D game is what I banged out during a couple of lunch breaks and some hours last night.

DarkCubes Credits

I actually wrote DarkCubes back in 2000 on the PC/Windows using DarkBASIC (hence the title of the game). So I had the code and figured it would make a good first experiment for Away3D. A bit of messing around, a bit of swearing, and lots of fiddling later and this tiny puzzler was born.

The logo is from the original PC game and was made by Yann ‘Kohai‘ Parmentier. The music is by Adam Sikorski (DSX of TRSI), 505 of Checkpoint and Toodeloo of the Dead Hackers Society. The rest by yours truly.

Lots of keys do stuff in-game, so have a fiddle! (1-5 changes the music for example, D turns on Debug info, 7-9 change texture, etc. Read the scroller for the full list).

I make no apologies for this beating shitty specĀ  Netbooks / PCs over the head with a giant CPU grinding axe. Deal with it. It’s hardly the end of the world.

DarkCubes In-game

Click here to play (sorry no pre-loader, but it’s only 1MB in size)

Enjoy ;)

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit Post to StumbleUpon

24
Sep 09

Star Fish is released

starfish thumbnail 100I’m pleased to say that my latest game Star Fish is released and ready to play. Enjoy some underwater aquatic antics in this mouse avoider / collect-em-up. Although the whole game was started and finished in a day, I’m still happy with the presentation and playability. If I had wanted to spend more time I would have introduced moving baddies and more levels. Even so, there are 25 to complete, which is probably 20 more than most people will ever see ;)

The game uses artwork by the same artist that did the cute insects in my game Bug Box. I think the “cute factor” really played against me when the game was up for bidding on FlashGameLicense. Chris/FGL admitted to me that they don’t have too many “kid friendly” portals on there, which made the game a hard sell. Still, my thanks to RobotJamGames and BigFishGames for taking it on :)

I’m very pleased to have created another game this year. I reckon I’ve still got a few left in me, but the months are closing in, and I sense the proximity of 2010.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit Post to StumbleUpon

17
Sep 09

Flickr Water Painting Demo

Flickr Water Painting I had an idea for a game where you had to restore colour to the world, by speeding around in a boat and dropping colour bombs onto the greyscale picture below. I thought it’d be fun if the images were pulled in from Flickr dynamically, creating a constant ever-changing sea of levels.

A few hours and a prototype later, and I realise it’s not actually going to work after all. There’s just no easy way to control what comes back from Flickr – you can’t search for images which just have “Big” sizes available, and you can’t easily exclude black and white images, which totally ruin the painting part of the game! There are also commercial issues with the Flickr API Keys needed to search and request images. So in the end what was a nice idea in theory, turned out to be a bit crappy in reality.

However I was left a random but pretty prototype. I’ve removed the boat/gameplay element, so it’s just the water painting demo hooked into Flickr.

Lots of pictures come back with “Image not available“, so just search again. If it seems to hang for a while after clicking Search, then just search again! Paint with the left mouse button. Sometimes it works right away, and sometimes only on the third or so attempt.

One of my artist friends commented that this made him look at the use of colour in a whole different light. He said that as you start filling the image in, the colours that come through are often totally different to what you’d expect – and when the colour is presented in low volumes it can often look very wrong. As if your brain has substituted the colours for you, and when they don’t match it gets confused.

I think there’s something quite calming / feng shui about it all personally.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit Post to StumbleUpon

15
Sep 09

Creating MovieClips dynamically at run-time using the Linkage Class

linkageI found myself needing to create a MovieClip dynamically at run-time. But all I had was a string representation of its Class, as set in the Linkage properties for the Symbol. In my situation the string had been stored in an xml file. Now you could use a standard switch/case block to do this, checking the string and creating a new MovieClip as required. But in this case there were hundreds of possible things it could have been, and it seemed a very "hacky" way to do it.

So how do you go about creating an actual display object from just the Linkage Class value? Thankfully it's pretty easy, and this new bit of code now sits happily in my "everyday functions" collection!

Edit: Updated to be a little more robust, and removed an un-needed cast:

Actionscript:
  1. public function createMovieClipFromLinkageValue(linkageValue:String):MovieClip
  2. {
  3.     try
  4.     {
  5.         var libraryReference:Class = getDefinitionByName(linkageValue) as Class;
  6.     }
  7.     catch (error:ReferenceError)
  8.     {
  9.         trace(error);
  10.     }
  11.  
  12.     if (libraryReference)
  13.     {
  14.         return new libraryReference();
  15.     }
  16.  
  17.     return new MovieClip;
  18. }
  19.  
  20. var newClip:MovieClip = createMovieClipFromLinkageValue("playerFishMC");

Make sure you have imported flash.utils.getDefinitionByName.

Simply pass this function the Linkage value as entered in the IDE, and it'll spit a MovieClip back at you (providing it was a MovieClip in the first place). I'm sure you can see how to extend it to return a Sprite instead, should you require that.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit Post to StumbleUpon

10
Sep 09

My new game “Star Fish”

Woohoo, I'm on a roll! :) Tonight I finished my new game: Star Fish. It has been uploaded to FlashGameLicense and is under bidding there, so hopefully someone will take a bite (pun intended). Star Fish is a fun little undersea mouse-avoider / collect-em-up, spread over 25 levels.

Star Fish

(This is a screen shot of a particularly hectic level!)

If you're an FGL friend then you can play it here on FlashGameLicense (developer ratings appreciated!). Everyone else will have to wait until the official release, sorry (or just email me)

I developed the whole game in 12 hours flat (over the course of 3 days, working evenings). That makes it the absolute fastest game I've ever created. It also means I finally managed to achieve my goal of making a game in a day that I set out to do with my previous game Bug Box, but ultimately failed. The next couple of games that I've got in development are much larger, and will take a lot longer to bring to fruition, so I'm happy to have sneaked this one out.

I'm a bit worried that the cute visuals will put sponsors off. It makes the game immediately family / girl / casual portal friendly, but it also means it'll drop like a lead balloon on the likes of Newgrounds or Kongregate. Such is life :) This is a game I'd be happy for anyone in my family to play, and for that I'm pleased. I'll keep you all updated as to how it performs.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit Post to StumbleUpon

02
Sep 09

My review of Foundation ActionScript 3.0 Image Effects

Foundation ActionScript 3.0 Image Effects book coverI have to admit I was really looking forward to this book. As a Flash games developer I'm always keen to read about interesting new techniques when working with bitmap data. I was also eager to learn about Pixel Bender and FP10 in depth. Sadly this book fails to deliver most of that.

You get a lot of book for your money (650+ pages) but it works on the basis of "list all of the commands in X API, and explain them bit by bit". The problem being that the explanations are often very short and give you even less information than Adobe Livedocs does. The Blend Modes chapter has lots of large images in it, which are all in black and white, so are of course a complete waste of space (the author does mention as much, but it begs the question why bother having them).

The "Advanced Bitmap Manipulation" chapter starts off by teaching you how to use the dissolve method (a truly quite useless method if ever there was one) and yet it takes up nearly 5 pages of the book. Perlin Noise follows - another 16 pages gone - although at least this one is quite interesting, and it goes into it in a little depth. The whole chapter is really nothing more than going through all the properties and methods of BitmapData. Which is ok, but Livedocs does it just as well and often with more explanation.

The Pixel Bender chapter explains what a shader is, the basics of using the toolkit and creates a very very simple kernel. It does a good job of explaining this shader, but it stops there and doesn't go any further. It tells you about using shaders for custom filters and blend modes, but gives no further details on how to write them. So you will get precious little more than a brief introduction to PB, certainly not enough to code a shader beyond the example given. This is annoying as the front cover of the book says "Teaches ALL about Pixel Bender" - no, it doesn't. It barely scratches the surface. It's nothing more than a "Hello World" of Pixel Bender.

It then goes into 3D. The explanations here are useful but simple. Depth of field, extrusion, z ordering, that sort of thing. In short you probably know it all already. It shows you how to extrude text (by basically cloning the text object a number of times in ever decreasing sizes, so faking it - don't bother, use Away3D), rotation, scrolling and very basic billboarding.

The rest of the book is made up of chapters going on about the authors own graphics library (aeon / aether) and applying this to text, sound and video. It's a nice idea but honestly most devs will have similar libraries they use already, and none of the effects shown are very "every day" (how often do you really need to set fire to some text? honestly?).

It's a crying shame as I really wanted to like this book, but despite its mammoth size it feels very lazy. Chapters are little more than method dumps with the briefest of explanations for each property. Examples are numerous but uninspiring, and there really isn't a single "Advanced" bitmap effect to be seen anywhere.

I guess depending on your experience level this book could be useful. But if you've got the time to check out Livedocs, read a few blogs and basically experiment for yourself then you'll learn a whole lot more, a whole lot faster in my opinion.

The book is available here on Amazon and all the usual places.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit Post to StumbleUpon