Part 2 - Tech and Engine

On the tech side Y Project offers everything that you expect from an advanced Unreal engine game, and more. Westka are using the latest generation engine and make full use of all the nifty little tools that have been added lately: Extreme high poly environments, dynamic lighting, particle effects, Karma, Matinee, facial animation and lipsynch, ...

BeyondUnreal: How is it working with the Unreal engine? How is the cooperation with Epic Games?

Thomas Schaefer: I’ve known the Epic folks back from the mid 90s, when I was working for CDV. (CDV was the publisher of several of Epic’s games in Germany.) The Epic guys are really cool and it’s good to work with them. When I had to make the final decision which engine to use for Y Project I didn’t have to think a second.

The Unreal Developer Network is the main means of communication between Epic and the various licensees as well as the licensees among each other. Some licensees just use the engine and keep very quiet. Others share their experience with other licensees and give feedback to Epic. Westka is clearly among those licensees who not only use the Unreal engine, but also actively try to improve it and contribute to future development.

BeyondUnreal: Which of the improvements of the engine done lately do you like best?

Westka: We make a lot of use of the new tools that Epic added lately. For example Matinee, which makes creating scripted events and cutscenes a lot easier. Or Karma, which we use for a lot of things in the game. Certainly we use the famous ragdoll effect and adapted it for 4-leg and 6-leg insects. Or for example when you clear a vent by switching on a big fan, then the air blowing away the mutant insects is actually a Karma effect.

'Illustrated Realism' CharacterBeyondUnreal: What polycounts are you using for the models?

Westka: Our main human characters are up to 7500 polys. For example the head of the scienceleader alone is about 2500 polys, which makes sense because the interaction with these characters is an important part of the game, so you want to see the facial gesture when you speak with them. Our insects are anywhere from 3500 for a baby to 15000 polys for a queen.

We got a lot of positive feedback on our characters. They look a bit like a caricature, and this helps to make their gesture even clearer and make their look more unique. We call that "illustrated realism".

BeyondUnreal: Did you use motion capture animation or classic animation?

Westka: Our human characters are all motion capture animated, which makes all the movement look very life-like. Unfortunately we haven’t found insects yet that are big enough to allow us to attach the light bulbs for the motion capturing, so we had to animate the insect monsters the classic way. ;)

Motion Capturing Motion Capturing

On top of that Westka have added some really cool new effects that make the game look even better:

LOD ("level of detail") systems: Westka have come up with several new LOD systems that makes the game a lot more scalable for different hardware. LOD means that the further away you are from an object, the less detail you will see. This saves a lot of processing power.

Westka: We want to provide an amazing visual experience for the players who have the latest hardware with some gorgeous eye candy experience. At the same time we want to make the game playable on a PIII-900 class CPU with a Geforce 2 MX class video card. Our LOD systems will help a lot to improve performance. It works for all types of geometry (beside BSP). It applies to polygon count as well as textures and even effects like bumpmapping (see next paragraph) or particle effects.

Bumpmapping: Westka were the first to integrate bumpmapping with the Unreal engine. This is a technique used to "fake" more geometry detail than there actually is. You can create wrinkles and pores in skin, pleats in clothing or cracks in a wall by applying a bumpmap to a texture. You’ll get a 3-dimensional effect without actually using polygons. This again saves processing power.

Bumpmapping Even better: On top of using the established bumpmapping tech (Nvidia, Dot3, ...) Westka have come up with their own, that looks a lot more realistic for organic materials, especially human skin. As you may have noticed in screenshots of ... for example ... Doom 3, the standard bumpmapping makes skin look unnatural, a bit like rubber or plastic. Westka successfully managed to avoid this effect. Click the image and see for yourself.

Note: Caution; Large file size (1MB)! Lower res version here. Despite the large size the screenshot does not show the full effect, since the quality suffered a lot in the BMP to GIF conversion.

More realistic dynamic lighting and shadows: Lately a number of games have featured dynamic shadows. But they all have flaws: The shadows have a hard edges, they are not geometrically correct, and they have problems handling multiple light sources. In reality shadows have soft edges and the shadow gets distorted when an object is close to the light source. Westka managed to get this effect realistically in the game.

Dynamic Shadows Thomas Schaefer showed me a room with a pendulum (actually a boxing punching ball) and multiple light sources. As he punched the pendulum and it was swinging around it casted multiple soft edge shadows. Very impressive!

