Showing posts with label Flash. Show all posts
Showing posts with label Flash. Show all posts

Monday, 19 November 2012

Fuck This Jam!

Whew.

I can honestly say I have spent more hours programming in the last week than I would normally do in three. Thanks to a freak of bad timing (or good timing, depending on how keen I'm feeling), I worked on stuff for three back-to-back jam events in a row, on top of my day job. I can sleep when I'm dead, right?

The first of my triple-threat jam onslaught was Fuck This Jam. Organised by the guys at Vlambeer, Fuck This Jam is a massive online gamejam to create a something in a genre you hate. Strong word, 'hate', and the idea seemed to polarise people from the off. I'm not sure I could say I 'hate' a whole genre, apart from sports games, but I think that's more an aversion to sport rather than an aversion to sport videogames.

I toyed for a while with sports management games, which sounded simple in my head: no graphics, a bunch of numbers, easy peasy. After actually sitting down and sketching ideas out however, it started to sprawl and sound more and more complex, so I canned it. Definitely the right decision. I also toyed with an actual football game, and although I canned that in the end too, it was interesting to note that quite a few people did make similar games in the end... seems like the programmer community hates sports. Who'd have guessed?

In the end I chose to look at the match-three puzzler mechanic: I don't hate puzzle games, and I don't even hate match-three puzzlers, but I do hate inane pointless puzzle games that have no challenge or objective. Puzzle Quest = good, endless none-challenging Bejewelled clones = baaad.

I lucked into meeting a chap in the Fuck This Jam IRC channel, by the name of Kieran Lampert (@CandidKlamp), and after batting some ideas around we decided to form a pan-global tag-team and work on something together. Kieran is a total ninja digital illustrator, who does 2D, 3D, and as I found out later, amazing animations too. A general all-round magician. Check it out:
The game idea came together amazingly quickly. In just one quick conversation on IRC we had a basic design doc down, and we set to work. The time difference worked out great too: I'm in Manchester in the UK, and Kieran is in Seattle, so when one of us was about to go to sleep, the other guy was waking up! This allowed us to keep the momentum going well, and meant we were never waiting on each other.
There was a load of back and forth after that initial conversation, but the basic mechanic we came up with was to swap tiles with army units on (think Advance Wars), that would then fight each other. Stats change depending on the terrain, and the unit type. If a unit is destroyed, it's removed and the tiles slide inwards like a puzzle game, and a new unit is added at the side. In keeping with the match-three idea, having adjacent units together forms a battalion and makes them stronger. Oh, and each player gets a load of turns in a row (say, five each), so they can move tactically and keep units togther, that kind of thing.

We'd pre-decided all the pixel measurements, so I was able to stick placeholder artwork in while Kieran did his thing on the other side of the planet. This is the first tilemap engine I made, with some crappy PNG's laid over the top that I screengrabbed from Kieran's email. Did the trick in a pinch:
These then became proper tiles, which turned out brilliantly. Kieran created a great little tileset with land and water, including normal and inverse transitions, which went in pixel-perfect. I cobbled together a super rough tilemapper, in the name of quickness all the levels are hard-coded arrays of values, but it was enough to get by for the jam!
Kieran also animated the units perfectly, and was even good enough to put everything straight into Flash, which meant life was pretty easy for me at the receiving end. I also managed to get the grouping working, so adjacent units are a bit stronger. This is the first debug version just after getting it working:
Everything went well overall, but as always the time factor was an issue: real life started getting in the way a bit, and before we knew it time was up. We'd managed to get everything moving and fighting, and ran completely out of time before doing any game logic. Here's how far we got:
We submitted it anyway, and we're both massively happy with where we go to: it was a valiant effort, all things considered! As a concept I think it's definitely got legs too, and now we're not frantically panicking about a deadline we've agreed that we really would like to see this made into a full game. The code for this version is horrible (as most jam code is), but the mechanic is straightforward. I'd also like to try and get it onto mobile devices too, we'll have to see how that goes. I reckon I might take Haxe for a spin, see if I can't get it compiling onto devices. Watch this space on that front....

So yes, we had a blast making this even though we didn't *quite* get there, and working with Kieran was awesome too. If this jam rolls around again, I'll definitely be taking part. I might even make a football game.

View the full playable submission here!

Thursday, 23 February 2012

Honest playtesting feedback - from a 7 year-old

So, we just finished up on a reasonably large games project for kids. I can't post it here, but the gist is that it's a kid's site where they can make an avatar and create buildings to go in a little city, along with minigames and that kind of thing. Really nice, fun project.

Yesterday, we received some written feedback from our very first playtester: Holly, aged 7. It was too cute to not share:



But wait, it gets cuter. We wrote back to her, in-character, as one of the people in the game (the Mayor of the city). We've not given it her yet, but if I was a seven year old and a character from a game wrote me a letter, I'd be pretty happy! (Project title is blanked out, but you get the idea):


Bawwww.

Sunday, 5 June 2011

Tate projection installation: 3,500 messages later!

The projection installation I created for the Tate Liverpool has been live for a while now, and yesterday I was sent a dump of all the data that's been entered into it so far.

It makes for really interesting reading: I learned that for the most part my swear filter worked well, apart from a few (admittedly creative) exceptions. I also learned that people really tend to write a lot of crap into public installations.... I was obviously expecting a few posts to be hidden, but the percentage that the staff had to manually disable was far far higher than I'd ever have estimated. It was great to see however that some people seemed to take the time to write genuinely nice comments, not just about the exhibition but about the Tate and the staff, and even one or two about the projection itself, which was nice. :)

There were a few common themes throughout: unsurprisingly a lot of schoolkids tended to write things like "Dave Smith was here", and there were a lot of attempts at getting profanity or offensive content through. Luckily the staff were really on top of things and shut that stuff down pretty fast. Something I did find interesting however was the amount of "vote labour" posts: either there was one committed chap continually posting, or a few people had the same idea. Strange. Some of the comments were just completely unrelated in every way, I think it must be the anonymity coupled with the fact that the comments are going to be six feet wide that incites people into writing absolute crap.

Anyway, the full list can be viewed here. Below is a selection of the best ones I've found (for various reasons!)
  • "Could somebody please give me directions to the art?"
  • "I love Nancy Allen...will you marry me?"
  • "SHE SAID YES!!! WAAHEEEEEEEEY"
  • "It looks very hard growing up,and i dont want to grow up."
  • "I felt the work conveyed the struggle between youth and adulthood beautifully. It reflected how i feel about the sudden jump we go through as people into world of responsibilities."
  • "i like the sculpture on the floor. it makes me think of great things. Leo, aged 4."
  • "FRIDAY FRIDAY GOTTA GET DOWN ON FRIDAY"
  • "HAPPENED TO WALK PAST WITH A BAG OF SWEETS AND THOUGHT 'ART' I WILL GO AND HAVE A LOOK AT THAT BECAUSE IT IS RAINING"
  • "rowan thinks this is beautiful. Age 5."
  • "I enjoyed the way the pieces could be understood and interpreted differently by the different age groups, it made the exhibition almost personal. Amy-age 26"
  • "All in all good fun and interesting, thanks for a great day, BOOBIES"
  • "hi i am writing on a wall!"
  • "art confuses and confounds me! keep it simple!!!"
  • "Interesting artwork included here, I'm not sure if I like it or not. The artwork itself is slightly too wacky, however, the reasons for the art make sense. 7/10"
  • "It leaves more questions unanswered than answers questions"
  • "pretentious"
  • "In my country, we have a saying: put computers in the hands of fools and you will experience folly"
  • "What a great way of capturing people's views of the exhibitions in a way that in itself, is art."

Tuesday, 12 April 2011

Tate Installation - What I Learned

The installation project that I was working on for the Tate Liverpool is finally finished and installed, and has been running for a few days. It turned out really nicely, although the process was a lot different to my usual kind of project. While I'm happy with the final result, there's a lot I'd do differently if I tried to tackle something like this again (and hopefully I will). Here's what I learned:

Choose your technology wisely.
I made the projector in Flash, as a dual-screen AIR application. The primary screen is the user-facing input part, where people write their comments. This screen also serves as the admin screen if a password is entered into the comment area. The second 'screen' is actually the projection itself. I used this handy class to make life easier, but it was still a bit of a pain making sure that focus was doing what I wanted. I'm also really concerned that the Flash player might be prone to crapping the bed when it's been left running for a few days, it's not something I've got much experience with.Only time will tell if it stays stable, it's been a few days and I've not heard anything. In hindsight, I kind of wish I'd gone with my initial plan to use Processing, but I ended up taking the comfortable option and going with the technology I knew best, despite the advantages that Processing would have given me. Ah well.

Testing an installation project is hard.
Working on a regular monitor for a piece that's eventually going to be a few meters wide is a total nightmare. I spent days working with font sizes that looked completely natural on-screen, but looked totally different when we projected. About halfway through the build we rigged up a McGyver-style setup in the studio (see below) and managed to approximate a projection at the right size, and immediately realised that the fonts were still miniscule. Whoops. Next time around, I'm going to try and run the maths on it first: if the client wants a certain text size (in inches for example) then I need to sit down beforehand and figure out what size to set my assets at. It would still need testing, but my approach on this one wasn't even an educated guess and really created a lot of extra work.



Never underestimate people's creativity when it comes to profanity.
Filtering swearwords was the biggest concern I had for the entire build. In the past I'd done some very basic filtering, but only for things like websites and apps. It doesn't really do much damage if someone decides to fill my forms with swearwords. However, if someone sneaks a few creatively-formatted cuss words through at a crowded Tate exhibition, it's potentially a huge deal. I ended up going for a three-tiered approach that seems to have a worked alright. I won't go into the technical specifics (that's a whole post on it's own) but it essentially checks input against a massive list, then searches for the more common words within words, including common letter/number substitutions. I tested what I thought was a solid system very early on, mainly through my Facebook friends, and within a few minutes realised that people are immensely clever at subverting filters and ruining my day. Hilarious as it was, the testing proved invaluable, and meant that I came up with what I'd like to think is a pretty robust system. I've not had an angry call from the Tate yet, so that's reassuring.

Letting staff edit content without the use of a mouse, is a pain.
The screen has a password-controlled admin screen that allows the staff at the exhibition to quickly access the user comments, in date/time order, and very quickly disable any offensive or unsuitable comments. This was an important feature: I was pretty confident in my profanity filtering, but of course there's a lot you can do without swearing. My big issue was the lack of a mouse, so I had to handle screen-to-screen focusing cleverly to make sure the user couldn't get out of place or lock themseleves out of the screen. Turned out really well though.

Block that keyboard.
In addition to filtering out swearwords, I needed to make sure that nobody was going to kill the presentation or alt-tab out of it, or whatever. This was absolutely mission-critical, and should really have been the very very first thing I sorted out, but of course I ended up getting stuck into the visuals and leaving it til last. Mistaaaake! Luckily, I found this little app that allowed us to quickly disable a lot of the keys. Again, if I'd done this in Processing I could have done this myself as part of the app, which would have been a much more streamlined solution than relying on a second external app to handle key blocking. Not to worry though.

Overall I'm very happy with how it went from a technical perspective. There was nothing that went particularly 'wrong' with it, I just think that with a little more planning in advance I could have saved myself time, and made life easier.

We did end up slightly simplifying it visually, just so we knew it would work. Again, this wasn't a mistake as such, I just kind of wished I'd done a bit more testing to see what I could have gotten away with. I also think this would have been a great learning experience had I picked Processing over Flash, but of course that comes with the risk of things not going as smoothly as it did due to be me using an environment I'm familar with. Perhaps there's better projects to cut my teeth on than ones that are going to be projecting in front of hundreds of people. Hmm.

Anyway, I really enjoyed the experience overall, and will definitely jump at the chance to do something like this again. If you're in Liverpool in the next two months, go check it out.

Sunday, 13 March 2011

Beginner's Arduino @ Madlab

Yesterday I was lucky enough to attend an introductory Arduino course at Madlab in Manchester. I've been wanting to get into this stuff for a while now, so when the course came up I jumped at the chance to get stuck in.



Madlab itself is an awesome space, somehow I managed to completely pass it by and not attend anything there until yesterday. What they're doing is a really good thing: creating a proper grass-roots creative space for the whole city to use. Next time they need volunteers for things (I've seen them put a few calls out in the past), I'll definitely be getting stuck into helping them out, it's a great place run by great folks. The Omniversity programme reflects this too, offering a really diverse range of training at an amazing price: the Arduino course was £120 for a whole day's training, and I came out with an Uno board and a loads of bits. Bargain.

