Sunday, June 20, 2010

Let the games begin

Yer all watching the game? Football I mean? I'm not a big football fan (or from any other sport), but I like the vibe a festivity like this brings. Good excuse to visit the bar on a normal working day, eating "bitterballen" with mustard, watching grown up men acting like idiots, and of course criticizing our football players while most of us are already tired after a 10 meter sprint. Luckily Holland is still in the game for the next rounds, so we don't have to miss the orange flags and silly collectors garbage from the supermarkets yet.

Kinda funny an event like this shakes up the whole planet. After all, it's just a game right? Oh well, guess we all like games. Why else would I try to program one? I used to play videogames quite a lot in the past, but lately I only start the console or PC sporadically. Probably because 75% of my free time goes into this project, but there is also something else going on. I bought Mario Galaxy 2 one week ago, which is a great game. But still, the magic is a little bit gone. I don't blame Nintendo, it's just my mindset. I'm getting old and boring, my fantasy is getting rusty, and I just can't get that fanatic anymore (which is why I wonder about grown up men fighting each other for a game of football).

Games just don't suck me in that much anymore. I really wish I could switch over to my younger years when playing Mario, GTA, Zelda or anything else. But hey, you can't stop that process. Let's water the flowers and knit a nice warm trouser for my grandson.

Proudly represented, or something

When I DO play games, it's typical that I prefer the older ones. Red Alert, Doom2, Farcry, or even Crusader no Remorse. For some reason, they have a higher "fun factor" if you ask me. Nostalgia plays a big role of course, because it’s reminding me to times where I really enjoyed that game. But maybe old games were actually more fun as well…? I don't know. But I must say there are some "shortcomings" when it comes to gameplay nowadays.

While old games were often difficult (and frustrating, tortured my SNES controllers many times), games these days are often short and simple.. -accessible-. In games like Metroid for the SNES you had to figure out everything yourself. But now you have a GPS navigator and a personal assistant that leads you through as if you were retarded. Clues to puzzles are more obvious, and especially the “quick-save & load” takes away lots of the suspense in my opinion. In Mario 1, you had to restart the entire f#cking game if you got hit by Bowsers fireball in level 8. No wonder these final boss battles were bloody tense and joysticks would fly around after failing (it was always the controllers fault, it didn’t jump). In Call of Duty, -supposed to be a tense and somewhat realistic game-, you can get killed 16 times per minute. Press a key to jump in the action again. It doesn’t matter if you snipe, throw grenades or kill that Taliban with your helmet. Just keep loading and you’ll pass sooner or later anyway.

Thanks to cheating cpu in Mario Kart, impossible jumps in Mario 3 and terrible games like Adventure Island I was patient enough to finally get that !@#$@# curtain working. Sort of...Normals aren't 100% correct.

I know why that is. Kids these days are being said to have a shorter attention span. Or do simple games like these actually make them impatient?? I'm a very patient person, almost never stressed... Maybe because I had to manage my anger and kept trying after Donkey Kong fell in the ravine 30 times in a row. Anyhow, not only the difficulty, but also other aspects of games seem a little bit too polished for me nowadays. Like Hollywood movies, everything is based on proven commercial ingredients. Make a juicy engine with good graphics, 10 hours gameplay, gas-masked opponents that chatter lots of bullshit instructions that makes them sound intelligent, bullet-time action. And as for the hero; a silent stubbled man that drinks black coffee while reloading his shotgun. By the way, his family got killed in an “accident”…

Not all games are like that, but still I think developers experimented more in the past. Resulting in a range from terrible products to unique jewels. I have a feeling that the average quality is better these days, but I'm missing the outliers. Almost as if they are ashamed to put in some new/unique/risky elements. Even the music in games is kind of bland(except GTA maybe). While we were rocking and bouncing in Castlevania, Carmageddon, Crusader, or Command & Conquor, games play it safe these days with classical ambient, mediate rock or jungle drums when the bullets start flying, or just plain silence to keep it serious.

