Brawl Entry – Guile’s Stage

Me and Andre Wahlgren‘s entry into Polycount’s Brawl competition.
We decided to create a gritty, modern version of Guile’s Stage from the early Street Fighter games. I also wanted to make this project a testcase to get to know all the new DirectX11 features in the latest UDK release, taking inspiration from Epic’s Samaritan demo.

I created the jetplane and did most of the UDK setup such as lighting, materials and effects. Some textures are also mine, like the floor decals. Andre created most of the models and textures. If it wasn’t for him, I’d have just a plane and a bunch of lensflares and particle effects!

Beauty Shots


The following shot shows an overview of the level. It was created with only simple-left right camera movement in mind, ensuring there are many different back ground elements to add to the whole parallax effect

Lighting Setup

Most of the lighting was setup and tweaked by me. Since a night scene like this would have only little benefit from Lightmass baking, I decided to switch to fully dynamic lighting. The scene is set up to make use of the new DirectX11 deferred rendering system.

I also set up reflections and lensflares sources for the important lights.


I set up master materials for almost all objects.

For the vehicles I created a material that blends between wet and dry states based on surface normals: upward pointing faces have higher spec and gloss as well as a darker color.

The ground is set up to make the best use possible of the DX11 Image Reflections. It blends between wet concrete and puddles based on a mask texture. The mask texture uses absolute X,Y world coordinates so that it is mapped independent of object position, orientation and even UV mapping. This makes syncing with particles much easier.


I created a few particle effects. One of them are the smoke plumes for the take-off warning flares. I created these because I felt it added more life to the scene.

They use lit translucent materials with a normalmap to look more volumetric.

Choppy motion is due to recording/playback issues.

I also created a few particle systems and lensflares for the jet engine boost flame. The Boost flames are a simplified and optimized version of the ones I created for the GZ81 project. There’s a mesh with an animated shader, the rest are sprite emitters.

I’m most proud of the ripple effect the raindrops leave in the puddles. I use the same worldspace XY coordinates to map the puddle mask texture onto the ripple particles, ensuring they only appear in the puddles and not on the concrete, as you can see in the GIF.

The rest of the rain effects is mostly based on Epic’s rain systems, I just remade them.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply