Saturday, May 4, 2013

Demo progress

How about a nice cup of... progress updates. Last months some people left, some I kicked out myself as they stopped emailing suddenly (is there a medical explanation for that?), and others joined. 99% of them is busy with other stuff, and me myself is kinda occupied with work lately as well. A prototype harvesting machine with complete new touchscreen and controllers has to be finished within the next few months. And at the same time this new system will be deployed on other machines as well, plus there is the usual extra load of work that comes with the spring & summer as the harvesting season, and thus the service, special options & angry farmers, begins. To compensate the extra desk-chair hours, I'm also sporting a bit more last year to prevent dying from a heart-attack. So all in all, less hours available for Tower22, simple as that. No worries though, it won't be summer forever, certainly not in Holland, and when the new software works well, things will get back to normal.

Yet, we slowly march forward to a next Demo release. Not near as fast as it should, but at least something is happening. I won’t tell you all the details as it would spoil things, but at least I can show you a picture of my girlfriend here:

Not too shabby ey mate? At least not if you compare it with the first looks of that same corridor. Until recently, the Demo corridor looked well, like shit. And as I wrote earlier in the whole “Radar Station making off” , I had my doubts if this corridor would ever look good. By now I should know that only with a fair amount of tweaking, using the right textures & colors, placing the light sources smartly, and delivering a *complete* scene, will look satisfying. No matter that kind of super-shaders you have, the environment won’t look good if it fails at any of those points. Yet as a programmer, I might be fooled a bit with the illusion that I’m doing something terribly wrong when each time I load a new environment or object into the game for the first time. After hours of blood, sweat and tears, you’ll get something like this:

That’s not very motivating for the artist. But, cheer up, the other picture above shows that things will start looking good sooner or later. What we did for this particular corridor lately? Well, let’s sum up:

• Textures
Of course stupid. The first time I loaded the corridor mesh, we didn’t have any texture that would fit with the original conceptual drawing. Most textures made so far, were from an industrial type, related to the Radar Station demo. So for starters, we had to make parquet wood, a red runner carpet, wall panels, and the upper walls / ceiling.

That on itself isn’t enough. If you look at the red runner for example, you’ll see it has a painfully sharp edge that makes the carpet look out of place somehow. The lack of proper Anti-Aliasing in T22 makes it even worse, though that’s another story. Anyway, we needed more variation on the textures so we are making Decals (cracks, peeled of walls, rotten leafs under the plant, switches, cables, …). And, we make use of Entropy in most textures nowadays. This basically comes down on mixing texture variants by Vertex Painting. The worn carpet at the edges in the upper shot is the result of mixing in a variant. Same thing for the darker ceiling texture.

• Improved bloom & lensflares
The atmosphere in this corridor has to be “sleepy”, “warm”, and “gloomy”. Earlier shots were too dark at my taste. The original drawing showed a much brighter room though, and I liked that. But as brightness increases, graphical shortcomings, emptiness, and errors will become more visible too (so I actually use darkness to mask things). One of those errors was the crappy bloom. Either it was non-existing, or too much. Now a more subtle blur has been used. And to improve the effect without needing extraordinary blooms, lens-flares have been added lately. They can work on any bright spot on the screen, not necessarily lightsources only.

The original sketch by Pablo. Different corridor actually, but same style.

• Lightsources
Sounds stupid, but yes, you will need to show somehow where the light is coming from. If you place a light in your scene, but without having an actual model of a bulb, sun, projector, chandelier, or whatever that can emit light, it will look fake. So we made the chandelier (no flame sprites yet) and a smaller wall-lamp.

Then an underestimated step comes, placing the lights properly. Where do you want your lights? Usually people put them in logical way so that the entire environments catches light. But for games, this isn’t always optimal. Logical lighting equals boring lighting, as the entire scene receives the same amount of light more or less, leading to low contrasts and a bland taste. Breaking lights to create a darker spot is therefore an often used trick (plus it helps the performance as well, less lights = faster rendering). But looking at the drawing again, I realized that I needed this “blandness” for this particular “sleepy” look. Just putting lights at random points, without symmetry, would look strange.

• Volumetric effects
Another keyword was “gloomy” though. Yes, it is a horror game. So how the heck can you make things look scary with the lights on? Well, with some magical tweaking of the colors. And who says the lights will always stay on? Game engines worked so damn hard to make realtime, dynamic lighting last 10 years, so make use of it!

To add filthy warmth, I made volumetric dust fields. Right now they are too thick at my taste, but otherwise it gets a bit hard to see them in a static screenshot. This is not just some little particles flying under a lamp source. We actually raytrace each pixel on the screen to measure the fog density + received light a ray traveled through. This allows cool volumetric shadows, and yes, it’s a slow GPU eating effect.

• Programming
Busy with AI as described in the earlier posts, and this demo will show you some realtime GI. Or actually not, if you implement GI properly it shouldn’t be really noticeable except when doing some extreme wild things with the lights. But as you can see in the screenshots, the corridor ceilings aren’t black even though no lamp is directly shining on them. That, my friend, is GI doing its magic.

I won’t go in detail about it, and this effect is neither 100% done nor perfect, but it seems to be cool to prove you can handle GI nowadays, so here it is.

• More objects
With a single object you can’t win the war. If you place a pretty girl between pigs, she will get dirty and ugly eventually as well. Same for objects. A single nice looking plant won’t cheer up the environment. In fact, it looks weird if the rest remains empty and undetailed. So we added little junk around the plant, made (fake) doors, a heater, and attached some paintings on the wall. As with real life interior design, the whole composition of objects and colors will make or break the room.From my personal collection. The small weird panels on the left show the realtime GI + glossy reflection processing btw.

Are we finished now? Of course not. Games are never finished, even not the finished ones on the shop shelves. We need a few more objects, tune the volumetric fog, tweak colors, draw some more decals, try to increase the sharpness (T22 always gets blurry for some reason), remove artifacts, make flaming sprites, compose music, and oh, maybe some other surprises as well…

I’m hoping you can enjoy the new Demo somewhere this summer. And more important for the health of this project, I also hope this demo will attract a fresh bunch of artists with talent, dedication AND time (that seems to be an almost impossible combi). If I’m happy with the result, I’ll pass the demo forward to some popular Dutch games magazine. It turned out that just placing a video on Youtube / Vimeo isn’t enough to make a catch. Got to do some wild crazy fishing, like Rex Hunt.