This picture has nothing to do with this story, but I had to post something. Keep reading.

There is a reason for everything. Games have become a million dollar business. Selling rates have become more important than creating an unique product. A good example might be Resident Evil. Although I really like the last two releases, I'm missing the original style. RE1 was a scary and tactical game. 4 and 5 are just shooters that feel very comfortable. The reason why they switched over is obvious: 95% of the positional buyers probably doesn't like the difficult controls, fixed camera's, slow paced action, back-tracing, and difficult puzzles. Resident Evil 4 & 5 are excellent products, but how about the fans of the original? There is not really a substitute  a died out genre, because it didn’t sell.

I might be restricted by money, skills and time, but at least there are no deadlines or persons telling me what to do for this game. Rather than for the money, it’s the passion that drives to make this game. If it would ever see daylight, I doubt if it will be swallowed by the “mainstream” as well, as it’s going to be a pretty different game. Then again, movies like “Reservoir Dogs” or “No country for old man” were pretty different as well… Well, I should be already happy if I could even get near finishing this whole thing. Sorry I didn't produce much visual results this week, but there is definitely work in progress.

Clean sheets son? As for the technical portion this week, I chose to import the clothobjects from a Lightwave file, rather than building grids and defining attachment points in the editor. I can just make any shape in Lightwave, and call it “cloth”. Attachment points are defined with weightMaps.

Since arbitrary shapes are allowed now, I had to change a few things. The constraints with neighbor particles can vary for each vertex. So I pass the lookup coordinates and distances from the neighbor particles inside the vertex data.

Next step; attaching to dynamic bodies. If you wonder why I’m wasting so much time on those damn sheets… One of the characters in the movie doesn’t want to appear naked..

Sunday, June 13, 2010

Stop! Dinnertime!

When I was writing about concept-art last week, I was searching my ass off for one particular picture that actually gives a slight idea how enemies may look like in Tower 22. Years ago, a friend (the same guy from the flat concept) made a clay model for "this" project. Well, the project was based on a totally different story and engine, but plans to make a horror game were already there. Luckily he had a back-up, so here it is:


Claymodel and sketch were done by my www.pixelridder.nl friend. Kinda feel like claying now…
Instead of brute, strong, muscular, bloody, angry, mechanical, hellish monsters, we were more aiming for...[looking for a proper word on a Dutch-to-English translator]...malformed humanoids. You don't really know whether to be scared or feel sorry for it. Well, Tower 22 should have somewhat similar foes. And not just because they're cool. They actually fit in the storyline. And no, this is not a result of biological experiments by evil doctors. Although the first ideas for the project where these pictures came from were actually a little bit based on cold war + abandon lab. But I realized that has been done dozens of times before, so the story and environment have become radically different. It's hard to tell what this new story exactly is, because it's the type of game where you start off with knowing nothing until you finish the game. Many of the why's and how's may already spoil the clue. I'll have to carefully pick my words about that.

Either way, guys like this one share the building with you. And since you don't have a BFG9000 or full automatic M60's to clear the path, you'd better watch your back while mobbing the corridor floors... That should give a slight idea of what the game should feel like.


But enough about that, I was aiming for a little movie right? I wasted almost 2 weeks on those stupid curtains (cloth FX, see 2 posts earlier). In my little test-app, it worked great, but in the engine the curtains would deform to a polygon massacre. First the UV coordinates were wrong again due a shader compiler option I inserted 3 years ago. Later on the gravity was basically pulling harder than the spring constraints that keep the material together --> making an infinite stretch. Couldn't figure out why, until I realized the relative low framerate(30..60) was causing this.

You know, physics don't like low framerates, especially not when they are varying as well. So I could do two things: do 100 iterations(corrections) to get it right. Or fake a fast framerate. I chose the second option. Don't want to give up too much performance for a stupid piece of cotton. The end result isn't even that bad. Instead of ultrafine cotton that slips through your fingers, the curtain now moves more like an old dusty patch that has been peed by 200 cats over the years. That's what I call realism. Still, I’ll have to fix some bugs and make a system to hang those curtains / cloth into the world in an user-friendly manner. A "Granny's Attlier" panel in the editor.


