Archive for the 'as3' Category

More award nominations

A quick update to say that we’re up for some more awards!

First of all, Bow Street Runner is up for a BIMA award on the 27th Novemeber.

Secondly, Bow Street Runner is up for a DIMA award on the 27th November, along with the excellent Transformers auditions we made for Paramount.

It’s absolutely fantastic to see BSR up for more awards. It was a lot of hard work, and I’d like to think that it really has paid off.

If you’ve not played BSR, it’s a free online game for Channel 4 that was launched earlier this year. It could easily take over an hour or more to complete all 5 episodes, so if you fancy a little taster video to see what it’s all about, take a look at the video here.

I’ve blogged about Bow Street Runner a few times.

Bookmark and Share

Red5 – my experience so far

Red5. The promise is: “an Open Source Flash Server written in Java” with support for pretty much everything most people would need. According to Chris Allen’s session I went to at Flash on the Beach, it would be easy enough to get it set up and running. 

Well, that’s not quite my experience with Red5 so far. First of all, there doesn’t seem to be a central resource for information. There’s the following – i’m not sure which are official:

 

 

I also couldn’t find any examples using AS3, which was a little suprising. I see that’s planned for version 0.9.

After downlaoding the most recent release (0.8RC1), I spent several hours attempting to get it up and running on my XP box to no avail. I then tried installing 0.7, which I finally managed to get running. 

One of the many problems I had was finding out how to log into the admin panel. I read that the username and password was admin/admin – however that wasn’t working. It took a lot of scouring mailing lists to find that you need to register a new user first at this URL:
http://localhost:5080/admin/register.html – you’ll then need to restart the Red5 server. I’ve yet to see that mentioned in any tutorial or documentation… although I may well be wrong :)

ANT has also been a real pain to set up. The readme for Red5 says to get this installed, and to run “ant server” – after a few hours of battling with this and having a lot of problems with dependencies and environment variables, I finally settled with just running ’start.bat’ from the Start menu. It seems to work, although i’m confused why the instruction to run ant exists.

I won’t even begin to list the problems i’ve had attempting to create a simple ‘hello world’ application. This is no doubt due to my complete lack of experience with Java, but it’s a real shame there’s a lack of well written, up-to-date tutorials on how to get a simple application up and running.

In the end, I’ve managed to create my own Flash app that connects to one of the existing sample Java apps, but it’s far from ideal. At least i’ve got something to show for my efforts though. 

It turns out I could have saved a lot of time by reading Robert Silverton’s blog, where he details pretty much exactly what i’ve gone through.  Doh! :)

A short message to the Red5 developers: You’ve created something that is no doubt absolutely wonderful. There needs to be a little more documentation and tutorials. Please try and help more of us get involved with using it. If there’s anything I can do to help you, please let me know.
Bookmark and Share

BAFTA nomination!

I’ve just had some great news. The Bow Street Runner Flash game that I worked on for Channel 4 earlier this year at Littleloud has been nominated for a Children’s BAFTA!
The competition is pretty tough, but, well, fingers crossed eh! :)

Update: We won!

Bookmark and Share

Bow Street Runner wins Flashforward award!

HOORAY!

I’m very happy to say that the epic Bow Street Runner game we made for Channel 4 has just won a Flashforward award at Flashforward San Francisco 2008 :)

Thanks to everyone involved!

Edit: This is our second Flashforward award :)

Bookmark and Share

Flash 3D: Alternativa3D Engine Launched

The Alternativa3D engine has been launched! The demos on the site are astounding. While Papervision 3D is excellent, these guys really seem to have set the bar in visual terms. I think that competition can only be a good thing, eh guys? :)

I can’t wait to try this engine out, it looks really promising.

Respect to the Russians!

[via drawlogic]

[edit: Simon, a colleague and games journalist writes about this too at ChewingPixels.]

Bookmark and Share

Flash + Papervision 3D + Arduino

In my second little project today, I modified the circuit I built for the Flash etch-a-sketch, by adding another potentiometer and 3 LEDs, each of which represents the voltage of each pot (using pulse-width modulation to ‘dim’ the LED).

Each pot is responsible for either the pitch, yaw, or roll of a cube in PV3D.

Simple stuff that’s been done before! I think I need to think of something a bit more interesting now :D

Flash + Papervision 3D + Arduino

Flash + Papervision 3D + Arduino

Bookmark and Share

Etch-a-sketch using Flash and Arduino