Anyway, Arduino is an open-source hardware platform that lends itself really well to experimentation and prototyping. It's cheap, really easy to get into, and allows programmers to screw around with electronics pretty quickly without requiring a shitload of prior knowledge. It seems like a logical progression for me: I know Flash inside out, and I do a little Processing, I love to experiment, and I'm too old for Lego. The Arduino platform fits my requirements pretty much perfectly then.

Within a few minutes we'd connected the boards via USB and got them up and running. The Arduino language is very similar to Processing, in fact the environment is almost identical. The main difference to Processing is the fact that once you've finished writing your code in Arduino, you can hit 'upload' and send everything to the physical board. The whole process was far easier than I was expecting, and the satisfaction of seeing your code controlling physical components for the first time is absolutely immense. Even just wiring up a couple of LED's and a potentiometer and making it work properly gave me a real sense of 'I made this! With my hands!'. We kept connected via USB for these lessons, but once the code is uploaded to the chip's memory you can hook up a 9v battery or even an AC adaptor. Very flexible.

The physical components themselves are wired to a breadboard, which is none-permanent (i.e. not soldered in). This means you can screw around with things all day and re-use everything. Of course, if you wanted to make something permanent you could easily transfer your hardware to a smaller Arduino and solder it all in, no problem. At the moment my interest is in experimentation, so the Uno fits the bill great.