Got to fix the tablecloth shader. It's 100% cotton, but it looks more like a piece of rubber stolen from a SM dungeon somewhere...

But hey, what’s that? Thought cloth didn't work?! No, but LightWave does. What you’re looking at is a pre-baked model. For lazy (or bad) modelers like me, you can just create a subdivided plane and let it drop onto the table. Lightwave will do the whole simulation, and you’ll just lay back and watch. Once you're happy, save the result back into a model.
Lightwave Cloth Manual
Little youtube movie
Well that sounds easier than it was. I spend the whole weekend figuring out how it exactly worked, and adjusting parameters. Besides, the simulation runs f*cking slow. Hit the run button, wait 5 minutes, and then hopefully the tablecloth didn’t curl up or fall through the table. I doubt if my engine does it better, but deffinetly a lot faster.

Another problem was the polygon count. The tablecloth in the Lightwave simulation had about 100.000 polygons. That's a little bit too much for a (not-so-important) ingame object, don't you think? So I dug into some plugins to reduce the polygon count. And since I didn’t want to lose the small details from the high-poly tablecloth, I found another handy tool that generates normalMaps by looking at the differences between the high- and low detailed model.
Lightwave plugin to reduce polygon count (WITHOUT loosing UV coordinates!)
Lightwave plugin to generate a normalMap by comparing hi- and low-res model

Holy shit, are those REAL animated sprites on those candles?! Bet ye are. They even distort and blur the background (a little bit too much). After all those many effects, a simple animated flame wasn’t supported by the available shaders yet.

The result is a not so spectacular table, but at least we learned some new tricks and got hands on some crucial tools if you’re into LOD or bumpmapping with Lightwave. Furthermore I programmed some “motors” to make things move this week, but let’s keep that for another time. Yet, there is still one last thing I’d like to report; if your Wii is gathering dust, do yourself a favor and check out Mario Galaxy 2. Yahoo! Our daughter must be wondering what’s wrong with daddy, happy as an eight-year old.

Sunday, June 6, 2010

Concept Art

Don't want to sound lazy, but I didn't produce much (visual) results again this week. I got home from work at 01:00 night a few days, and on top I'll had to draw a poster for my uncle who was celebrating his 60th birthday last Saturday. Drawing posters? Yeh, I'm not an artist but once in a while I'll draw a ‘famous’ head as a birthday present for friends. So far we had:
- Sadam Hussain --> In one of his better days
- Chuck Norris --> Worlds strongest man, end of discussion.
- Steven Seagal --> The man who breaks your arm 90 degrees
- Henry Rollins --> I am a liar!
- Terminator 1 --> On his motor with shotgun, but with a dog's head
- That goofy truck from the movie Cars (for my little nephew of course)
- Paul Teutul --> The old grumpy motor guy with hydraulic oiled muscles
- B.A. Baracus --> I ain’t get no plane fool!
- Micheal Jackson --> The zombie from Thriller
- Jan Peter Balkenende --> Our cool looking prime minister)
- David Hasselhoff --> Including lots of 80’s breast hair
- Peter North --> Admit it, you know what guy I'm talking about.
- Duke Nukem

And in the past I used to draw monsters and stuff sometimes. Visitor Kyle probably knows this Prey character. I liked the concept art, so I made a copy on paper with ink & pastel.

Pastel drawing. Original was concept art from Human Head Studio's, Prey

The dog of one of my friends used to drive around with a shotgun

Not that bad, isn't it? Shame my skills on a computer aren't that good. But it brings me to an interesting topic though; Concept Art. Most games start with a scratch somewhere. What the hell were they thinking when a fat mustached red plumber was drawn on paper?

