26
Mar 09

Kyobi is now live on GameJacket

It took a lot of work and coordination, but my latest game Kyobi is now live and starting to appear in the wild.

In the end it was jointly sponsored by GameJacket, Kongregate, BigFishGames, Oberon Media, King.com and Bunnygames. Oberon themselves are responsible for the game content of MySpace Games, Orange, Yahoo Games and other big sites.

Believe me it was hard work producing all of those variations of the game! But the end result was worth it, both in terms of combined income and exposure the game will eventually have.

Right now you can play Kyobi on GameJacket (I’ve also embedded it below the jump), and it should start appearing on the other sites in the following days / weeks, as each site has a different release schedule.

My thanks to everyone involved in the game (Alex, Lindsay, SomaTone), my beta testers and you. Feel free to leave your feedback here.

Read the rest of this entry »

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

19
Mar 09

Kyobi re-branded as “Touch & Go” and released onto iPhone

Touch & Go

I’m pleased to announce that my latest game ‘Kyobi‘ is now available for the iPhone / iPod Touch from the Apple AppStore.

The iPhone version was developed by The Game Creators. It has been re-branded as “Touch & Go” with a new set of graphics more suitable for playing with your fingers.

Touch & Go is available as a free Lite version and the full version costing £1.79 / $2.99.

For those without iPhones this video shows how the game looks and plays:

For those with iPhones here are some links :)

Lite Version (should be available any day now)
Full Version

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

13
Mar 09

4k Winners Announced – Audience voting open

4k_logoThe Flash 4k Competition is over and the first and second place winners have been announced (no I wasn’t one of them!) – congrats to both games, and also to the other entries, some of which were truly stunning.

My personal favourite was the sky diving game, Falling with Style, which was a technical masterpiece and great fun to play. The stunt tricks you can perform in the air are stunning, and I was a bit shocked it didn’t get a better write-up than it did.

The main criticism about my game was the control system, apparently it was counter-intuitive and it’d have been easier if the ship just moved up when you pressed up and rotated to face the mouse pointer – rather than the Asteroids style motion it actually uses. Personally I loathe that style of control for arena shooters when using a keyboard vs. a joypad, but each to their own! Just a crying shame the 3 judges disagreed with me :)

Anyway the Audience Voting is now open, which means you get to play all the great games and then vote for your favourite. So get to it, and have fun while doing so as some of the entries are just incredible.

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

12
Mar 09

Say hello to my new blog design

I’d had the “old” design for my blog since April 2008. All I had done was stick my own header onto the default theme that came with WordPress. Hardly inspiring, but it did the job.

Tonight I sat down and pixelled my little heart out. The end result is this new design which I am much happier with. It makes the place feel like it’s truly mine now :) I’ve tested in FF3, Chrome and IE7, so apologies if it dies in anything else (Safari I’m looking at you).

I’ve got some plans up my sleeve to enhance the header a bit futher. I think the right-hand section is just begging for a little pong clock. Oh wait, no I mean it’s begging for a mini game. So I’ll see what I can whip-up. On the right you’ll notice I’ve added links to twitter and FlashGameLicense.com, my home from home. Anything that supports the sterling work these guys do is fine by me.

Incase you were wondering, the Predator in the header image is clutching an Atari ST computer. It was drawn by the Pompey Pirates artist Sid-B for their menu disk 95. Click here to see the full image it was taken from, and loads of other stunning 16-colour pixel work.

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

11
Mar 09

Infinite Ammo 4k Source Code Released

Infinite Ammo 4k

Well everyone else seems to be blogging about the release of their 4k games, so I’m doing so too :) I managed to get mine finished and submitted on-time. I don’t expect it to win a thing (results are in 3 days time), but I had great fun participating all the same.

I have created a games page entry for it, and in a slightly unusual move for me I have released the full source code for the game too. You can get it from it’s games page. What you learn from it I have no idea. At the very least there’s a pretty explosion / particle system, and a massively optimised and compressed Tween engine! Or you could just skim down through the code, shaking your head thinking “and he ENJOYED coding this?!” :)

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

02
Mar 09

AS3 Flash 10 Firefox Search Plugin