Once we'd gotten the basics down, everything else followed really quickly. The group was quite small, and we were all kind of the same level, so things moved pretty swiftly. The course materials were great too, we got printed versions of all the board layouts, along with all the stuff digitally too. The projects themselves were great, each one introduced a new idea or concept or component, but in a way that really wanted you to keep messing around and pushing it further. The highlight for me was getting wiring up a potentiometer and a light sensor to act as a makeshift theremin, incredibly geeky but very cool.

So, next steps? I ordered a basic starter kit from Oomlout that has more stuff to play around with, and my priority objective is to get my hardware talking to Flash, probably using something like AS3glue. Once that's down, the possibilities are absolutely endless: I love the idea of controlling my Flash games with accelerometers and light sensors and generally going nuts with the tech.

Overall it was a great day. If you're even remotely interested in this stuff, you have got to check Arduino out. I feel like this is definitely just the beginning of some serious nerd-fu.

Thursday, 3 February 2011

Accurate Geolocation in Away3D

I built a globe in Away3D recently, and needed to mark on a few countries. It didn't have to be that accurate, but I figured that if I'm going to spend time putting points on it, they might as well be spot-on.

It was actually pretty straightforward to do, and turned out really nicely:


This example works using manually typed latitude and longitude, but it would be pretty simple to hook up an API that would let us edit the points, Google Maps might even do it.