Concept(art) is important. For fans, it's like the aperitif you'll get in a restaurant. For the developers themselves artwork helps them on their way. Instead of modeling an expensive 3D character right away, they first make 10 different sketches to see which one is the coolest. Or to discard the idea if none of the sketches really impresses. It's a common way to work for games, designs, movies, and so on.

So, how about "Tower 22 concept art"? Uhmm... I have that game-document I wrote about in an earlier post. And lot's of Soviet flat photographs. But except from schematics and maps, there aren't really pretty pics so far. Shame, come to think of it. But then again, making art takes time as well. And it's darn difficult to come up with good stuff. Horrific stuff in this case.

Original from a Quake 4 drawing contest. Can't recall the original creator

There are actually a few Tower 22 concept drawings. Here's one of the first quickies, made by a friend. It's not really Soviet, but it shows a huge ugly building nevertheless. Visit http://www.pixelridder.nl/ for better design work.

Sometimes concept-art kick's ass, but too often I'm looking at angry Orcs or double D bitches with blades bigger than themselves. World of Warcraft rip-offs. I'm trying to stay away from that. If I'll draw something, it better be good. To be honest, I’d rather wait for someone who really masters the pencil to draw characters or environments, otherwise I’ll might embarrass myself. The drawings above aren't that bad, but they're all copies of existing photo's/characters.

Anyhow, you haven't seen a monster yet (except that big ugly bag of polygons), but they should play a major role in Tower22. Unlike Doom3 where you kill complete Hellish battalions, there are only a few monsters that will return through the entire game; they will be the stars of the show. In other words, they’ll have to be really damn scary/bizarre and imposing. Otherwise it’ll be like watching Terminator with Jim Carrey as the T100.

Sometimes I'll let my fantasy on the loose just before falling asleep. As you go “hibernate modus”, bizarre creations sometimes might fly by. But usually it’s already too late to reach the sketchbook and put down your ideas into detail. Sweet dreams. What I need a sick fucking bastard that produces such images inside his head on the fly all day. Nevertheless, this might be one of the most difficult challenges as for the game design. There are plenty of fictional characters, but only a few have the X-factor. If you ask me…
- Mario & Luigi Simple.
- Mother Brain Super metroid. SNES. Epic end-boss battle.
- Mancubus & Cyberdemon Doom2. Did you know Cyberdemon can kill entire level 8?
- Tyrant Resident Evil Remake. Cool cinematics.
- Tank Quake 2. 100 tons of sluggish metal & servo’s.
- Duke Nukem Don’t have time to play with myself.
- Snake (the old one) Metal Gear Solid. Because he’s old, and he smokes.
- Sack boy Little Big Planet. Want to squeeze him.
- G-Man Halflife 2. But who is it?

And probably I forgot a few. Guess I like the monster design from iD software in particular. And what are your favorites?

Damn I'm looking good.

Sunday, May 30, 2010

Ouch, apples, head

Normally I’m trying to post new achievements every Sunday, but I didn’t catch the train this week. So if you wonder where the screenshots are, I need a few more days. I’m pretty busy last weeks. Marriages, barbeques, birthdays, beer, and yesterday golfing between the cows on a milk farm. Busy at work as well, letting wireless microcontrollers talk with XBee and got to make this monster fully work & drive within a few weeks:

