Serious multiplayer 3D games using Unity, Flash and Red5 - Presentation video

The video registration of the Adobe Usergroup Meeting #12 about games is made available on the website of the Dutch Adobe Usergroup. This is including my presentation about serious multiplayer 3D games using Unity, Flash and Red5.

I've receive quite some feedback, including some international feedback of people who are disappointed the presentation is in Dutch and they can't understand it. I'd love to get invited and do this presentation for an international audience, so ping me a message when you have an opportunity (hint: I'll probably travel to California in September :-) ).

Regarding the presentation, also make sure you'll watch the following presentations:

Kudos to the Adobe Usergroup for making these videos available!

Serious multiplayer 3D games using Unity, Flash and Red5 - Presentation slides

Today's meetup of the Dutch Adobe Usergroup has been a very successful day. Not only because I did one of the presentations. The other presentations where very interesting as well. It was very interesting to hear experiences from other people that are involved with game development. The line-up was top of the notch, with speakers like Senne de Jong from Little Chicken Game Company, Tim Hudson and Sander Wichers from Virtual FairGround, Quinten Beek from MediaMonks Games, Daniël van Gils from Kamerblauwlicht and more. Check out the Adobe Usergroup website for more details.

Couldn't make it to this meeting? Don't worry, all sessions will be available on the Adobe Usergroup website soon (I'll dedicate a new post on this once it is available).

I've been asked to do a presentation about what I'm doing with Unity, Flash and Red5. Hopefully it gave some new insights to at least a few of the 250 attendees. I really liked talking about my recent passions and want to thank the Adobe Usergroup for inviting!

I've just posted my presentation slides to SlideShare, while waiting for the session videos that will become available soon:

Speaking at Dutch Adobe Usergroup Meeting

I've just been confirmed as one of the speakers for the next Adobe Usergroup meeting. This will take place at 13 may in Amsterdam.

The theme for this meeting is "Games" in its broadest definition. Although the name of the usergroup implies otherwise, it is technology and platform-agnostic. This gives me the chance to talk about "Serious multiplayer 3D games using Unity, Flash and Red5". I'll talk about how we combined the best from the Flash world with Unity3D as the fundamentals for serious 3D browser-based games. Flash is used for everything that's related to the interface and requires usability. Unity3D is used to display everything that is 3D. Javascript let both elements on the page communicate with each other. Red5 is used to add multiplayer functionality to Unity3D.

The Adobe User Group is an assocation in the Netherlands aimed at creative professionals: the pixelpushers and the code-warriors, the projectmanagers and the art directors. People who are hands-on and share a passion in delivering creative work. Meetings are more like regular mini-conferences, being held 6 times a year and attract 200-250 people on average. Each meeting/presentation will be recorded and made available as an on demand streaming video on their website. So for those who can't make it to the meeting there's a chance to watch the video afterwards. However, as it is the Dutch usergroup meeting, presentations are mostly in Dutch. So will be mine.

Did I already mentioned the meetings are free!? For more information about other speakers, the usergroup in general and sign-up, check out their website: http://www.adobeusergroup.nl/site/list_messages/204

Anyway, I'm quite excited about presenting where I've been working on for quite a while. I hope to see some of you there!

Hot news: Unity3D 2.5 released

Unity3D 2.5

Unity3D 2.5 has been released today! Now the release is finally out, Windows users can join the Unity3D pleasure as well. Check out their website for the full feature list: http://unity3d.com/unity/whats-new/unity-2.5 It's a strong advice from me to check Unity3D out yourself if you haven't done so already.

In case you have already a Unity license, you'll get a free upgrade from Unity3D. Since it is a dot release, updates are free for you to use.

Congratulations everybody at Unity, I know you've been pushing yourselves to the limits to get the so far most important release out.

3D Web meeting after FITC Amsterdam

On Wednesday the 25th there will be a 3D web meeting at the Waag in Amsterdam. This will be the day after FITC Amsterdam ends and this is no co-incidence. Members from as well the Flash3D and Unity3D community will join this meeting and discuss about questions like: “What should the 3D Web look like?”, “How could we create a 3D version of Wordpress?”, “What should the 3D Web be capable of doing?” and “What roles can Flash 3D and Unity 3D play in Web 3D development?”.

Robert Shepherd from Eduverse invited me to join this event. It's awesome people are organising such events. Hopefully he'll get an interesting group of people together. Since it's the day after FITC, I don't think that should be much of a problem? A bigger problem might be the space, which is limited to 25 people. So sign up ASAP!

For more details and sign up, go to: http://www.eduverse.org/index.php/2009/02/13/3d-web-meeting/

New Skoda Octavia “Remote Controller” (RC) campaign

octavia-remote-controller.jpg
Today was a big day, since we had to deliver the technical part of a campaign we're doing in collabration with Achtung!. Skoda has launched a new Octavia recently, and this off course needs to have a spectacular campaign. The idea Achtung! had was to make a website where you see streaming video of the new Octavia parked somewhere on the street, to get attention from people passing by (and have a lot of fun off course!), the idea was that you can control the car remotely on the website. Like honking the horn, using the wipers or start a cool light sequence. Each action comes in combination with a sound, played by speakers which are hidden under the hood. Once you're finished controlling the car you can send your minute of fame to all of your friends!
Have look at this live at the website, or have a look at this video which I've found on youtube:

We were asked to get the technical part done and make a system for Achtung! so they can just call some methods on the car fromthe Flash front-end which they've build. This meant that we had to make the following:

  • Installing laptops inside the car and set up Flash streams over UMTS
  • Installing a laptop in an other car and start Flash streams using an outside camera and UMTS
  • Changing the car, so we can give the lights/horn/wipers power once the vistor on the website tells it to.
  • Placing speakers somewhere under the hood, powerful enough to make as much noise as the horn, and small enough to be unnoticeable and portable.
  • Building a queue manager in order to give the longest waiting person in line control over the car.
  • Recording video's on the server, to watch back your minute of fame while playing with the car.

Setting up the streams was all straight forward, since we're experienced on mobile streaming. However, setting up something that controls the car is a whole different story. Lucky enough we've worked with Phidgets in the past, which are small electronics you can attach by USB on your pc and can be accessed from the Flash player (and a lot of other players/program languages). So basically, we can say in Flash "switch power on on port 1" and "switch power off on port 6" and this will cause in switching 5 volts of power on different ports. People with some electronic experience know that this can be used for relays switching something on and off.
Since this can be done from Flash, we can let Flash communicate with a RTMP server as well (in our case my favorite one for applications, Red5!). Let the visitor communicate with that same red5 server and you're there.
To simplify this, you can say that it works as follows:

  • The user clicks on button to put the lights on.
  • Flash player calls a function on the red5 server "turnAllLightsOn()"
  • Server invokes this call on the connection of the car
  • Flash application inside the car receives "turnAllLightsOn()"
  • Flash application switches power on port 1
  • Relays detects power and will turn the lights on.

(more...)

BMW interactive testdrive campaign video

Once in a while I receive a request for more information about the BMW campaign I was involved in. The campaign is over and the site is not operational anymore, which makes it hard to get an impression of what was going on. Lucky enough there's been made a video of it, which I've uploaded to Vimeo.

AS3 clickTag case and popup blocker fix

Last week we've been struggling to get our AS3 banners ready for publication.
One of the more common problems anyway, is that some ad management systems requiress clickTag (lowercase "ag") and others requires clickTAG (uppercase "AG") in order to load the right URL. This is very annoying, especially when you have to make 2 versions for different publishers and you need to do a text change... When you have a big capaign with let's say 5 banner formats, and 3 banner variants, you already have to make 15 different banners. In case you need to deliver banners with a clickTag and a clickTAG, you'll end up with 30 banners. In case you've ever build banners yourself, you see my point. It's soo easy to lose the overview when you have so many files looking almost identical to each other.

A new problem with banner build using AS3, is that some browsers will block the navigateToURL requests. A trick for this is let javascript open the URL instead of actionscript.

Both of these things have been recently an issue, so that's why I decided this weekend to wrap this all up in a clickTag class, which is universal for all different case combinations of the word clickTag. Beside that, it will open URL's correctly without a browser which is blocking it. (at least, as far a I know).

Instead of adding a button on the stage, set up all the event listeners etc, you can now use:

 
var clickTag:ClickTag = new ClickTag(300,250);
clickTag.enableClickTag();
addChildAt(clickTag,0);

It's just as simple as that. In case you want a custom shaped button, you need to assign it to clickTag by using "clickTag.setButton(btn);".

In order to open the links correctly, you need to make sure that the parameter AllowScriptAccess is set to "always":

<param name="AllowScriptAccess" value="always">

Download this class and it's examples in Flash and Flex here!

First Unity3D usergroup meeting report

Last Thursday evening the first Dutch Unity3D usegroupmeeting took place and as far as I know it, it was the first Unity3D usergoup meeting ever worldwide. We received 20 signups and about 15 people showed up. This was a small group of very enthousiastic people. Some of them where new to Unity and others where very experienced.

We started off with Lucas Meijer, his session was planned to go about realtime 3D basics. However he had a small surprise in mind for us coming directly from the Unity3D headquarters in Copenhagen: Sneak peaks of Unity3D 2.5! Including showing us the Windows version! The guys at Unity3D have done an even more awesome job with this upcoming version. I personally can't wait till it's out!

Next on stage was Stijn Raaijmakers and myself, presenting about our work to get RTMP support in Unity3D. This was quite a technical sessions, but I've heard some possitive feedback about this afterwards. People seem to be really interested in the combination of Unity3D and RTMP/Red5. The session ended with a multiplayer "Tropical Island" (the default Unity3D project once you install it), in combination with a top view map build in flash, to see the location of each user on the island.

After the break Vincent Verweij started with his session about Unity3D iPhone. It was very interesting to see some Unity3D work on the iPhone and hear about Vincent's expierence with development. And beside that his experience with Apple in general.

Bas Smit did the last talk of the evening about building custom shaders for Unity3D 2.5 using ShaderLab. He did a good job explaining why you somethimes want to do this and how you can achieve it.

We planned that each presentation should fit in 30 minutes, but we found out this was way to short (Note to self: next time, shedule each presentation for an hour). So we where done with the presentations around 11PM and it was time to talk with each other in person. I heard nothing but possitve reactions about this meeting, so it's not the question if there will be a next meeting, it's the question when it will take place...

Read more to see some pictures made during the evening, to get an impression about what was going on.

(more...)

Multiplayer Unity3D using Red5 presentation slides

I've just uploaded my presentation which I've held at the Dutch Unity3D usergroup meeting last Thursday. Which is unfortunately Dutch only. ( Invite me to come over and talk about this abroad and I'll make an English version available ;-) )