Once we've got our latitude and longitude, the only other thing we need is an accurate map. I made this texture in Photoshop, but ensured that the map I worked off was designed to be wrapped around a globe. When it's laid flat, it actually looks very weird and warped (Antarctica looks massive, for example), but this is to allow for it 'pinching' at the top and bottom when the texture is applied. Obviously the map needs to be set exactly right in terms of placement too, I could tell mine was correct because the UK (i.e. the GMT timezone) was in the exact center:


Each country is then added to an array. I got these manually online, so they're far more accurate than I really need them, but it doesn't really make any difference:

locations.push(["Turkey", 38.963745, 35.243322]);

Once we have the locations, there's some scary-looking math that will convert the latitude and longitude into radians, in three dimensions. Initially I thought that maybe it was just three straightforward trig calculations, but it's actually a little more involved:

var phi:Number = (90 - locations[i][1]) * Math.PI/180;
var theta:Number = (locations[i][2] + 180) * Math.PI/180;
marker.x = (earthRadius + 15) * Math.sin(phi) * Math.cos(theta); 
marker.z = (earthRadius + 15) * Math.sin(phi) * Math.sin(theta);
marker.y = (earthRadius + 15) * Math.cos(phi);
           
(This is a bit of a step up from 2D trigonometry, and I definitely want to get my head around it.)

Anyway, that's the markers placed correctly in 3D space, but we still need them to point 'inwards', towards the center of the globe. We could work this out in the same sort of way as the placement calculation, but Away3D makes it a bit easier by letting us tell each marker to 'look' (orient) itself towards a given point. This is a simple example, so everything orients itself to the center of the space, at 0,0,0:

marker.lookAt(new Number3D(0, 0, 0));
marker.pitch(90);

And that's it, accurate markers on an Away3D globe.

EDIT: Had a couple of people asking for the source, so here's a really basic version to check out. The texture is a free one that I downloaded here.