AS3 Flash 10 Search PluginI don’t know about you, but I rely on the Search box built into Firefox a lot. I use it almost religiously and have a selection of search engines in there, one of which is of course the ActionScript 3 Reference.

It was bugging me that there was no search engine plugin specifically for the Flash 10 version of the docs.

So, I created one.

If you use Firefox (or any browser that supports the OpenSearch plugin format) then you can add the Flash 10 search plugin to by simply going to this page on the MozDev site: http://mycroft.mozdev.org/search-engines.html?name=flash+10 and adding the Flash 10 version I created.

I’ve already used it several times in the past hour, so figured it’d be worth posting about incase anyone else found it useful.

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

28
Feb 09

How do you extract a Sprite back out of a ByteArray?

I should probably post this into some AS forums (and will do so later), but I had to get this out there quickly and it's bugging the hell out of me:

In short, how do you extract a Sprite from a ByteArray? (or any kind of display object for that matter).

I can write the object just fine, and read it back into a variable, but I'll be blown if I can then convert that back into what it was originally.

Here are my attempts so far:

Actionscript:
  1. var test:Sprite = new Sprite();
  2. test.graphics.beginFill(0xff0000);
  3. test.graphics.drawRect(0,0,64,64);
  4. test.graphics.endFill();
  5.  
  6. //addChild(test); // to test, works fine
  7.  
  8. var b:ByteArray = new ByteArray();
  9.  
  10. trace(b.length);    //    0 bytes
  11.  
  12. b.writeObject(test);
  13.  
  14. trace(b.length);    //    754 bytes, so our Sprite is definitely in there
  15.  
  16. //    Reset the pointer
  17. b.position = 0;
  18.  
  19. trace(b.position);    //    0 as I'd expect
  20.  
  21. var newTest:Sprite;
  22. //newTest = b.readObject() as Sprite;    //    Ends up being null
  23. //newTest = Sprite(b.readObject());    // Type Coercion failed error
  24. //trace(newTest);
  25. //addChild(newTest);    //    and kaboom, constant "Parameter child must be non-null." errors :(
  26.  
  27. var take2:Object = b.readObject();
  28. trace(take2);    // ok take2 contains an object, but how can I get the Sprite out of it?
  29.  
  30. trace(b.position);    //    754, so it has definitely read it all

Ummm someone, please help? :)

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

26
Feb 09

(Spoiler!) Play test my 4kb Game Competition entry

My 4kb Game Competition entry is very nearly finished. I'm in the final "tweaking" stages, trying to get the last few small bugs out, and iron the gameplay a little so it's less "random" and even more progressive.

The game is a twitch shooter based (loosley!) on Geometry Wars and requires some pretty mad flying skillz to last more than 30 seconds. The idea is literally to see what kind of score you can get. Here's a screenie:

Infinite Ammo

There are 10 different baddies, "boss waves", bullet power-ups and particle explosion effects galore! (I went a bit over the top in all honesty). I'd love to have added sound, but I'm pushed to the limit of my 4096 bytes shackles already.

I know the game isn't quite as "playable" as it should be, and I'll work on that in the final few days left before I need to submit to the contest. I also know I don't have a chance of winning (having seen some of the other entries lined-up!), but it was bloody great fun to code anyway.

And so as a sneak peak to you here's the latest beta to play. Comments welcome (but please do bear in mind this whole game had to fit into 4096 bytes, so don't go requesting anything insane ok?!)

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

25
Feb 09

Photon Storming onto Twitter

Ok, so I'm following the pack by getting onto Twitter 2 years late :) I know people call it a "micro blogging" service, but come on guys, face the facts - it's just internet chat in another guise. Doesn't make it any less fun though!

If you're interested you can find me at http://twitter.com/photonstorm

I've also hooked it into my Beanstalk account, so you'll get to read my insane commit messagess at 3 in the morning!

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

23
Feb 09

Flashtros & C64 SID music from AS3/Alchemy

flashtroI came across a great site called Flashtro. It's a collection of classic demo scene / warez scene intros and cracktros, recreated in Flash. There are 21 different intros on offer ranging from cracktros such as the Mandala Studio crack by Scoopex, to the "beauty" (*cough*) that is the Pang 100% Trainer by PROJ Inc (coder colours FTW!).