Anyway, I spent most programming hours this week on “Clothing”. No, not my shoes and pants, but physics to simulate curtains, sheets, flags, Batman's cape, etcetera. To be more specific, the motion caused by gravity, wind and collisions. Brrr… You should know that my math isn't exactly great. I know that 2 + 2 potatoes makes 4 potatoes, but that's about it. And as for physics, I know it hurts when an apple falls on your head. So.., that's why Newton does all the physics for me (not the guy, the physics engine --> http://newtondynamics.com/forum/newton.php).

Luckily I had some (old) nVidia SDK demo’s, and I ended up with a simple testprogram that produces pretty good results. Although it still moves a little bit like Princess silk. Stuff like this usually comes in several quality-degrees. From ridiculously realistic to Wolfenstein sprites. First there is the university paper wrote by maniacs; lots of Alien formula's, and awesome results... in theory... Then some handy people start implementing those idea's in practice. Finally “the less smarter” guys like me will copy them, hoping that we chose the right references. We don’t really know what we are doing, but hey, it works. My boss doesn’t care either if I understand the theory or not, as long as it works. Do you think I understand the hydraulics of the machine above? Ha, I can't even park it properly.

100% Princess silk, smooth as baby skin

Well that's a little bit dramatic, but since I only have a short amount of time (and attention span) for each individual technique, the way to get it working is usually by Googling for not-too-difficult demo's and maybe a paper. Luckily another blog helped me on my way: http://cg.alexandra.dk/tag/physics-based-animation/

I should give articles like these a "Rick-understood-it" tag. Really, if I can do it, so can you. I'm not a bad coder but the theory usually disappears 2 seconds after I heard it. Can't help it, that's just the way my 2KB storage brains works.

The final result is a mixture of the techniques I’ve seen, using the GPU (videocard processor). And with just a few passes, making it fast & simple. I never did physics on the GPU before, so that was a useful lesson for this week. Normally the CPU is used for collision and physics stuff, but since the GPU is a whole lot faster with vector calculations, it can be worth it to pass the stick. Only problem is that a GPU does not have direct access to your RAM memory. Which is usually the place where collision volumes, previous positions and scene parameters are stored. Instead textures are used to pass the data around:

• Create a grid of “particles”
Imagine them as tiny invisible balls that are affected by gravity, wind and collisions. And more important, those particles are connected with each other. Of course, your towels don't fall apart, now do they? Your math/shader will try to keep the particles together by maintaining a fixed distance between all particles.
• Render initial 3D positions of those particles to a texture.
That would be the curtain/flag in rest pose.

1.- Apply The Force
Apply gravity, wind and previous motion onto the particles, using previous result textures (initially from step 0). Use FBO's / Rendertargets to draw the results to another texture. Yep, your pixelshader will spit out 3D coordinates instead of colors. So, it's wise to use a 16 or 32 bit floating point buffer to store the results.
2.- Apply constraints
Check for collisions (with a few simple primitives that are nearby) and maintain a fixed distance between the particles. Use the texture from step 1 as input, and render to another texture for the results. Eventually repeat this step 1 or more times for a somewhat smoother result.
3.- Final render
Finally render the particle grid as a quad-strips or something. Render as usual, eventually with a BRDF for velvet material effects. The trick however is to replace the “default” vertices with the transformed vertex positions you calculated in step 1 & 2. You can read the texture from step 2 towards the CPU… or better… use “Vertex Fetch” (read the texture into the vertex-shader).

* Tip, batch things.
If you have 10 curtains, do not redo this whole process for each curtain again. Instead render all of them to the same (bigger) target textures. First do step 1 for all curtains, then step 2, and so on. Prevents a lot of shader & rendertarget switching.

The blue "velvet" gloss is just specular lighting. With an inversed normal. Got this result per accident...

The most difficult part in the end wasn’t the math, but getting the texture coordinates exactly right to retrieve the data from a texture. A slight offset will make your curtains fly around like pee in the ISS space station. Allright, enough difficult talk. Hopefully I can post some curtains in action one of these days.

This place sure could use some curtains

Sunday, May 23, 2010

Teletubbies


I’ll buy that for a dollar

Howdy. No, no new scenes for this week. The room I'm doing now is somewhat more advanced and requires several new objects and techniques to be made. Oh well, at least that pushes me to fill the database of available entities. Just like in The Sims, I'll need lots of garbage to decorate the corridors and rooms with. Closets, chairs, beds, ovens, frying pans, or whatever they freakin' need in a flat. Electronic stuff like lamps, computers and televisions. And also smaller details such as light switches, clocks, flowers and paintings. Once made, I can throw them wherever I like. Pretty common for games, but still that database needs to get filled somehow. That means get your hands dirty and start modeling.

Since I'm not a modeler, you can imagine I don't have a complete Sims Vacation Expansion pack of objects available to play with. But once in a while, I'll add an object. These are modeled in LightWave, and for the textures I'm using Paint Shop Pro, a big list of material images to draw with, and some tools to generate normalMaps. Usually the engine gives quite good results, even when the texture and model come from amateur hands.

However, this scene has a little bit more advanced objects. A working television and a big rotating(wow!) fan to start with. By default objects are lifeless, boring pieces of wood/metal or whatever they were made from. But some may require interaction, scripts, damage models, sub-objects or graphical tricks. Take that TV for example. We have the model of the TV itself, but it should also cast (slightly flickering) light into the scene, and more important, display something. Ultimately, I would like to play AVI movies on them. But for a start, the screen is a separate sprite that shows an emissive texture with some noise. If you would shoot or switch off the TV, that sprite is simply hided. Or I could paste another (animated) texture on it when zapping to another channel.

Remember that on your TV? Just noticed that the screen texture is tilted 90 degrees though. That TV needs to go back to the factory I guess.

A spotlight with a square beam texture is placed as a sub-entity inside the TV by default to cast some light

Objects like these are always a puzzle. How to make them do whatever they should do, with the available techniques from the engine? Luckily each object can has its own list of specific properties and script events. Don't want to hard-code each and every possible behavior into the engine, so the Python script will take care instead. Whether it is AI or switching a TV to captain Kangaroo. But scripts can't do everything either. Rendering, heavy algorithms or movement are still part of the engine. Can't let a script let that fan rotate each frame. Too slow, and an ugly way to do it anyway, That means the engine should provide enough “API calls” that can be used in a flexible manner. In this particular case I would need an engine function to make that fan rotate. Or operate a TV.

Sorry for the dark pictures last weeks. Can't help it that they didn't put lights here. That pillar looks pretty good for an ugly pillar by the way. Thanks to detail-normalMaps for close-up details.

Not very difficult all in all, but pasting missing features into the engine must be done with care. But once it fits, it gets easier and easier to create new scenery or objects. And more new stuff has yet to come these weeks. How about curtains? Well that’s a challenge for next week. Got to hit the barbeque and beers now.

Sunday, May 16, 2010

Shitshaders

I got myself into troubles by opening that door. You boys (and who knows, girls)expect a new scene every week of course, so I'm modeling like mad. Luckily creating a hallway isn't that difficult. Even I can create a corridor in LightWave. But a scene is much more than that. For one instance, how to make it "scary"? It is supposed to be a horror game, so if there is one important thing...

Well, I never wet my pants while watching a static picture though. Except maybe from a shocking reality photo. A game will never carry the emotional value that real footage sometimes has. Like the naked little girl running for a napalm attack during the Vietnam war. You can see the terrible fear in her eyes, and when really thinking about it, you just hope your children will never have to run like that. Madness. But when looking at a computed image, no matter how realistic, it won't grab you to the throat like that. At least not in the next 10 years I guess. You ever felt sorry for assaulting a grandma in GTA? Ever closed a games-magazine while reading a Silent Hill review because it got too much? There is still a big difference between fiction and reality. And probably that's a good thing.

In other words, it's pretty damn difficult to spook the viewer with a few screenshots, especially without having an daunting orchestra or cinematics with some "boo!" events for backup. Include that with my lacking skills to create awesome maps, models or textures. So I'm not pretending to scare you. But at least let's try to illustrate the setting a little bit. Not that the game will be nothing but dark stinky corridors, but I just can't model a cathedral, hellish ruins or a Resident Evil mansion. And certainly not in a week!

Boo.

Nah, the scenery I have in mind is a mixture between 'realistic' Soviet building architecture (which is not always necessarily cheap and ugly) and very unrealistic dreamish/nightmarish scenes. There shouldn't be much boundaries to the design, so a mapper can go completely ape(if the engine allows). Although I'm trying to keep away from military complexes and evil laboratories for a change. These are cool as well, but we already have Halflife, Resident Evil, Doom3, Farcry and countless other games for that. Been there, done that.

Choose your weapon. A working flashlight with a simple dusty sprite as lightshaft effect(for now). Got to mirror the tangents here by the way.

The hallway here falls somewhere between realistic and dreamish I suppose. Not very likely you'll see it in an ordinary building, but not impossible either. The goal of this (simple) scene is to build a climax. Just a little one. Not an easy job though. As the creator of this little piece of game universe, I know every detail (and bug) of it, tested it six thousand times, and knowing exactly what is going to happen. So how could I judge this scene? I don't think Stephen King leaps into his wife arms after reading his own books for review.

What I'm trying to do is to post a movie here once the scene is complete. And then let you judge. That would be the first tiny demo scene as well. It's always good to have stuff like that ready to show. Unless the clip will suck of course. Hopefully we'll find out within... let's say 2 months... Dammit, another promise I'll have to make true.

This hallway surely could use some cleaners. Or Quick 'n Brite. Someone smeared the whole thing with dirt. A simple trick to surprise your mom is to paste dirty decals onto the walls. But I was looking for a little bit more effect... Reflective blood, eventually some parallax effect. So I made a handcrafted layer of puke and poop, including reflectivity, normalMapping, parallax mapping and a detail texture for the tiny splatters. Let's call it "shitshader". Basically it's just simple multi-texturing, but using a "Burn" blendingmode instead of additive or multiplying:
......burnedColor = white - (white - baseLayer) / burnTexture
I was quite busy drawing those textures and adding that shader properly this week. And almost reproduced the same results within seconds on the toilet Saturday morning after that marriage party.

Sunday, May 9, 2010

Guess what I see

I had a few things on the planning board this week; fixing the flashlight, creating a new scene, fixing some visual bugs, and letting the legs of my Dumpbot walk (again). Unfortunately, Three days and another half million brain cells were wasted during my alcoholic activities this week. And yet more will follow. A good old friend is finally marrying his girl next Friday so you know what that means. Kidnapping the poor guy to Amsterdam, beer, boobs, dirty hamburgers, and a lot more beer. I never saw so many bars in one night. From the Hardrock café to classy bars where access was initially denied for us Hillbillies. Too drunk to notice the doorman though, so we walked in anyway. Well, for each bar we visited two or more beers were captured, so do the math. The result was a terrible headache while strolling around grumpy in the famous red-light district of Amsterdam. Even the ladies behind the red windows quickly closed their curtains for us.

No surprise the planning vaporized this week. However, I promised to open the doors to a new scene last week, so I did my stinking best to repair the damage today. That's the downside of having a few people finally reading this blog; I actually have to do something now. Can't come up with (alcohol) excuses every week :)

