But this year Adobe have ruined our fun by blatantly covering speakers full expenses including flights and hotel!
Seriously though I think this is a major improvement. It sometimes feels like I only complain about Adobe and so this is a good opportunity to prove that I can be positive about them sometimes! I think it’s pretty much down to the efforts of Ted Patrick who I’m fairly certain has been beavering away in the background trying to make this happen.
I have no doubt that it’ll encourage speakers who have exciting work to share with the community and it sends a good message out to speakers that Adobe appreciate their contribution to their conference.
Of course the irony is that they haven’t invited me to speak this year. I won’t hold it against them.
You may have noticed that I’ve been a little quieter than usual over the past few months. And for that, I’m sorry. But there’s a very good reason for that! Me and the my very talented colleagues at Plug-in Media have been hugely busy working on the biggest and most ambitious Papervision3D project we’ve ever attempted; Big and Small.
Big and Small is a comedy TV show for kids (3 to 6) about a big character (called Big) and a small character (called Small) who, despite their differences, are the very best of friends.
There are so many details that I want to share, I’m not sure where to start! There’s the close collaboration with the BBC and Kindle (the TV show’s production company). And then there’s the studio sessions with Lenny Henry (famous UK comedian) who provided the voices, and the recording of Dom’s (Plug-in’s creative director) band for the music game. Not to mention all the incredible artists, coders and producers at Plug-in who all did an amazing job of bringing it all together.
But as the head geek at Plug-in I’ll concentrate on the technology.
The first hurdle was to recreate the Big and Small house in Papervision3D; tricky, given the cluttered, busy and warm look that Dom came up with (our creative director). We spent about a month just getting the model for the living room to look right.
Many things in the living room are point sprites; a 2D image of an object that looks the same no matter which way you look at it (like the flowers). We built our own PointSprite object that uses Papervision particles to render this.
Big looks 3D and changes as you move the camera around, but he’s also a 2D point sprite. Our animator Ben rendered him on the timeline spinning around, so we work out the angle of the camera and jump to the relevant frame.
We really wanted to make sure that any 2D graphics seamlessly fit in with the 3D world, not only stylistically but also technically. We created custom 3D mesh animation to make the bed spring up and down in reaction to a 2D Small jumping up and down.
There are many clever effects that took ages to program, and although you wouldn’t necessarily notice them, we like to think they add a certain quality to the project :
The mobile in the bedroom with a custom built verlet physics system:
A custom mesh animation system for the radio in the living room, allowing our designers to animate in 2D and apply it to a 3D mesh in real time.
The mirror in the bathroom with realtime reflections.
The toothpaste particles that collide with the walls and furniture.
The lighting that changes in the bedroom when the blind is closed.
It was a massive project, and phase one alone was over 200 days of coding, not to mention the artwork, 3D modelling, sound design and music.
And brilliantly, the BBC were so pleased that they’ve also commissioned phase 2 and we’re well underway with it. Phase 1 brought you into the house, but phase 2 takes you out into the garden, with magical plants, a reflective pond, and a Doom-style mysterious woods to explore!
You can see a little more in this (very rough cut) of a behind the scenes video, exploring the less geeky aspects of the project, including collaboration, concepting, and user testing.
It’s been a brilliant experience, Rebecca at the BBC has been a joy to work with, and it’s been really exciting to stretch what is possible in Flash and Papervision3D. I’ll let you know when phase 2 is released.
And I really would like to give major kudos to everyone on the Plug-in team that worked on this, I’m very proud to work with such talented people :
Juliet Tzabar : Production Director
Dominic Minns : Creative Director
Alan Owen : Senior programmer
Jack Lang : Programmer
Sarah Bird : 3D Modeller
Ben Mantle : Artist / Animator
Cath Lloyd : Animator (lip synching)
Lee Needham-Park : Project Manager
Kate Fowler : Sound design / production assistant
Kirsty, Ellie, Bruce (and Dom!) : Musicians
(Well done guys, you all rock!) And this project will be finished in a few weeks so we’ll be open for more projects! Can you use some Plug-in magic for your project? Need some Papervision3D expertise? Drop me a mail. seb@pluginmedia.net.
PS There’s an easter egg somewhere in the Big and Small website… can you find it?
I’m always on the lookout for ways to speed up our project work and also some of the inner workings of Papervision3D, and I must admit, sometimes it reaches fairly obsessive levels, bordering on unhealthy. In fact sometimes the minor optimisations are so insignificant, it can just be an exercise in problem solving. Which let’s face it, we all do from time to time just for fun, right?
The latest target for my obsessive compulsive attention is the triangle / rectangle intersection check that happens just before rendering. It’s way after any of the clever 3D stuff, we’re just literally looking at whether the 2D triangle we’re about to draw is within the rectangle that represents our screen.
The current check is a simple bounding rectangle check. The bounding rectangle for the triangle is calculated and we use a simple intersect check for the two rectangles. Which is simple and fast. But it was bothering me that huge offscreen triangles were not getting culled because their bounding rectangle overlapped with the viewport rectangle.
So how do you accurately check that a triangle is intersecting a rectangle? Here’s one way : Read the rest of this entry »
Remember Lunar Lander? One of the very first arcade games ever? Well, actually, if I’m honest I don’t really remember it when it came out in 1979 (I was only 7 at the time), but I do think it’s a very, very cool game.
For starters, the display didn’t use scan lines like a normal telly, instead, the cathode ray moves around to make shapes, the same way that laseriums used to make pictures with lasers. (If you don’t remember the 80s you’ll probably have no idea what I’m talking about).
Secondly, it’s actually very, very difficult. So you feel a real sense of achievement when you actually land the thing safely! I was actually lucky enough to see an original vector based arcade cabinet, and the thing that immediately strikes you is how bright the screen is, and how beautiful those glowing lines are.
Sadly, Lunar Lander had a fairly limited life when it came out. It was quickly superceded by perhaps the most famous vector game ever, Asteroids. In fact most of the early Lunar Landers had their insides unceremoniously ripped out and were converted to Asteroids cabinets, so they’re pretty rare now.
A few years ago, as a tribute to the early pioneers of arcade gaming, I decided to recreate Lunar Lander in Flash, with painstaking attention to detail and accuracy! And what did I do to celebrate this great achievement? Did I shout about it from the rooftops? Did I post it on the internet for everyone to share and enjoy? Did I write a blog post about it? Well actually no, I just sat on it and it’s been laying there burning a hole on my hard drive all this time.
My flash Lunar Lander
But don’t worry, you can now play this online here to your heart’s content. Use left and right arrows, and up arrow to thrust. It’ll take a little effort to get used to, but that’s half the joy.
But that’s not what this post is about. A local Brighton geek group, £5App decided to run a 5KApp competition, where you could submit any program that was 5120 bytes or less. And you were allowed to use Flash, so I got going to see how if I could make a Lunar Lander clone within the file size limit.
I’d worked out how to use Perlin noise to create a 2D landscape and got pretty much all of the physics and collision detection working, but I’d only used about 3K.
So to make it a bit more interesting, I decided to add 3D! To create the landscape I used the same Perlin noise image to store all the data, and drew the landscape in strips from back to front, with a very basic 3D to 2D formula, and before I knew it I had 3D Lunar Lander!
Lunar Lander 3D in only 5K
My final submission was 5118 bytes, only 2 bytes under the limit! Interestingly, swfs seem to fluctuate by a few bytes every time you publish them. (My theory is that it embeds the time and date?). The one I’ve posted here on the site is exactly 5120 bytes!
Just like the original, it’s very, very difficult, use the arrow keys to move left, right, forward and back, and the space bar thrusts. Look out for flat landing pads of 4 lines, and head towards them. You need to go in really close, and you’ll know you’re over it as the land turns white when you’re directly over it. And you need to land right in the middle of the 4 lines, and very, very gently! See the playthrough video if you need more help.
Despite some stiff competition from the Brighton geek community, this was voted the winner! And the prize was exactly 5120 pence. So I went and bought everyone a drink with it.
It’s actually been really fun, and it’s given me a lot of ideas for future projects. I’ll post up the source with a bit of explanation soon, but for now you can play the game here.
Recent Comments