Westka: The tricky part about dynamic shadows is that you have to limit the number of light sources that you consider. A typical room in Y Project has dozens of lights, but you can only use some few that are near and bright, otherwise it hurts performance too much. But also you can’t simply "switch" the shadows from some light sources on and off, because that results in weird visual effect. We’ve found a way to make them "fade" in and out that we are very pleased with. It still needs performance tweaking, but we are on the right way.

Dynamic Water SurfaceMore realistic water surfaces: In UT water surfaces were just a texture. Often just plain flat. Or if it had waves, those waves were not affected by somebody jumping in. Westka showed me that all water surfaces are actually screw-up-able(tm), this means when an object hits the water surface it will cause realistic waves. And if there is an object moving on the other side you will also see it moving in the reflection on the water surface. It’s not a static cubemap effect.But which type of effect (static/dynamic) you will see depends on the speed of your hardware. Even more: Westka showed me a map where you could activate a pump and pump a pond empty, and while the water level was going down you could still cause waves by firing a rocket into the water.

New AI system: Not necessarily an improvement; rather an adaptation due to the fact that Y Project is different from most other Unreal engine games.

Westka: The AI system was one of the first things we had to scrap about the standard Unreal engine, because the standard system simply doesn’t suit for our type of game. Many of our insects have the freedom of 3-dimensional movement. Flies should fly and spiders should crawl up walls and ceilings. This is currently under development and we are very much looking forward to see it finally running.

Furthermore our AI system has to pay respect to the fact that our insects vary enormously in size. A 40 ft giant bug will get stuck all the time if it tries to follow a path that is made for a 3 ft baby spider. (Yes, 3 ft is what we call "baby size". *grins) UT doesn’t have this problem because all models fit into a standard hitbox.

We are also trying to make the insects work as a team and make them communicate. They even have a kind of "language" that the player can learn. If he pays attention he will recognize different noises for a warning, a call for reinforcement, retreat or attack, … after a while and can adapt his strategy.

Seamless map transition: Hopefully you won’t even notice the loading of maps in Y Project, so the whole game will be one constant flow.

Westka: We are still struggling with some problems, so no promises that we’ll really have this in the final version. For example if you save the game status while at the same time a new map section is being loaded in the background that can cause weird effects.

UnrealEd modifications and additions:

Westka have made a number of modifications to the level editor too to adapt it to the special requirements of Y Project. For example to make a map slightly different every time you pass through the same area of the city Westka added the concept of "layers".

This pump station has moving parts!Westka: Imagine you’re in one area of the city, but the electricity is dead, so nothing is working. You move to another area to restore the power supply, then you return to the first area. Suddenly all the lights are on and various machinery is running and moving. One day later you return to the area once more to find that it has meanwhile been invaded by the mutant insects, and most of the equipment is destroyed and there is lots of scrap laying around and fire and smoke everywhere. With our concepts of layers it is possible to store all the necessary information for this in one map file, instead of making 3 versions of the same map.

Furthermore Westka have broken down the concept of prefabs to a much smaller level. Prefabs are little pieces of a map made in a 3D editor like Maya, 3Dmax or similar, which you import into UnrealEd to build the map out of these little pieces. The prefabs as other Licensees will provide them with their games will be rather large pieces, like a complete piece of a tunnel, a door, an elevator or a complete building. Westka use much smaller pieces which they call "sets". They built huge libraries of set pieces, which are put together to build prefabs, which are then put together to build a whole map.

And even better: All these set libraries as well as the layer system will be available to community mappers to make mods for Y Project.

Nice amount of detail here.Westka: Mapping has become a lot more complex with the enormous capabilities of the new Unreal engine. Community mappers will have to get used to a whole new style of working compared to Unreal Tournament. I’m really looking forward to see what they are able to come up with. And our set system should make it a lot easier for them to create cool looking maps.

BeyondUnreal: How do your own mappers work?

Westka: Since map-making has become so much more complex a map can’t be made by a single person any more. We’ve got a whole team of experts working on one location. A "location team" consists of an "UnrealEd man" (the mapper), a "Max man" (a prefab/set designer), a sound man, a texture artist and a programmer for scripted events. They really work together in a fixed team and create the location together. We’ve got 4 such teams.