geolocation.zip [3.2mb]

Monday, 31 January 2011

My first installation, argh!

I've recently been asked to help build an interactive projecting installation for a museum in the UK (can't say much more about it for now, but it's a well-known art museum in Liverpool, you work it out!).

The brief is to come up with a way of letting users comment on the exhibition interactively, and to display that information to other visitors in an interesting way. The plan is to have one machine dedicated to user input (hopefully a touch-screen), and then another machine hooked up to a projector in the venue that will have an animating display showing loads of live data, that contantly checks through user's comments and displays them nicely. I'll be using AIR for both parts, and some sort of database solution to store the info (I might even grab tweets from a dedicated Twitter feed too, if there's enough interest).

This is a really nice example of what I'm seeing in my head, although this one is A) webcam enabled, and B) completely bloody amazing. Still:

Nike NO MORE TALK from seeper on Vimeo.


It's an interesting challenge anyway, and something I've got no experience in doing really. I'm quite excited to be involved though, but it means I'm going to have to really think hard about how I go about doing it. My work is usually online, or given to reps, or installed on computers. Having my work displayed in public for a few weeks where large numbers of people are going to screw with it presents it's own set of issues for me. Like these:

Potential Issue #1: Idiots. 
Idiots love to break lovely things like the thing I want to make. By this, I mean typing "cock" instead of a name, or sneakily quitting the app, or somehow trying to break it, whatever. I need to bear in mind that while writing "cock" as a username isn't the end of the world on a website, projecting it onto the wall at a busy art exhibition might be slightly more of an issue. I think that the museum setting means that this sort of sabotage is probably slightly less likely to occur than say, if it was in the middle of a street, but regardless: this thing needs to be completely twat-proof. My data will probably be stored remotely (a really simple mySQL type deal), which means that I could give staff at the museum the power to delete any offensive comments that slip through the net.

Potential Issue #2: Technology.
The program will be running for long stretches of time, which means that I really need to know that if things go wrong, I've got some sort of backup. My plan is to have the two machines hooked up to a network, but at the moment I think it'll be wirelessly. That means that if the wireless drops out for some reason, I need to know my program won't shit the bed and break completely. I think I'm going to have rolling checks at regular intervals that will grab any new comments from the database, and copy them to a local source which will then be used to power the projection content. This means that I can do a check for connection before each update attempt, and if none is found then it's not the end of the world and the program will keep running.

Potential Issue #3: Setting.
This is the first piece of work I've ever done that is location-dependent. How and where it's installed, and on what kit, is going to have a pretty huge effect on the end product. This means that I need to get in there with a camera and figure out where and how I'm deploying it, before I do anything else. There's even been talk of projecting onto a none-flat surface (maybe having raised sections to project individual quotes on to), which would be great, but is a lot more involved. We'll see what happens with that though.

So yes, I'm very excited, and can't wait to get stuck into tackling this thing. Once I get a proper working prototype down I'll probably update again with how it's going.

This should either be a really positive learning experience for me, or a massive and spectacular failure. Luckily, I'm an optimist prime. :)

Sunday, 21 November 2010

The 8bitrocket 16k Retro Remake contest

The awesome guys at 8BitRocket are running a really fun sounding game design contest at the moment, to recreate classic Atari games using your tech of choice. The fun part is, the game has to be squeezed into a measly 16k! OK, so it's not as stripped down as the 1K contests, but it'll still be a good challenge (more so considering I'll be using Flash).

I've been kind of struggling with fitting in larger projects recently, so this sounds like a fun little contest that won't eat up too much of my time. I'm also a sucker for retro game design, so it would be rude not to have a go really.

Game-wise, I'm definitely only going to choose from games I've played myself on the actual Atari 7800 I owned: at the moment I'm thinking about perhaps some sort of Pitfall clone, or if that turns out to be over-ambitious then maybe something a bit easier, like a Q*bert clone. I'm not going to lie: the best game I ever played on the Atari (if not EVER) was undoubtedly Ninja Golf. If I feel brave I might have a go at it, the game itself was absolutely rubbish, but it has ninjas and golf in it. Ninjas and golf!

Anyway, sounds like fun, check more details here!

Sunday, 31 October 2010

Down, Left, Right of the Living Dead!

Here's my entry for this month's Experimental Gameplay Project contest, "Boys and Girls". I decided that making a game specifically for girls or boys would be a bit rubbish (I don't really agree with dividing gamers down the middle like that), so I went for a mashup of two opposing game types instead.

What I came up with was a Dance Dance Revolution clone, that spawns zombies as you dance. A girl game, for boys:





Anyway, it's very rough around the edges, but the total build time was about eight hours so I think I did OK. It completely sucks as a game, but it was a ton of fun to make (and I learned a whole lot, and that's what it's about, right?)

Click here to play: Down, Left, Right of the Living Dead!

(Oh, and: a massive thanks to OELAV for hooking me up with the awesome 8-bit tune, and to Donna who made this awesome little thing out of beads that I turned into a screen zombie)

Sunday, 26 September 2010

Right, I'm off...

...to Brighton! Specifically, to Flash On The Beach:


It's shaping up to be a great event already by the sounds of it on Twitter, can't wait to get stuck in.

Wednesday, 28 July 2010

FDT!

I just received my full license to use FDT from the awesome, awesome guys at Powerflasher, they were nice enough to hand out licenses after demoing everything at Flash Camp Manchester recently. In case you missed the boat, FDT is a brain-meltingly brilliant Flash development tool, that laughs in the face of Flex.

Get it, love it:

Monday, 26 July 2010

Flash player: Security Sandbox Violation

Something I run into increasingly often at the moment is that incredibly annoying security sandbox violation error that tends to rear it's ugly head when I either work between Flash and Flex, or with any remote services. Googling brings up a lot of stuff about Crossdomain.xml, which, while useful to know, doesn't solve this issue (this problem is a local one, uploading the same files to a web server fixes it.)

There's actually a nice catch-all fix to it, which is something I always always forget about: the Flash global security settings panel, which can be found here:

http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

All you need to do is either add your project root to the list of allowed locations (duh), or if you're like me and can't be bothered doing it every time, simply add a single forward slash ("/") to the allowed list, and never worry about it again. (This isn't advisable if you tend to download all sorts of weird Flash stuff that you don't trust, as you're essentially opening up your entire machine's Flash sandbox security, but if that's not an issue then go nuts.)

Friday, 9 July 2010

Flash Camp Manchester

I spent yesterday at Flash Camp Manchester, a completely free event for Flash devs in the north west. I've never been to anything like this before (big events like this doesn't happen too often up this end of the country), but I'm really glad I went, it turned out to be a pretty fun and informative day (and we got some nice swag too, of course!)

The keynote by the Adobe people was more of a sales pitch than anything else, which I guess is fine considering they're... well, they're Adobe and we love their products (for the most part). The problem for me was that they were trying to sell Flash Catalyst to us, and I still don't see the point in it. As far as I can tell (and stop me if I'm wrong), it's a visually-oriented companion to Flex/Flash Builder, that lets people jam together prototypes and stuff without getting into code. But... why? It might just be me, maybe I missed the boat with this one, but I can't see myself spending a few hours dicking around in Catalyst when I could make better use of the time by getting stuck into the project itself. It's supposed to be a rapid prototyping tool, but prototyping what exactly? The only thing I think we as developers would need to prototype would be complex interaction or something like that, whereas Catalyst basically allows us to layout reasonably complete presentation pages. (Direct quote from the presentation: "no code, no thinking". Really?). If I want to prototype page content, I'll use Indesign, Powerpoint, or whatever (or even *gasp* a pencil and some pieces of paper). If I want to prototype interaction I'll damn well use Flash! There's absolutely no reason you can't knock out a quick and dirty proof-of-concept piece of Flash in half an hour. Please someone correct me if I've grossly missed the point with Catalyst, but at the moment it's a resounding "pffft" from me.

Next up was a guy representing the Open Source Media Framework, and this session kind of confused me for a while. The presentation was immediately very technical (explaining functionality and bits of code and all sorts), and I didn't really have a very good idea of what OSMF was, and what it could do for me. Turns out that OSMF is actually a brilliant idea, and something that I can absolutely benefit from using (as I've no doubt ranted before, my hatred of working with Flash video is relentless and furious). It looks really exciting anyway; having a single media player solution that doesn't care what you throw at it is hugely appealing, it's just a shame that the presentation was so confusing initially. I'll definitely be investigating it further before I tear my hair out on my next video project.

The Adobe guys came back at this point, to show us some more Catalyst. I said: pffft.

The next presentation was arguably the best one of the day, Michael Plank from Powerflasher came on and explained a little about FDT, before sticking a song on and writing the fastest code in the (north) west! The point of the exercise was to demonstrate that the features in FDT can speed your coding up by automating or assisting with common tasks. I'd dabbled with FDT before, but never seen anyone use it expertly, so it was a real eye-opener to discover just how awesome it actually is when you know what you're doing. And what's more, the Powerflasher guys gave us all a free copy of FDT 3.5 Pure too. It's an approach that's completely at odds with the way Adobe do things: Powerflasher haven't sat and trawled through a feature list, they just did a fun, rapid-fire demo and then gave us the software, which is definitely the way to do it in my book. Great session.

At first glance, I didn't think the next session would interest me too much, as I'm not particularly into mobile development (of course I'm sure that will all change when I bag a sexy Android phone when I upgrade...). It turned out to be a really interesting 45 minutes, with the Ribot guys giving us some insight into mobile development and how people interact with everything in general. By far the most interesting thing they came out with was an experiment into which finger people use to ring doorbells. Of course, we all assume the index finger, but it turns out that the answer was the thumb. This didn't make any sense to me, until they revealed that the survey group were all teenagers: their physical behavior has been altered by their high mobile use (text a lot, and you'll ring doorbells differently: fact.). I found this absolutely mind-boggling anyway, and am now thoroughly paranoid about how I ring doorbells. Thanks guys.

The Android session by the Adobe guys was great: really insightful, especially considering I'm still pondering my next phone. Well, I shall ponder no more, it's Android all the way. Not much to comment on here, but once I get stuck into mobile apps I'm sure I'll have a hell of a lot more to say! :D

To close the day, Seb came on and, despite technology seeming to hate him, stole the show. I'd seen a lot of it before, but it's always nice to see half the room waving their arms manically and shouting like idiots (unnecessarily, heh!).

So yeah, it was a long (and hot!) but thoroughly inspiring day. And if nothing else, I now have a copy of FDT, and of course: a Rubik's cube. Win.

Thursday, 10 June 2010

The Google analytics Flash API and me

OK, so I'm a little late to the party with this one (about two years too late), but whatever: the Google analytics API for Flash is completely awesome.

Actually, there's not much more I can add. It's a breeze to use, well-documented, and basically saves the world (like pretty much everything the folks at Google magically conjure). I particularly like the fact that the API can be used in such a way that no external Javascript is needed, so tracking Flash that's placed on third-party sites still works like a charm. Of course, you can still old-school it and use ga.js if you've already got it set up on your page.

It comes in component form for both Flash and Flex, or a straight-up bunch of classes wrapped in a .swc file for those of us who'd rather get stuck into coding (and have a seething hatred of unnecessary components!). The built-in debug panel is a lifesaver too, when enabled it blocks all traffic to the analytics servers so any testing won't affect the stats. Mega useful.

At the moment it's only for online stuff (which is perfectly reasonable) but there's talk of it being adapted for none-browser use too, which will be handy for tracking AIR applications and offline project distributions.

Google certainly covered all the bases anyway. Get it here, and read about it here. I'd post a code sample, but it's so easy to use I think the documentation will suffice in this case.

Thanks again, Google nerds! Where would we be without you?

Sunday, 6 June 2010

Portfolio progress

Well, my new portfolio is taking shape finally (it's only taken me a year or so to get going on it, you can't rush these things!)

It's a PV3D-powered extravaganza, or at least it will be when I start going nuts with it. Currently it looks like this, early days yet though:


The full version can be viewed here, but it might behave strangely if I'm still screwing with it, so don't judge the quality of it just yet!

Anyway, the 3D panels are looking good, the next stage is to get some information popping over the top of each panel when the mouse rolls over. The idea is to have two coloured panels floating just in front of the one you've rolled over, so you'll be able to see the project title and the category of work (I'm going to be including none-project work on here too, stuff like any experiments or cool stuff I've been screwing with).

When you click a panel, the rest will drop/animate off the screen, and some additional images and text will pop up. I think I'll tone down the rotation on the whole thing so I can have the text in 3D space, so it stays readable.

There'll also be Twitter and blog representations on the site too, which will hopefully pull in live feeds and do something snappy with them visually (while of course linking to the actual pages in case people don't want to be forced to read stuff on my site).

 Anyway, that's where I'm at. All I need now is some time to work on the damn thing! :D