Well, I had nothing much better to do today, so after sorting out my previous problems with Arduino and Flash, I thought i’d connect 2 potentiometers to the Arduino board, and make….. Yezzer-sketch!

Here’s the on-screen result:
Yezzer - sketch. Using Flash + Arduino

The very simple circuit:
Yezzer - sketch. Using Flash + Arduino

Video:

I need to get some better potentiometers, these are pretty rubbish.

Yey for making … stuff! :D

Bookmark and Share

Getting Flash and Arduino talking, and problems with AS3

Over the last year, i’ve heard a lot about Arduino, so I was quite gutted when I missed out on both the Arduino talk at BarcampBrighton2, and also on the Arduino session a few days later at FlashBrighton!
Nevertheless, I had to get an Arduino board and start experimenting. Jo had a few Arduino boards, so kindly dropped one round for me.

For me, the most interesting aspect is using the Arduino in conjunction with Flash, sending and recieiving data betwen the two. I realy like the twitter > flash > arduino > LCD display that Mario made. I found it quite inspirational.

Getting Flash and the Arduino talking is initially very, very easy. It takes no time at all to initially write your first “hello world” app – in this case a blinking LED. After that, I turned my attention to reading the output of a potentiometer, and display that in Flash. Again, this is very easy, espically when people have done it already, and you can copy and paste their code! Thanks Beltran, Brett, and Aral for sharing your code!
In no time I had a potentiometer controlling the brightness of an LED, and the Arduino writing the data to the serial port, which Flash was trace()ing to the output window.

Nothing’s that easy though, right? Indeed. I’m expecting values between 0 and 1023, and specifically in this instance, around 1023. This is what I got:

15:37:53:104 = 102
15:37:53:135 = 3
15:37:54:104 = 1023
15:37:55:119 = 1023
15:37:56:135 = 1023
15:37:57:119 = 102
15:37:57:135 = 3
15:37:58:119 = 1023
15:37:59:135 = 1023
15:38:0:151 = 1023
15:38:1:135 = 10
15:38:1:151 = 23
15:38:2:151 = 1023

How strange. As you can see, occasionally the output is split over more than one line. It also does the same on my laptop.
After a lot of hair-pulling, I’ve made a couple of examples, which you can test if you wish. You’ll need to change the port to the one serproxy (or equivalent) is set up to use.

Arduino code:
[code]
void setup()
{
Serial.begin(9600);
}

void loop()
{
Serial.println("hello");
delay(100);
}
[/code]

Actionscript 3 code:
[code]
import flash.events.*;
import flash.net.Socket;

trace("__AS3 Example__");
var socket:Socket = new Socket("localhost",5335);
socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
function socketDataHandler(event:ProgressEvent):void {
var now = new Date();
trace(now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+":"+now.getMilliseconds()+" = "+socket.readUTFBytes(socket.bytesAvailable));
}
[/code]

Actionscript 2 code:
[code]
trace("__AS2 Example__");
var socket:XMLSocket = new XMLSocket();
socket.connect("localhost",5335);
socket.onData = function (data) {
var now = new Date();
trace(now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+":"+now.getMilliseconds()+" = "+data);
}

[/code]

AS3 Output:

12:10:43:140 = hello

12:10:43:234 = hel
12:10:43:250 = lo

12:10:43:359 = hello

12:10:43:453 = h
12:10:43:453 = ello

12:10:43:562 = hello

AS2 Output:

12:11:25:406 = hello

12:11:25:515 = hello

12:11:25:625 = hello

12:11:25:718 = hello

12:11:25:812 = hello

12:11:25:921 = hello

AS3 has odd output, and AS2 has the expected output. It’s almost as if ProgressEvent.SOCKET_DATA is called too frequently?
I’ve looked at this, which may be a similar problem. Here’s my post on the Arduino forum which I wrote as I experienced the problem.

In the end I found AS3Glue, which “is an ActionScript 3 library that enables communication between Flash/Flex/AIR applications and Arduino boards”. This changes the way in which AS3 and the Arduino communicate, and fortunately solves the problem described above.

If you use AS3glue, you’ll also need to use the Arduino Firmata firmware. The firmware page also briefly mentions:

It turns out that the USB-serial drivers are optimized for fast bulk data transfer, and those optimizations actually wreak havoc with the timing of the messages over the USB-serial.

Perhaps that’s the problem i’ve experienced? If I can, i’d like to find out exactly what’s going on, but for now, as3glue will suffice :)
If you can, please have a test and let me know if you get the same output!

Bookmark and Share