Alright, my Dumpbot still is crippled, but at least he can hover-skate with a flashlight now. The problem is somewhere with mixing multiple bone-transformations on an animated character. While the legs walk, the torso can fire a shotgun or read a newspaper. Also the player can override a few bones with ragdoll physics or aiming the chest/head at a target. Well, for some reasons the legs stopped walking after some adjustments.

The brown sausages with the black stick = A robot hand with MAG-lite. Or something. It's switched off now by the way. Another bug suddenly appeared, the screen goes totally black when shining at some parts. I suppose it has to do with screwed up normals in combination with HDR / Tone Mapping...

Another improvement you can't see are "blocking portals". The engine uses Portal culling to boost speed. For those who don't know what these fancy words mean, imagine your house. You can divide it in hallways and rooms. In computing terms I would call those chambers "sectors". Logically, you always see the sector you are standing in. But how about the others? You'll need (open) doors, windows or holes in the wall to look into other chambers. These openings are called "portals". Portal culling means you'll check which sectors are visible via which portals for a certain point in space. Why would you want to do that? Well, Tower 22 is a skyscraper. Skyscrapers typically have hundreds, if not thousands rooms close together. And your computer really doesn't want to update/compute/render all that shit at once. So instead only render what you'll see.

Not much to see here, except a meat hook. So there is really no need to render all chambers and corridors of the entire tower. By the way a crunchy screen filter has been applied. Noise, HDR, DoF, and overall saturation/contrast/coloring parameters can be adjusted for each room, I mean "sector".