New intros seem to be released on a semi-regular basis, so I'll definitely keep this one in my bookmarks and check it out now and again. Perhaps they may even accept some  "guest tro's" from me? (although I'd rather redo Atari ST demos!) :)

Here's a shot from the Scoopex one:

Scoopex

C64 SID Music from AS3 / Alchemy

On a similar retro scene theme I found a brand new C64 SID Chip player written in AS3 by the always inspirational UnitZeroOne. It's a port of the Linux TinySID library (which is where Alchemy came in) with a minimal front-end interface to show it off. Flash Player 10 is required. Replay quality is great and it weighs in at around 150KB. Sadly the source is not yet released, the usual "it's a mess, I only threw it together in a few hours" excuse is given :) but I can appreciate that, although I'd still probably sell my Mother for it.

Now if only I could find the time (and skill) to try and do something similar for an SNDH YM2149 replayer!

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

18
Feb 09

4k Game Contest – Some useful tips

4kOk so after the embarrassment of my first post on this subject, I wanted to present some findings that may help you out on your quest for smaller SWF sizes. More importantly, I know for a fact these all worked for me!

For those who didn't read the previous post: I've been working on my entry for the 4k Game Competition, and have found the following information during the course of my coding:

Keep Event Listeners out of the constructor

I have a whole bunch of init stuff in my constructor (creating game graphics, setting up variables, etc) and at the end I kicked off the game by starting up the main events (keyboard, mouse, etc). But by moving the event listeners to their own function, and calling that function from the constructor, it reduced the size of the SWF.

If you know the size of something, use it! Avoid references where possible

When creating a Rectangle I passed in the width and height of a bitmap by reference (bulletBitmap.width). By removing this and passing in the actual known width of the bitmap (6) it saved a massive 20 bytes from the ActionScript code.

Before: bulletRect = new Rectangle(0, 0, bulletBitmap.width, bulletBitmap.height);

After: bulletRect = new Rectangle(0, 0, 6, 6);

Here's another example where being explicit saves bytes:

Before: fullRect = stage.getRect(stage);

After: fullRect = new Rectangle(0, 0, 550, 400);

This saved us 6 bytes.

Make Bitmaps Transparent

I create a bitmap the size of my Stage to hold the game background in. It looks like this:

gridBitmap = new Bitmap(new BitmapData(550, 400, true, 0x0));

Now I don't need this bitmap to be transparent (the 3rd parameter) as it sits at the bottom of the display list. But by setting the transparent parameter to "false" it increased the size by 3 bytes.

Even default values take-up space

Object instantiation is expensive in AS3, so it's best to pre-calc objects you need in your main loops at the start. However who would have thought that the following:

zeroPoint = new Point(0, 0);

takes up 1 extra byte than:

zeroPoint = new Point();

Even though 0,0 are the defaults for the Point object. Every byte counts!

Avoid Array references in for loops

I have a loop in the game that checks through a pool of baddies (standard Array containing a custom Object that extends a Sprite). I started out doing it like this:

for (var a:int = 0; a < baddiePool.length; a++)

and then ...

baddiePool[a].value = newValue;

But by pulling out the array element first at the top of the loop, then referencing that, I saved a massive 33 bytes in total:

ba = baddiePool[a];
ba.value = newValue;

Smaller than a ternary

Thanks to Kevin Luck for this one :) If you need to run a standard if/else on a value where it could be equal to zero then it can be shortened to:

x = lx || Math.random() * 550;

In the code above, x = lx unless lx = 0, in which case set x to Math.random() * 550. This is 3 bytes smaller than using a ternary/if-else equivalent.

Hopefully the above will help out those also entering the competition. Feel free to comment and add more tips!

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

18
Feb 09

4k Game Contest – and a word about ternary operations in AS3

4k Edit: Thanks to Kevin Luck for pointing out a flaw with the code in my original post (there was an extra assignment taking place, which caused the byte count to increase). Remove that and ternary will match if/else on a bytes-used basis. I'll keep this post up here regardless, just ignore everything from this point on :)
Read the rest of this entry »

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