Archive for 'Games'

Quantum Code Nominated for a Webby

Another (potential) success for Euro & Sony’s Quantum Code campaign – nominated for a Webby in the Integrated Mobile Experience category.

You can choose your pick for best of the Net by voting at the Webby People’s Voice site.

Euro RSCG & Sony Win Two AIMIA Awards

Euro AIMIA Awards

Hooray! Not much more to add to my previous post on the nominations, except to reiterate – well done to everyone involved at Euro and Sony.

It was the first time I’ve actually attended an AIMIA Awards night and I had a great time – caught up with some old friends, and met a few new acquaintances as well. Woke up with a spectacular hangover the next morning too.

Congratulations also to all the other award winners.

Update: Just added a few photos from the night.

Euro & Michelle/Sony with the first award

On stage receiving the second award

Second award with the presenter

Euro & Michelle

#tweetcoding Part 5 – Snake, Cube, Jellycube & Headless Flasher

My next #tweetcoding entry is Snake, a game which needs no introduction. No game here unfortuntely – just the control mechanism, but I believe this was the first entry to use keyboard input. Use W, A, S and D to control the snake… although due to the code I’ve used which interprets keyboard commands into horizontal and vertical velocities, other keys will also affect movement in unexpected ways. Here’s how it works:

The key codes for W and S (up and down) are 87 and 83, and the key codes for A and D (left and right) are 65 and 68. When a key is pressed, first I check if it is up/down, or left/right by testing whether its keycode is above 80 or not. If below, I subtract 66.5 from the key code, leaving either -1.5 or 1.5, which I use as the X velocity. If above 80, I subtract 85, leaving either -2 or 2, then multiply by .75 to ensure that the X and Y velocities match.

Of course, this means that other keys will also affect either the X or Y velocity at unpredictable speeds.

Snake

if(!i++){c=q=85;stage.addEventListener("keyDown",k)}function k(e){c=e.keyCode}v=h=0;c>80?v=(c-q)*.75:h=c-66.5;ls(9,i);lt(q-(x-=h),q-(y+=v))

Number 12 – my attempt at creating a shaded 3D cube cheats on two levels – 1: it’s not correct perspective 3D but isometric 3D, and 2: the “shading” is achieved with simple parallel lines which converge to mimic a shading effect as each plane turns away from the camera. The isometric effect is simple to produce – just scale the parent sprite/clip (in this case stage/root) by around 50%, and then rotate the children.

Cube

scaleY=.6;g.clear();x=275;y=130;i-=.03;for(q=x;q-=5;){j=m.cos(i)*y;k=s(i)*y;mt(k,j+q);ls(3);lt(-j,k+q);lt(-k,q-j);ls(1);lt(j,q-k);lt(k,j+q)}

Jellycube was a natural progression from my previous entry, but also inspired by Human Target by Melon Dezign. Melon’s style was always a big inspiration for my demogroup Reality, particularly with their de-emphasis on cutting-edge effects in favour of design and humour. However, once again I wasn’t able to achieve my desired outcome – instead of squashing & stretching the cube I was restricted to rotation only.

Jellycube

scaleY=.4;x=275;for(j=y=160;j-=8;){if(!o[j]){o[j]=addChild(new Bitmap(new BitmapData(y,y,1,8e8)));o[j].y=j*2}o[j].rotation=s((j+i++)/999)*x}

My 14th, and final entry is Headless Flasher, an attempt at creating a stick figure running across the screen. This one was originally inspired by my cat Lucy, but it became pretty obvious that the 140 character limit wouldn’t allow four legs and a tail, so I switched over to a human stick figure. Unfortunately there was no room to add code for his head (or blood spurting out of his neck for that matter).

Headless Flasher

l=lt;scaleX=scaleY=-20;g.clear();j=s(i-=.2);k=s(i+1);x=x%650+3;y=(50+k)*6;ls(1);mt(2+j,k);l(1,4);l(2-j,-k);mt(1,4);l(0,7);l(1+j,5);l(j,4-j)

Papervision3D Grass/Fur Effect

To me, “Shadow of the Colossus” represents the pinnacle of PlayStation 2 games. Aside from the fact that it’s one of the most artistic games I’ve ever played, it’s also one of the most technically brilliant games on the platform, pushing the PS2 to its limits with real-time motion blur, HDR rendering, a LOD landscape system, IK & physics system, self-shadowing and, of course, the impressive fur shading. However, the PS2 can’t handle all of those things done “properly”, so some were achieved with ingenious tricks and shortcuts, all covered in this inspiring article on The Making of “Shadow of the Colossus”.

Since reading that article I’ve always wanted to recreate the fur effect, and have now done so using Papervision3D. As I was hoping to use it on a recent project, instead of fur I decided to simulate grass:

Papervision Grass Effect

The effect is achieved by drawing cross-sections of the fur/grass on a set of parallel layers – in this case I have 7 layers which, using 512×512 alpha-transparent textures with 4×4 segments, is pushing the limits of Flash/PV3D. However, because we’re only ever dealing with 7 textures, it can handle potentially infinite blades of grass – the example above has 3000. The grass is generated in real-time – I build the layers up by starting each blade of grass with a certain size & direction, and growing it out on subsequent layers. The effect looks fine when the camera is close to perpendicular or the normal of the planes, but things start to fall apart when the planes and camera approach parallel.

The grass highlights are created with simple gradients, and I’ve also rendered basic shadows to the dirt layer (although they’re barely noticeable with such dense grass). Each blade of grass has a random colour, weighted heavily towards green but straying towards blue/brown in rare cases. Creating the effect of the grass moving in the wind is a simple matter of moving each plane along the X & Z axis, with the motion increasing based on the distance from the base layer.

Being a huge fan of both Ico and SOTC, I’m really looking forward to seeing the next game from Fumito Ueda and Team ICO, and what they can do with the PS3 hardware.

Euro’s “Quantum Code” Campaign Nominated for 5 AIMIAs

The Quantum Code

Euro RSCG Australia has been nominated for five AIMIA awards for our work on “The Quantum Code” – the Quantum of Solace promotion for Sony. We entered the Bond promotion in the following five categories, and have been short-listed in all five:

  • Best Advertising or Marketing
  • Best Cross-Platform Content or Content Integration with an Offline Advertising Campaign
  • Mobile Advertising or Marketing
  • Best Use of Social Media
  • Best Word of Mouth, Peer-to-peer or viral

The campaign was a cross-platform, cross-media alternate reality game (ARG) which utilised the web, online & mobile video, QR codes, social media sites (YouTube, Facebook), print and real-world locations. More info on Gizmodo and Euro’s website.

Clue Confirmer

All up, there were 51 people who contributed towards the campaign across the agency. My involvement on the project was to manage development of all web & mobile content, and to develop the “Clue Confirmer” Flex/AIR application which was running in-store at the Sony Centre in Sydney, and allowed players to check their progress in the game.

I also led development of the 007 Bond Adventures site which the campaign promoted. However, credit must be shared with the rest of the UX Team, who worked tirelessly until the wee hours of the morning for several days in order to get everything over the line. Considering that this was the UX Team’s first exposure to Flex, it was a real accomplishment. Fingers crossed for the 13th March!