Ok, and what the hell are "blocking portals" then? Well pretty simple, as the distance increases a portal can fade-out the sector behind it. A simple color will replace the sector. The hallway below is much longer than you'll see. But since you only see a small fraction due fog, the portal can close pretty soon to prevent rendering the sector behind it. This is also suitable for the windows you might have seen in previous posts. The floor brightly reflects the glass windows, but not the complex geometry behind them. The cubemaps are too blurry for that. So instead of rendering all those background skyscrapers outside for nothing, a simple sky-colored portal (a quad) is accurate enough. Color and Fade-in/fade-out distances are configurable for every portal of course.


What will await in the darkness? Let's find out, and hopefully with a working flashlight next week. If I still have enough brain cells to operate a computer after the marriage that is...

Sunday, May 2, 2010

What's behind door 2?

Hurray! We got a follower. Although a blog can also be handy to review your own progress after a few years, the purpose is to reach other people of course. Besides from a friend and an email, there hasn't been feedback so far, so this is flattering :) Hello Kyle. Human Head studio's...--> Prey?

Installed some freshly modelled radiators this week after some complaints about the cold.

Now since there is at least one person on this planet reading this tiny place on the World Wide Web, let's give some more details about the project itself. Having progress on the graphics, physics or players handling flashlights is nice, but what exactly are we trying to achieve here? Well, besides from having a good time and learning something, the goal is to create a horror game. Or at least a demo, because making an entire game on your own is not going to happen in a hundred years of course. I may be a dreamer, but not stupid. Pyramids weren't build by two slaves either. Just like any other ambitious project, you can't do without (talented) manpower. But rather than begging people for help on the internet fora, I'll do my own homework first; writing the engine + tools and writing down a solid game concept.

Unfortunately I'm not in the position to attract mappers, modelers, sound engineers or artists with a salary or a project that is guaranteed to hit the store shelves. The only weapon I have is charms. Finding a few talented people that love the game concept can make all the difference. But talented people usually get their paid jobs at Pixar or a big game studio. So, the only thing I can do is trying to create an "impressive" demo and then wait... very, very patiently... Chances are small, but at least I can't say I didn't try.


The game itself will be a horror game. But unlike most other games the thrill doesn't rely onto killing hordes of demons with 100 liters of Heinz ketchup. Not that I don't like gore or action, but I found that fear often lies in suspense and the "unknown" rather than actual confrontation. A little bit like The Blair Witch project, but with a more bizarre setting like that can be found in the Silent Hill games or Hellraiser movies. The purpose is to put you in a surrealistic world that never feels comfortable; Soviet era skyscraper "Tower 22".

You'll wake up in your apartment and start your new job as a caretaker in this massive building. Wiping floors, painting walls, delivering packages, replacing lightbulbs and other dull jobs. However, you'll start to feel claustrophobic soon. Most windows are barricaded, the floor lay-out doesn't make sense, and you can't find an exit anywhere. In fact, you don't even know at which floor you are. And above all, you never actually saw someone from day one. The boss calls you once in a while, but you never met him. And although the building is full of traces, where the hell are its inhabitants?

In your free time, you'll start to explore the building. The deeper you dig, the stranger it gets. An ordinary apartment door on the corridors can reveal something much different than you might expect. And of course, you won't be alone forever... But instead of killing enemies, you'd better stay out of their way...

What would be behind this mysterious looking door? Find out in a next exciting episode