Wednesday, February 22, 2012

Making of Radar demo #2: Map Design

Ah, another making of post, and a bit delayed as usual. Anyway, where were we? Oh yes, map-design. Designing your worlds, like a game God.


1. Mapping: Common sense versus bullshit
------------------------------------------------
Ideas often start with pictures, snapshots from other movies/games, or weird (day)dreaming. Or being drunk. Smart professors found out that being drunk and/or tired makes you switch over to the creative parts of your brain instead of the logic portion. That's why I keep "idea-doodle" lists. If I saw something on TV or imagined freaky stuff just before going to sleep, I write it down on a paper. These lose, random fragments are not directly suitable for a game though. Nor are rusty factory photo’s from the internet. The Canadian/American army didn't build that Radar Station as a secret party spot for kids that want to get drunk. Neither did the design count on Tower22 or any other action-shooter maps to be made in the future.

Most buildings focus purely on a certain task. Sheltered, providing all required facilities, storage space, and maybe some comfort if the wallet allows. Now concrete structures aren't exactly meant to be cozy. And unless you're talking about Hitler’s bunker, don’t expect a lot of secret narrow halls, illogical stairs, or spectacular vistas. As for Soviet apartments flats, there is not much to expect other than a central corridor and apartments... over and over again, each store. If you are lucky, there might be an office section, or shops at the ground-floor. But all in all, a skyscraper is one of the most boring places to start a game ;)

So one of the first things you got to do as a map-designer, is to let go the logics. The player isn't counting toilets or inspecting your building on structural integrity, running water, if the air-ventilation makes sense, if the apartments are up to the ISO norms, or presence of salmonella. He or she wants cool places to explore, have walls and obstacles to cover or hide, find secrets, be amazed by stuff you don't see every day.

Sounds easy, but that's dang difficult, especially for Beta persons. I'm used to fix (program) things with logical thinking, not with bullshit. It's easy to design a place that makes sense, as you have design-rules and countless of references all around you. Just look in your house, a factory, school, or whatever. But if the map relies on fantasy(nonsense), it gets difficult to make a picture. Imagining one crazy room with weird shapes, floating guts and dancing dragons isn't that difficult. But filling a whole game with it...
Powertip

* If you like, use realistic structures / locations as a framework, but fill them up with your own sick ideas.
* Write down all ideas, store all crazy pics, and always keep a doodle paper next to your bed.
* There are many photo collections about old buildings and stuff on internet.
* Or just grab the camera and have a look in a factory. Do your homework.
* Dare to experiment! Add or remove rooms you would normally expect, enter a room via a secret corridor instead of a frontdoor, and don't forget to reserve space for bigger "wow!" scenery.

* Respect the theme. Whether your map needs to be realistic or not, you can't mix up spaghetti with choocolate ice-cream. Variation is needed, but within a certain boundary. Save bizarre ideas that are hard to place for later usage.


The very first room in Doom2, which takes places on Earth apparantly, doesn't make sense already.

Don't even know what I'm looking at here (Silent Hill). Someone had a very bad dream here.


2. Mapping: Stitching socks
------------------------------------------------
Rooms need to be connected somehow. And in such a way that it suits your type of game. Action games require lot's of coverage, plenty stuff to blow up, and locations that lends itself for spectacular (scripted) scenes. A Metroid or Zelda game needs to be more open, contain loads of secrets, blocked routes that can be unlocked later, and fantasy architecture that remind you you are in Hyrule or on Zebes, or whatever those planets are called. Tower22 will be about puzzling and exploration, so count those elements in.

To make things a bit more difficult, it needs to be scary in our case. The Heinz blood-ketchup tool only works for a short while. Your structure needs to be fundamentally f*cking scary to be horror worthy. One dull hallway spoils the climax. Bad lay-out that gives you a sense of safety, and also don’t make things too easy or the fear-factor will be ruined.

The bottom line, you can't just spray random ideas over your mapcharts. All the places need to be linked with each other in such a way that it challenges the player. Whether that is blasting things up, running for monsters or puzzling your way through. You need to think back- and forward. Room1 may influence room45 later on in the game, or vice-versa.
Powertip

* Don't start building blindly. Write down the global game-flow first and use that as a red line.
* Make lists of the items, monsters and puzzles you like to add in the game. So you can pick and mark them on the list.
* Split your world up in sections, chapters, levels, area's. or whatever you like to call them. Making puzzles and routes per sub-section is easier than for the whole game, plus it's also easier to scrap or adjust sub-sections.
* Later on, you can link the sections with bigger-scaled puzzles (find itemX in section1 to proceed in section3).
* Tease. Show interesting stuff that can’t be accessed yet. Reason to keep playing!


Found this cool pic here. It's the floorplan from the Resident Evil mansion. (Virtual) Architect George Trevor sure had weird ideas about making a comfortable home.

3. Mapping: Don't Enlarge your penis
------------------------------------------------
Another important note about map-design, but certainly horror in particular, is the size of your maps. Bigger != Better (that's Nerdish for bigger isn't better), with the exception of Grand Theft Auto or WoW maybe. Development teams often agitate the public by telling "Our world is 8, EIGHT! times bigger this time, covering 100 billion acres in total!!!". And? So? Bigger is only better if the map is filled with useful things. Zelda Twilight Princess had a big world all right, a big empty world. Secrets were too spread, and because you traveled so much I never felt a cozy bond with the location. Which is usually the big charm in Zelda games for me.

Several war/action-games have big environments too... filled with the same houses, trees and rocks over and over again. At first you're curious what's inside such a house so you explore the area. Later on you just keep running forwards. Screw those details, nothing to do there anyway. I just shoot a few terrorists if I need ammo.

What I liked so much about Duke Nukem 3D (1995), was its realism. Realism?! Hey don't forget that all other games of that time took place in dark dungeons or claustrophobic space-stations. Duke Nukem actually had streets, trashcans, cars, shops, and bars. Recognizable elements from real life. But don't mistake, the DN3D maps didn't make that much sense either if you think about it. Streets with 2 dead ends, spaceships, secret tunnels behind posters, green alien goop area’s, flooded cities. They dosed these fun-realistic elements very carefully.

When I did my first DN3D maps with the brilliant “Build” editor (my start as a “game maker”!), I always filled the maps with as much as possible. 4 houses, each with toilets, kitchens, bedrooms and everything. 3 bars, 2 parking lots, 10 skyscrapers, and so on. Exploring the first house and finding the toilet & mirror is fun. Seeing it for the second time is less of a surprise. Seeing it three or more times just isn't fun anymore. That's (probably) why the realistic "wow!" sights in DN3D were carefully spread over all the ~30 maps. One level had a cinema. Another level had a bar. Yet another level had a livingroom + toilet. Level X had a sewer-system. Et cetera.

The moral: don't repeat your ideas too often. If that means you have to reduce the overall map-size, then so be it. Especially horror-scenery can quickly become dull and predictive if you repeat it. If you look at a game like Resident Evil 1, you won't see 5 gardens, 40 bedrooms, and 6 laboratories either. In fact, the game is pretty small. If Jill had a (working) flamethrower and all keys, she could invest the whole building within 30 minutes, like a real Japanese can finish Super Metroid within 30 minutes.

I hate short games though, so instead of adding more floors with the same stuff to Tower22, the puzzles, monsters and interesting sights should stretch the length.
Powertip:

* List all your main ideas (example, I want a lava, forest and ice world)
* Note the sub-ideas, make an "idea tree"
* Try to equally spread the ideas. If one section has too much while the other is empty, shuffle. Or just remove the boring parts if there is no other option.
* Don't start too big. Adding area's can be easier than removing parts.
* Keep closed sections in your maps. A cheap way to grow in size, but you can also fill them later on if you need to stuff more ideas in the same space.


One of my all time favourite game vacation spots is Clocktown (Zelda Majora's Mask). A small town, but you can spend many hours here. Finding out what all characters do on a particular time of the day, finding hidden passages, or just have a stroll on a rainy day.


4. Mapping: Review yourself
------------------------------------------------
Getting started on an idea is always difficult. One day I'm creative like melting butter, the other day it's not coming any further than blocky Wolfenstein 3D corridors. But once you are rolling, it's easy to link a whole chain of ideas and plot them as a superfast matrix-printer on paper. Or Paint in my case. MS Paint? Yeah, you heard me, MS-Paint dammit. Because it boots up within a second and doesn't bother you with anti-aliasing, hundreds of tools, artistic poopbrushes or what else. I just want to draw lines and squares, that's it. Detail is for later.

Anyway, as said a few times before, you'll have to be a bit careful with your enthusiasm though. Ideas that sound better than sliced bread right now, can still suck if you review them later on critically. But if you spend many hours on drawing the whole map, it's hard to take distance of it. Some ideas just rust into your brains, and you're not open anymore for adjustments or complete different ideas. The same issue also counts for other elements in your game btw. Such as the looks of a monster, the story, et cetera.
Powertip:

* Start your maps simple. Don't draw all details yet, just blocky schemes so its easy to adjust shapes or scrap them if needed.
* Make your maps, then let them rest for a few weeks.
* Then look again... Still got that warm feeling about them? Ifso, good for you. If not, just redo them. Probably your second or third attempt combines the best of two worlds.
* Usually I make two or three variants of an idea. Sometimes with a few months or even years between them. Each “iteration”, I pick the best ideas of the previous attempts and mix it with the new fresh ones.



5. Mapping: Radar Station
------------------------------------------------
Luckily, the Radar Station wasn't part of the game. Meaning I didn't have to follow those guidelines that strictly. So why am I telling that whole story. Dunno :p The Radar didn't have to be playable in puzzling and action terms. The monster down below wasn't even planned originally. Hence, it was meant for testing new objects & physics remember? The idea was to throw a few barrels in the water to show some physics, and have a quick fly-through the building.

Yet, we got a bit more ambitious... if we want to record a movie here, it should at least breath the T22 feeling a bit. At the same time, this map is meant as a playground to test objects and physics. So I wrote down the requirements. Uh...

- Needs to be pretty big so you can render larger objects as well
- Stairs for (ragdoll) physics
- Water & ice for physics, and because it looks cool
- The camera has to be able to take 1 smooth path through the whole building. Not entering a room and turning 180 degrees each time.
- Not only boring concrete and metal s'il vous plait

But on top, don't forget we're dealing with a radar. As said, the building didn't have to make perfect sense. Hell, I don't even know how a real Radar structure looks from the inside, other than from a few photos and N64 Goldeneye. Yet I could do some suggestions of course:

- Control room: Charts and computers and stuff
- Storage space: Small warehouse
- High building, so... stairs, elevator
- Personal: restrooms, beds, dressrooms
- We wanted ice and water, so... open roof maybe?
- How about... a radar dish?

With that in mind, it was only a matter of making rooms for each of those ideas and linking them in a somewhat logical, yet playful way. Got to mention that I didn't have a real good idea of how each room would look yet. Just draw a square in Paint and write "Barracks" or "Control Room". The texture setup and micro-details such as junk or rusty decals were for later concern.

All in all, the Radar isn’t exactly the scariest building ever made. You could find such a thing in reality maybe. Yet did we follow the 4 rules mentioned above? Logic mixed with nonsense, check. The building has no front door, there is a hole in the roof, some places aren’t accessible, and no idea why you would need fuel drums in a radar. Connecting the rooms properly? Played with stairs, ladders and dark tunnels… Size of the map? Not too big indeed. All ideas we’re only used once, so that makes each room interesting to explore. Did we review ourselves? Erh… I did, while writing this ;)

After the floorplans were made a bit, I made a simple mesh so the others could have a better look as well. 2D floorplans are fun, but it's hard to tell what someone has in mind without seeing any 3D shapes and colors.

Tuesday, February 14, 2012

Avalanche

Before continuing the "Making of Rambo V" (somewhere later this week), I'd like to share some ice cold stories about our little family trip to Lapland. Lapland? Yep, north Sweden, above the Arctic circle, where Santa and Rudolf lives. And the terrible stinky Yeti. And broken trains, but that's another story. So if you plan an icy vacation some day, put on your thermo-pants, make some hot choco, and lay down on your reindeer fur at the fireplace.

Now Lapland wasn't my idea for a vacation. Those are either beer-vacations somewhere in Western Europe, or family visits in Poland. But moms and dad thought it would be a good idea to see some more snow. It was only -18 degrees Celsius in Holland, and even the goats in Morocco bleated around, carrying a snow blanket. So, why not? Nah, the "extreme" weather (-5 is already extreme in our books) was a coincidence. Anyway, why the hell would you pick an arctic place in the middle of nowhere, instead of cocktails and a sunny beach?

Well, one reason to go might be the chance to see northern light. Which we sadly didn't see. No twilight zones and magical colours from other dimensions in the sky. Another reason might be to fulfill your adventurous needs, steering the sledge with a pack of fanatic Husky dogs that run as if they were on rabies. Which we didn't do either, as we have a little girl that wants to be carried around like a lazy princess, too young for wild journeys. Or, maybe you just don't like tropical beaches that much. Like me.

Snowbeach


2. Damn snow… Simple tasks become a challenge
----------------------------------------------
When it comes to traveling and "doing stuff", I'm quite a boring person. Yet I'm curious how people live in harsh places such as worn Soviet flats, or ice-cold Lapland in this case. And yes of course, those observations might be useful for Tower22 & horror stories. How can a person make a living in a depressing concrete monsterflat, or in constant cold? Sure, happiness and fun when it starts snowing. But is it still fun when you are surrounded by thick snow layers many months each year? Now we might be a bunch of sissies, but when it snows a little bit, our whole economy freezes with it. Miles of traffic jams, people stuck with trains, busses and planes. Too cold for outside jobs like construction work. Worried about getting the houses warm (including the gas price). And also the smaller activities become true challenges. My daily 2 x 30 minutes bike tour to work could become 2 x 60 minutes + a bruised butt. And each time you walk outside, you have to carefully dress yourself. And clean the house again when walking back in with those clumsy snowboots. Shit, even taking a piss outside is dangerous with these colds (and nearly impossible when wearing 3 trousers). You have to plan forward.

But luckily, we all know the snow is only a temporarily thing. Hence, a standard Hollandish winter doesn't even have snow on the menu. So when it happens, sunshine is at prospect. And in the meanwhile we make the best of it with charming activities such as ice skating, hot drinks, “snert” (thick pea soup), and if you are lucky, a day of school/work. But living in those conditions for many months, each year... And in darkness (days are shorter or the sun doesn't even come up in the early winter months.

Goddammit not again!


3. Isolated
----------------------------------------------
But what may concern me even more about such places, is the isolation. Sweden / Scandinavia doesn't have a dense population (9 million Swedish, ~10% of them living in Stockholm, others spread over a large country), and you can imagine the average person doesn't go up north for more snow either. Lapland is mainly made of pine forest, and has a few very small villages (you can count the number of houses on two hands) here and there. Fine, I'm not a city-person either. Don't need to be surrounded by loads of people, traffic and urban ghetto shit all day. Yet I find it a comfy feeling to know that the facilities are within reach. Supermarkets and school are a few minutes walking. If you need a computer, car or other luxury article, it can be found next door as well. And if you want to get drunk, a couple of bars within a 5km radius, and otherwise the bus to the most nearby city drives every hour. Whether you need a Thai massage or a hotel for your dog, it's all within reach, even if you live outside the village on a farm. That's because Holland is one of the most dense populated places in the world (on average). It’s near impossible to find a spot where you can’t see a house or human-made structure here.

Sweden, and Lapland in particular on the other hand, are a bunch of mini-villages. I have no idea how kids are going to school. Hopefully for them, there is a bus stop, but it will be quite a ride every day I suppose. Same thing for shopping or going out. You don't just step out the door and yell "back at 01:00!" to your mom... there is nothing. As said before, every action needs to be planned. And where do people work? With little people, there is also little needed. You can't start a kebab store in a town where you know each neighbor, and has a few 100 visitors per year at most. Construction workers don't have to build entire new suburbs either. If it isn't the cold, than it's the lack of residents that makes their work impossible. Agriculture in these conditions? Not possible. Even the oldest profession in the world is probably boring herself.

If you think Lapland has poverty, think again. Things are pretty expensive here(especially alcohol!), and at the same time the living standard is high in Scandinavia, including Santa's territory. How they make all that money? Not sure, but I guess quite a lot people take a long bus/train ride to the most nearby city for work, eventually staying there whole weeks in a hotel. Plus I guess live just goes a bit more "relaxed" here. Instead of shopping little bits each day, they probably have their own winter-supplies. Brewing their own apple cider and stuff... And if the harsh weather gives a halt, people just deal with it, stay home, or do something else. Other than us stressed Dutchmen, wrecking our cars trying in the attempt to reach work/school/gym/.../ at all costs.

But asides the practical problems, how about the isolated feel? Humans are social beings. And whether you live in Lapland, a ghost-town in Chernobyl or the Sahara desert, things get pretty lonely if you only see a handful of (the same) people every day. Not that I talk to every person on street, but just their presence makes me feel like a living being with a purpose too. Well, it probably just depends on what you're used to. Also Lapland-people have jobs, houses, work, family and friends. But in a different mixture than we're used to. Yet, according to some statistics, Scandinavia scores pretty well when it comes to depression, alcohol and suicide… Now you know why so many thriller books are written there ;)

In the foreground, a piece of the graveyard next to a little church... See the stones? The dead are sure burried deep here!


4. Prejudicies?
----------------------------------------------
So, that's the picture I had in mind. Depressing lonely dark locations combines with Christmas-like scenery and stunning nature, wooden houses with 3 meter thick walls to keep the cold outside, and reindeer-beef. But... are those stereotypes valid? As said before, it's amazing how fast you can adapt to different situations, and start feel comfortable or at least familiar with it. People are scared of strange/different situations, and it's a typical Western flaw to think that everything that does not have widescreens, internet, macDonalds and bars can't be a happy place. And btw, Lapland has all those things. Anyway, there is only one way to find out: have a taste yourself!

Moms and dad booked a hotel in Kiruna(webcam). Kiruna is just a village too, but seems like a whole city compared to all the other micro-towns in that region. But to review a part of our queest already; a "city" like Kiruna is probably not representative for the typical Lapland way-of-livig. People ride cars instead of dog-sleighs, shops and schools are nearby, houses are made of concrete instead of pinetrees, despite the cold quite a lot of people on the streets, and there is WiFi everywhere. So far my sad lonely isolated picture of Lapland...

Frozen Tower22


5. Fasten your seatbelts... erh.. wait a minute...
----------------------------------------------
You can reach Lapland by plane, but we chose the adventurous approach: plane + sleeping train. Which turned out to be quite a fiasco, but more about that later. We would take the train in Holland to Schiphol, our international airport. From there, a less than 2 hour flight to Stockholm, the capitol city of Sweden. On Arlanda airport, we would take the night train to Boden, a village in Lapland. That includes sleeping in the train, as this ride takes about half a day. The last ~4 hours would be travelled with another train, to our destination.

Did I tell before that I'm not much of a traveler? I hate rushing with bags and little kids that don't want to walk theirselves or otherwise run all directions. And I hate flying even more. Really, the whole vacation is overshadowed by the knowledge we got to fly there first (and back as well). The long crowded queues, heartwarming security checks, waiting with impatient kids while aircrash investigation is on TV, the smell of fear from fellow-travelers that are afraid of flying too... Screw the "flying-is-the-safest-transport-method" statistics. When I'm not in control and have a 100% chance of death when a stupid sensor malfunctions or a lazy worker forgot to remove ductape from the altitude meter, I don't feel comfortable. Once we take our seats, I'll keep focused either on the crossword puzzles in a magazine, or on the steward-faces. As long as the lady smiles, we're not dead yet. But every little bump or corner the plane takes, freezes me further into the chair. My vacation does not start until the wheels skid the ground again. And the weird thing is, it gets worse each time. First times I wasn't afraid at all, but maybe that’s because I didn't brought my family with me in this flying death coffin. Also the (fake) bomb threat and evacution we had once at Eindhoven airport didn’t help much. Man, I really hate flying.
• Hey, another (probably fake) bomb threat on Schiphol according to the radio, right now. Comfortable.


Let me out!
But how ironic...the only thing that went well on this whole shitty trip, was the airplane. First of all, we didn't take our train to Schiphol. If you are Dutch, you already know why. …drum roll… The trains were stuck due the weather, as usual. So, we had to take the car. Yeah, we all complain about the NS and ProRail when the damn train doesn't arrive again because squirrels took a crap on the railroad. Good thing we're going to Sweden, those Björns know how to deal with snow. Right? Well fellow Dutchmen, a cold comfort. We're not alone. In all countries I have been, the trains don't drive properly either. In Poland, the old Soviet trains drive on seemingly random schedules and are late even in summers. In India, trains crash and explode at insane speeds of 2 MPH. In well-ordered Germany, our train had delays too. Years ago, in France, we got stuck on a station for hours and hours (and of course none of the personal wanted to speak English). Our complains about NS and Prorail might be valid, but don't forget we have one of the most complex and dense rail networks in the world (Wiki). In Sweden, the one (and only?) railroad going to the north wasn't functioning. Twice.

While waiting on Arlanda, we found out the train didn't drive at all, and neither was there a guarantee it would go one day later. In that case, our vacation would have a very early end. Flying twice in two days, exactly my boys dream. The annoying thing is that nobody informs you either. No telephone message, no (English) intercom messages on the airport. If we didn't ask ourselves, we would have waited 5 hours for nothing. On a goddamn airport, of all places. But wait, SJ(Swedish Railways) did send an email... As if a foreigner has internet (paying 5 billion euro per megabyte once outside his country) enabled on his phone...


6. Stockholm
----------------------------------------------


Luckily, our father works in Sweden (did several constructions like petrochemical factories and currently the Olympic stadium in Stockholm), so we visited the hotel he sleeps every week. The plan was to wait one day, see if the train would go on Sunday. And otherwise, go back home.

Poor dad got a chance to see the people he sees every week in the hotel, and eat what he eats every week there. And we just bored ourselves in the hotel lobby, waiting for an update about the trains. God had mercy for once, the train would go that evening. So the rest of the day, we took a walk through Stockholm. Finally we got rid of the stress and all that luggage for a moment. Why do girls always need to take the entire H&M with them for a week of vacation? And guess who gots to carry it. Next time I put a bag of cocaine between her clothes so I get rid of all that luggage.

Stockholm is a typical Europe city. Not super high-tec or skyhigh. Lots of shops, old but beautiful buildings cropped on each other, canals, and narrow medieval streets. All covered with a thin layer of (salty gray) snow and cozy lights. It could be grasped from a brothers Grimm book. We just took a random route through the streets, and finally entered sort of Irish pub / sports café for beer & diner. How about the cuisine Rick?

Well, what do you think when you hear Sweden? IKEA, Abba, population having more (blonde) girls than guys, snow, not a bad football team, and erh... Pippi Longstocking. Honestly I don't know that much typical Swedish export products. No idea about the food either. Of course, you can eat hamburgers, fries, pizza and spaghetti in each and every restaurant (also in Lapland). But a true Swedish dish... IKEA (tm) Meatballs, reindeer steak and some fish? Didn't see much else exotic plates or power-soups on the menu cards. Nevertheless, don't worry about the amounts. Despite the relative high prizes, you get full plates, Viking+ quality. Nothing to complain. Might have something to do with your body needing more fuel when operating in cold temperatures. Didn't see fat Swedish people either by the way.

Narrow old streets. Love them.


7. All on board, The night train
----------------------------------------------
Finally, after waiting some more on the station (so far our vacation consisted 70% of waiting with luggage), we could board the train. Being angry at public transport is very human, but let me add some nuance. As said, Sweden isn't exactly dense populated. So what happens if the train gets stuck in the middle of nowhere? As I write this, the radio tells about a train actually being stuck in the mountains nearby Montenegro, where they have the baddest-ass winter in 60 years right now. You can imagine a warm train quickly becomes a fridge when caught by the snow, minus 30 outside. SJ just doesn't want to take that risk. I respect that decision. Only too bad SJ would screw again on our way back home...

Anyway, the train was moving now, although we weren't sure how far it would reach within Lapland. If the rail ahead would become too risky, busses would take over. But for now, we were safe. So, let's go the restaurant wagon, and enjoy beers for only 6 euro each(7,80 USD!!). And enjoy the sightseeing of course. Made of... darkness. Hey, it was night, and no house or lights to see most of the part. But otherwise your vision would be mainly filled with snow, pinetrees, and a lot more pinetrees. Make sure to add the word "Pinetrees" if someone asks you about Sweden next time.

Your trainview, around 15:00 o clock btw

Didn't sleep too well in the bumpy trainwagon, but all in all, it was pretty comfortable. It sure beats the hell out of flying for me. The only annoying thing are the long stops. If trains have to pass each other, one has to wait on station since there is only 1 rail most of the part. We arrived at Boden somewhere around 12:00 next day. Too late, but luckily the other train was so kind to wait for us. Imagine you're sitting in that other train, going to work, having to wait for another darn train to arrive... As said, people are probably more laidback when it comes to scheduling around here. Just go with the flow, trying to fight nature is a lost battle here.


8. Hot!
----------------------------------------------
Monday night we finally arrived in Kiruna. Well, not night really but the sun went down around 15:00 already. The first thing that surprised me was the crowd. Not like the idea of a remote village with people hidden in "bunker-houses" deep below the snow. Forget it. Cars, traffic lights, busses, people having a stroll with the dog, et cetera. Hotels were mainly filled with workpeople and their laptops. Little people here, so software services, machinery maintenance and other experts come in from all over the world here I guess. It might be in a remote area of this planet, Kiruna isn't retarded. The town has all comforts from any other Western location. I only missed the bars a bit. There are About 5 pizzarias, but didn't really see pubs or clubs for the youth.

Right next to Kiruna there is an impressive iron ore delving area. That explains the contractors with their laptops everywhere.

Another surprise was the cold, which wasn't that bitter actually. Temperature indicated -23 C I believe, but it didn't feel that bad. Seriously, having a smoke outside at work in Holland feels colder than this. Of course, I'm not wearing snowboots and thermo underpants while having a smoke in Holland. Wearing good clothing makes a gigantic difference. But it also seems the air is less humid here. Thus less frozen moustaches, and achy lungs when breathing in. No really, the cold wasn't a problem at all this vacation, except if your legs are tired and you want to sit for second... don't.

Speaking about cold, they sure know how to heat up buildings here. Hotels, busses, trains, it's awful warm inside everywhere. Your body gets a 50 to 60 degree difference slap in the face each time walking in and out. I'm not kidding you if I tell we slept with open windows in the hotel. Stick your hand through the window and it's -20 to -30. Pull your hand back 10 centimeters and it's 28 degrees. Good thing Lapland has a small population, otherwise the world gas and coal supply would be burned here within days. Maybe that answers the question of where people work here… timber!

Even the church was damn hot



9. Ice hotel
----------------------------------------------
So the idea of a red frozen nose and having a chilly uncomfortable temperature everywhere was wrong too. At least for the places we visited... Except the ice hotel. This time the thermostat was set on minus X. Nearby Kiruna, the famous ice-hotel can be visited. First I have to clear up another wrong assumption; you won't be sleeping in a hotel of ice. There are chalets right next to the “hotel”, as you can take dog-sleigh rides here and go on adventure as well. But the hotel itself is more like an artwork, an ice-sculpt to be more accurate.

As the name sais, the entire structure is made of big blueish iceblocks. And like a real hotel, it has a lobby, real working sliding doors, a bar and a whole array of rooms. Not all, but many of those rooms have been touched by an artist(s), giving it a certain theme. Artists from all over the world reserved a room to get creative with the sculpting tools.



Each room has its own theme

For some reason, this makes me think of Conan the Barbarian


10. Sami
----------------------------------------------
About 1 kilometer down the road from the ice-hotel, you can see a more traditional lapland, and a real reindeer park (read a garden with 3 or 4 hungry reindeers). You get a bag of moss so you can feed the deers, which is big fun for the little ones of course. We have talked about trains, hamburgers, WiFi and glowing hot hotels. But the traditional Laplandians, "Sami", didn't live that way of course. And now that your feet are a bit frozen from the walk in the ice-hotel, you finally get a sense how harsh living can be here. It gets colder, no traffic anymore, and human structures make place for pineforest and frozen lakes as you walk out inhabitated area.

Sami are like nomads, travelling around with their dogs and livestock. They made huts made of skin, that can be best compared to Indian Wigwams. Dig a hole in the snow, setup your wigwam, and let a kettle of crap boil above a small fire in the center of the tent. Supplies, clothes and livestock we're stored in simple wooden structures, sometimes setup a few meters above ground to prevent foxes, wolves or wolverines to get in for chicken nuggets.

Believe it or not, there are still (a few) Sami. Probably equipped with modern comforts such as a cellphone, GPS and maybe a snowscooter. But nevertheless, it must be quite an adventure to live that way. Being one with nature. Of course, with our little girl we can't walk for hours outside. But if you really want to taste Lapland, I would advise you to go out with a sleigh, snowscooter, or rent a car to explore the area. Be prepared though, there is no help nearby if you get stuck! And another tip: reserve a car already before you go on vacation. We tried to rent a car in Kiruna, but as expected already, bad luck struck us again this vacation. No cars available.

I'm looking for chief walking-tree



11. Going home
----------------------------------------------
We planned to be 3.5 days in Kiruna, but due the problems with the traintrip, we only had 2 days. Too bad, we didn't see that much, neither northern light. But it was time to go already, so we waited for the sleeping train... Which didn't @#% come again. Some Swedish voice announced it, but translating it to English is not their strongest skill. Luckily a good man explained us we had to hurry to a bus, cause the locomotive was broken down or something.

We expected a rough ride already, cause a piece of rail was damaged along the track. It would mean we had to get out the train around midnight, take the bus for a few hours, then enter another train again. So much for sleep in the sleeping train. But plans changed a bit. We would first travel by bus for 4 hours, then take the train at Boden and go directly to Arlanda airport. Sounds reasonable, and I got to compliment the busdriver for driving 100 kmh on the snowy roads (tires & spikes). Yet we weren't sure if the train would arrive in time at the airport. Any further delay would mean we would miss our airplane.

After spending 40% of our vacation at airports, hotel lobbies and trainstation benches, you can imagine we got pretty sick and annoyed by the idea of having to wander around on an airport for half a day again. Farticles. sure they don't it on purpose, but SJ screwed up our journey quite a bit.

We got lucky though. The train was late indeed, but luckily Arlanda airport isn't stuffed with endless queues so within 30 minutes, we were already sitting in the plane. Good for me, I hate waiting at airports. And the plane took off like a charm. No turbulence, friendly ladies, and even the free sandwich tasted pretty well. Shit... would that mean I actually... No no no, still hate flying.

To finish the vacation with a happy end, dad’s luggage got damaged. Don't know whether they placed his bag in the jet turbine or just dragged it over the floor behind a cargo car, but it looked as an old pirate cannonball fired a hole in it. Bag kaput, contents of the bag lost. Hurray.



12. Conclusions
----------------------------------------------
All in all, the vacation was too short to really see or do something. In other words, a bit disappointing. But hey, it’s nobody’s fault the weather got a bit extreme even for Lapland standards. That's also forms my main advise, respect nature's authority here. Buy good warm clothing, be prepared and plan forward, but also have back-up plans in case trains or busses don't drive. It's probably wise to add some extra length to your vacation in case you have to skip activities on harsh days. Yes, Sweden is expensive so reserving extra days is a bite in your wallet, but since you probably won't visit Lapland each year again, you'd better take the max out of it once you're there. Reserve a car (well in advance), and be mobile so you can enjoy a good walk or ride in Lapland’s nature. The further you get away from populated areas, the more chance you'll see northern light as well. And last but not least, keep your thermo underpants on. Hmmm, love them.

Tuesday, January 31, 2012

Making of Radar demo #1

Not sure, but asides those who google “Far hairy lady/pussy”(dirty bastard!) and end up at our infamous demo1 topmodel according to the blog-traffic-statistics, I suppose most of you are curious about game-programming, or making games in general. So why not tell a little story about how that Radar Station was made? So ladies, for this week, and the upcoming ones, a little peek behind the scenes.


Headquarters
----------------------------------------------------------------------
When reading a book, you try to visualize things. Who's the protagonist? How does his house look? How would you imagine the woman referred as "the ugly lady with red curls and anchor tattoo"? Your eyes read the letters, your brain sets up the décor at the fly. But when watching a movie remake, it’s usually way off (and therefore maybe disappointing) of your own imagination version.

So let me give a helping hand in case you’re trying to visualize our situation. Forget the romantic scenery and programming stereotypes. We don’t have an office or a cool room decorated with T22 concept art and a whiteboard showing complex level designs or mysterious programming formula's. The reason is pretty simple. There is no team to meet. At least not in real-life, as all of us are living thousands of kilometers away from each other. Spain, Netherlands, USA, Germany, UK; not your typical weekly trip. So far communication is done via email, sometimes via Skype, and telekinesis of course. The bottom-line: I don't even know how half of my partners look!

As for having a "game-dungeon" in my house... That would be pretty cool, and I can play Resident Evil without having to worry about our little girl, or getting kicked away by the girl who thinks doing 2 hours of Nintendo per year is more than enough for a grownup man. Yet, I'd better not isolate myself elsewhere in the house. Probably I won't see my child growing up and such. Ah, we don't have much space anyway, asides from a dusty attic.


So usually I just sit in the couch. Girl watching Polish soaps, little girl watching Mickey Mouse on the right half of my laptop, daddy programming scary stuff on the left side of the screen. You wouldn’t see the difference if I was playing WoW, or watch porn. Or, oh well, you get the point. Working days then? Oh yes, like the other team-members, there is a daily job. Or actually 2 in my case. And not surprisingly, as a programmer (harvesters, pharma-machines, database stuff).

Once home, it's dinertime & playing with the little ape. When she goes to bed around 8 ó clock, I tell her a story (stopped reading fairy tales, those are freakin scary and she got a lot of nightmares about wolves and witches lately :) ). But then… I put on my captain Ultrabyte superhero programming spandex + 8-bit goggles + external underpants, to sit in the couch again with the laptop. Girl watches TV and talks, I hear half of what she says. When I’m captain Ultrabyte, I only speak Turbo Pascal. But to make it up, I usually take a break around 22:00, then continue my hero-activities till 01:00 or 02:00.

Yep, that's pretty much how it happens every day. Except on beer-drinking days then. When not programming I'm usually drinking beer with friends, do stuff in the house, make diner for the girls(= demolish the kitchen), try to sport a little bit, or, sigh, got to go shopping with the girls. Yay.

All in all, lot's of sitting & computers, and pretty dull. That's why beer-drinking events are healthy. None of the friends/family is really into gaming, let alone programming, and neither do I bother them too much with binary jokes. Same story for pretty much all colleagues at work. Prevents being a game-nerd 100% of the time. Believe it or not, most people, including parents, don't even know about Tower22. I just rarely talk about programming or games, unless someone is really interested
(or when writing here).

How the other team-members do it? No idea! They just work as well, in some cases also as freelancer on other (game) projects, do their other hobbies, and some of them have kids as well. So they mainly work on T22 in their free night hours as well. When there are ideas, questions or something to show, a mail pops up (got a bit obsessed watching the mailbox the whole day for that reason). And each Friday I'll send a mail to everyone, sharing the progress. Other than that, no fixed meetings, or strict rules. That makes team-progress a bit slow, then again the laidback athmosphere makes the whole thing enjoyable instead of a second or third stressy job. There are more important things than programming games.



The Radar-Station-Motivation
----------------------------------------------------------------------
Sounds like a disco-track title. Anyway, now that you have a slight visual on our work situation, let's proceed with the scene being used in the last Demo movie. It's called "Tech-Demo" for a reason; the scene isn't part of the T22 game, neither does it contain gameplay elements. Why spending so much energy on something that does not appear in the game? Uhm...

Somewhere last spring or summer, Sergi joined the team. He would make props mainly. Props are objects to decorate the scene with. Boxes, barrels, computers, furniture, lamps, stinky corpses, et cetera. Very common for pretty much every 3D game. Well, an artist can model a trashcan in Max or another package, eventually using a concept drawing or photos from the internet. But then what?

What you make in Max, is not exactly what you get in your game engine. Rendering techniques are different, and a game-prop needs to do more than being beautiful only. We want to throw, shoot, kick or interface with that trashcan! What we needed was a playground. A test-environment that uses the actual game-graphics / physics / sounds /.../. Not only to fine-tune the object, but also to give feedback to the artist.

Shot of the Object-Editor. Now that simple textured object does not give the artist a good idea of how an object will look / feel.

If you spend 5 hours on making a soup-kettle object for the game, you want it being used, ASAP please! It does not satisfy if your 3D file disappears somewhere in the dusty virtual archives for future usage. Unfortunately, this is what often happens in hobby projects. The technology is not far enough to actually use the props, and/or programmers just don't understand the needs of an artist. Thanks for the kettle object, looks cool, bye. That does not really motivate to make an even cooler stove object, does it?

So, for practical usage and for the fun-factor, I started making the "Object-Editor". As the name sais, you import your raw 3D meshes here and define an object:

- Meshes (in several levels of detail)
- Physical collision shapes & properties (mass, name, materialtype)
- AI script (link to a DLL that does object specific behavior)
- Animations
- Eventually sub-objects, connected with joints or motors
- Define special sub-objects (lights, sprites, particles, cloth, ...)

The combination of that crap forms an Object file that can be used in the game later on, typically when decorating empty environments(maps). Like the Sims "buy" modus.

Asides constructing the object, you can test it. The view toggles to a game-map, eventually with full graphics enabled. Then you can watch your object in several setups (bright, dark, water, skylight, ...). But also throw it around to test impact effects/sounds and see how the physics work. Does it float or sink in water? How far does it slide on ice? What happens if your give your ragdoll a Porrasturvat stair dismount? Not all of those features already work btw, but that's pretty much the goal.



Mapping Ideas
----------------------------------------------------------------------
This requires a testing-environment with some varying situations. Bright rooms, dark rooms. Water for buoyancy, wind for blowing away light stuff, icy surfaces for low-friction physics, stairs of course and an overall pretty big space that allows to throw with stuff, also larger objects. Your typical Tower22 apartment would be too small for that so I thought about a... bunker... Not just because bunkers can be made relative big, they are also easy to do. A bunch of concrete, and even more concrete. Voila, done. Hey, we shouldn't waste too much time on a playground that never reaches the game right?

As usual, such ideas are shared with the others via mail. Before doing idea X, I first want to make sure everyone agrees, and give a chance to bring up better ideas. Then Julio came with photographs of an old abandon Radar station. This radar, built in Canada in the cold war era, was part of big string of radars that had to intercept Russian (nuclear) missiles. As we know by now, they better spent that money on buying bigMacs or Russian Vodka for that matter. But at least it delivered a bunch of nice photos. What caught my interest in particular, was the flooded & frozen bottom part of the building. Perfect for physics, and it looks pretty spooky as well.

Another salient detail, instead of intercepting missiles, it's a place to drink & party for kids nowadays.

Yes, the flags were set. Frozen Canadian bunker-radar-thing, we got you! Of course, at that point we didn’t know yet how to fill it up. And it was certainly not meant for a demo movie! But the nice thing about ideas is that you can bend them. And I realised, with a little extra care, this scene could be useful for another small movie to show. Why not? Anyway, next time I tell you more about: map design, modeling the maps, making props and how to plan stuff.

Thursday, January 19, 2012

In the year 2012

Time to write a new love letter to this blog, don't you think? The video got received well so far, and maybe, with a bit luck, we may even appear in a real paper magazine! Isn't that just awesome? I remember reading those Club Nintendo and game magazines (PU in Holland) every month, carefully sucking up details because who knows... maybe your game will be reviewed some day! Ok, since this is a game-programming magazine, the article won't be a real preview of Tower22 where the writer played the game and makes pictures with funny jokes of it. It's more focused on the development, the team behind it, and getting some facts about the game. Anyway, I keep you updated!


As for the Uncle Sam-needs-sick-horror-fans-with-drawing-or-3D-skills recruitment session, we got about 12 offers so far. It's less stormy than a year ago, but maybe that's also an indication our requirements are formulated better. Previous year the offers would vary from good to very bad, and from 3D artists to Peruvian panflute bands we didn't ask for. So, I can't complain. so far three candidates have been selected. Still not the uber-artist I may have dreamed off, but it's probably a bit unrealistic to expect Pixar-dudes to browse the "Unpaid jobs / MOD help" forums, looking for an extra hobby project. Previous time I cheated a bit by placing the request on a "Freelance" forum (per accident) instead.

Skills and some natural talent are surely important. But maybe an even more important factor is devotion. Like most skills, artists will improve themselves if they work long enough on something. We programmers need art, them artists need a challenge, so we help each other out. But the amount of work (or will to work) we spend on it, differs for each person. You could have 10 supertalented people, game-Ronaldinho's. But obviously, if all those talents only have a few hours on unreliable random intervals, it's still going to fail.

And just maybe... maybe the somewhat less experienced boys & girls have more time on theirvhands. They're not spending 40+ hours on Toy Story 4 each week. So while a professional comes home with a headache of being creative all day, a starter loves to spend all his free night hours on drawing / modeling / composing... And where a professional may get bored quicker cause he's been there and done that, a starter may be more passionate about a project.


We'll see. I think the guys who mailed me make a nice addition to the team. If it really works out can't be foreseen by looking how talented someone is. Their love and devotion for the project is what excels them in the end, not skills alone. Some are enthusiast and helpful. Others join a team, then come up with excuses every week because they found out they rather spend their free time on something else. Playing World-of-Warcraft, sleeping, girls, whatever. Personally I don't believe the "extremely busy with work" excuses that much. Of course work(+family) can eat all your time, leave you dead-tired and incapable of doing anything productive. But not for weeks/months in a row. And yes, I have a kid and two jobs as well, so I know what I’m talking about. In the end it's your decision how you fill up the hours before going to bed or your weekends. There is always some time for the things you truly love!

But you can't force anyone of course, unless you pay their salaries. Neither can I expect a newcomer to share the same enthusiasm and love for the project. They just want to apply & improve their creative impulses on something useful... like a promising game project! So it's my task to keep them locked & loaded with challenging, fun-to-do assignments. Makes sense right? Most people just do what their boss asks on work. If the boss has nothing interesting, some will suggest or create their own work... but most others start Mine-Sweeper or take a nap at the job. Can't really blame them either...



This was one of the things I had to learn in 2011 (and still have to learn); keeping them at work with satisfying tasks, following a good strategy. It's not that I had nothing to do for them. Christ no, there are thousands of objects, textures, drawings and sounds I can think of. But you have to dose it in a good way, at the right time. No one likes modeling a stupid Ming vase that *might* be used for a map in a far future. No, distillate the tasks that are relevant and have to implemented right now. Don't bombard them either with 40 assets they can choose from. Just don't bother them with details that aren't important yet. If they really wanna know, they ask you anyway

At the beginning, I thought it would be gentle to let the whole team think with every decision. Democracy you know. We can do A or B... or C if you like. Then half of the team has a different opinion you hoped for, or just doesn't reply which makes everything hold up. Since I was afraid to pick a direction that the others may not like, I asked and shared everything. And since I don't want "my artists" to spend their time on jobs they don't really like, I also gave them pretty big lists so they could pick their own tasks, allowing them to make their own schedules. Now that's sweet, right? Too bad it doesn't really work though. To compare with the chief at the office again, what would you do if your chief gives you 100 tasks that need be done "some time", "maybe"? Exactly, it would be chaos. Everything will be delayed as long as possible, tasks will be forgotten, et cetera. If the boss doesn’t really care about task-X, then why should you? It's not your responsibility to create a strategy and vision for your company. That's what the boss is for! What else he gets paid for?!

It's not I'm leading Tower22 on Stalin-style now. I still ask what people prefer, and allow them to think with me, if they like. But at the same time, I must prioritize and make a clear plan for the next half year. If there are doubts or no answers from the team, then just follow your intuition. Don't stand still at each intersection point, and don't always try to find solutions that each and everyone likes. Keep your project going, and keep your artists doing what they really like; modeling, drawing, making sound, et cetera. And if they can't, just move the task to someone else.

This is how the monster looked in earlier versions of the room

2012
---------------
So captain Costa Concordia, where are we heading to? I tell you.

1.) Game-time. So far the T22 TechDemo movie got praised for sound and graphics. Nice of course, but that still doesn't make a game a game. So as for programming, I will focus on making it playable. A full-screen "game.exe", a human player to control, physics that CAN climb a stair (damn that's hard), a basic GUI (menu's, bars, inventory) and animations. That's why "GUI Designer" and "Animator" we're mentioned in the movie as well btw. That probably takes me at least half a year. Robert will try to finish the player model as well.

2.) Demo 2. The artists will focus on drawing and then producing the contents for a next (and possibly last) demo. This demo will show real T22 gameplay again, not just a flight through some wacky radar station. So, that gives me a also a good testcase for goal 1.

3.) Tower22 preparations. Hopefully we will get enough concept-art time this year. The concept-artist(s), Brian(writer) and me should develop the ideas further for T22. The whole thing is already done by me, but I need input to fill in the detailed spots. Plus the long boring texts have to be transformed to pictures. Most important to get us started on the game content, is to have the first section of the building designed, so after Demo2 we can start on that.

4.) Graphics? Not much planned for the next months, but I should improve the performance. One trick is to optimize passing shader parameters. So I'll be looking into OpenGL's "Uniform Buffer Object" some day. I let you know.

5.) Programming help. It hurts the ego, but I may need 1 or 2 (Delphi) programmers to get some load of the shoulders. They will be making specific parts of the GUI, and improving the tools the our artists use. I let you know once it’s needed.

6.) Blog. I'm planning to write a "Radar Station" making off, and a Newton physics tutorial that handles character controls. But only if I succeed in making a controllable character myself! Luckily Julio Perez, the creator of Newton (the engine, not the guy) noticed T22 and is making a demo already. That should help me getting on the tracks.

Sounds like a lot? Never said making games was easy! Ship ahoy.

Thursday, January 12, 2012

Higher Quality movie

Where were my damn bumpMaps son?! We spend so much time on micro normalMaps, parallax maps, and cockroaches on the floor. But the low-res blurry video made it look as if the game was illegally recorded by an old phone in a dark room on a (cheap) game conference.

Well, here you got it again, HD. Say hello to the details, although some of them also might reveal visual glitches. Like pornstars being afraid their hemroids become visible on HD movies ;)

Still not as sharp than I would like to see, but a whole lot better than the previous blurry mess!

Monday, January 9, 2012

After the commercial break... Another movie!


Hey boy, hey girl, here we go... It took almost as long as creating episode 3 for Halflife2, but there it is; another movie. Tech-movie I might add. Said it before, and I'll say it again: the purpose of this movie is to show you some visuals, and a piece of scenery that *could* but in Tower22 (but it isn't :p). Why? Well, why not. And oh yes, to attract some help on our team of course.

Compared with the movie one year ago, there are some obvious changes:

- This new tech movie does NOT show you the typical horror or game elements
- All the textures and sounds are created by ourselves, no more borrowing from other games. And in case you didn't know, yes the whole engine is created in-house as well.
- The sound quality should be quite a lot better. Video is still blurry though, but we'll try Vimeo within a few days. Maybe that allows to upload a higher-res variant of the video.
- All in all, it should look and sound quite a lot better. I hope so.


Just saying. It's funny, but maybe tricky at the same time, how false rumors can spread like napalm fire. Before you know it, the player is called Robert (which is not true), the game was created with Java, I'm working as an astronaut, et cetera. Not all "journalists" actually take some effort to read the sources. They just copy from each other. Believe it or not, but I already saw on some site that T22 would be released half 2012. It even had a score (7.5 if I remember correctly). Uh... apparently they have a nearly finished version of the game! Maybe I went back in time like the Terminator to give them a game copy. Whatever.



Now it's true that Tower22 does not have a clear project description. We're working on that, although the story and some game-elements will remain a secret anyway. The website is still a bit empty, but expect some updates soon. Starting with a new screenshot overview. Other than that, we shouldn't bother too much what others say. Yet when someone starts comparing this with Crysis2 and says T22 sucks, it feels a bit unfair sometimes. So one last time: it's just a tech-demo, made in far from finished engine, in the night hours, on a 0$ budget. So, there you have it :p

Enough talk already. Grab some peanuts, and chase away young kids from your room:


And a superduper, turbo-pascal, creative, fancy, moody, farty, healthy 2012!

Monday, December 26, 2011

Take 48, cut

Next post will contain a movie release. Unless I get heartfailure while stuffing myself with Christmas food.

For those who expect another gameplay / spooky horror trailer, I'll have to disappoint you a bit. It's a "Tech-Demo". Which means it shows graphical stuff mainly. The goal is not to please gamers. Screw you, the whole purpose is to attract more 2D / 3D talent :p Ok, ok, we added a little present that might please you as well ;) Nah, the movie could represent a Tower22 part (although T22 does not take place in military looking Radar Stations). It's a little taste of how things *could* look (and even better)... IF we get a team strong, talented and motivated enough to help me through that is.

One problem to tackle with this next movie is the recording quality. Main issues last time were the hellish sounds and overdone blur. Both caused by the combi of Tower22 and FRAPS taking the same CPU resources. Two mangy dogs fighting for a stinky shoe. Two old ladies arguing about the TV channel. Two hoes pulling each other’s (pink)hair for a pimp. Two . Anyway, a year passed by, plenty of time to evaluate and prepare better for a next time. So what did we do? ...Ehr...

Doing homework was never my strongest skill. In contrast to Postponing. So I started sweating again for the recording session. The desktop computer used for recording has a newer video-card, so the good news is that it should have some more firepower this time. Then again, this new demo is quite a lot more advanced than Demo1. More lights, more shading tricks, more textures and objects, et cetera. On top, I didn't try the engine for half a year on that computer. Oh boy.



As expected, the framerate crippled again, but not as bad as previous time. After some optimizations, FRAPS and T22 eventually got in Sweet Harmony. Sort of, at 20 frames per second. That's still not smooth as silk, but already better than the previous time, plus the resolution has doubled as well. Maybe we can squeeze out a few more frames.

A far better approach would be recording the video-card (HDMI?) output with an external device. Like you could record your Super Mario Paint(snes) movies on VHS. Hmmm, maybe I should buy a digital camcorder or something. Let it store the video-card output on a disk, then read the digital file back on the computer. Never tried it, but it sounds like a valid plan. And otherwise you'll have to do with a more jerky movie :p

Still have to pimp a few rooms. Julio takes a snapshot of an existing room, adds some photosoup magic, then passes it back so I can try to achieve the same thing with the engine.


One thing I could solve software-o-matic, was the camera path. Like in real movies, it sometimes takes several cuts to record a scene. Or did you think Commando was recorded in one single shot; Carry tree, smile horrible while daughter puts ice on nose, smell enemies, get down, kill enemies, daughter gone, get captured, kill guy and say he's dead tired, jump out of plane, go to shopping mall, throw telephone cell, drive, chase, crash, throw little guy from a cliff, fuck-you-asshole, infiltrate hangar, window shopper, get busted, get freed, fly to a tropical island, undress, boat, dress & makeup, kill a few with tactical stealth tricks, kill 10 dozens more being absolutely not stealthy, kill with an Uzi, kill with a shotgun, shed fight, get in the villa, shoot gringo warlord, go to the basement, get shot in the shoulder, knife-fight with a fat moustache man in a chain mail (hu?), blow some steam Bennett, found daughter, happy, -fin-. Bang, 90 minutes.

Arnold Schwarzenegger has awesome acting skills, but not so awesome to shoot this movie in a single 90 minute-breath. Hey, not even fucking Commando himself can do that, cause the timeline was spread over 12 hours in the movie. Enough kidding. Of course movies take multiple shots, with multiple camera's. And afterwards, the best parts are pasted together.

With games that use a first-person-camera, this isn't so easy. If the camera suddenly shifts 30 centimeters to the left, or if the lighting suddenly goes a bit darker, the viewer will notice this "discontinuity". Do it too often, and you'll get an epileptic attack. Movies tend to switch the camera viewpoint every 5 seconds or so. This "switching" helps hiding discontinuities. Maybe the actor moved 10 cm to the left, maybe the sun stopped shining, maybe he lost his boner a bit(other type of movie). Or maybe a plane just happened to fly over the Coliseum, roughly 2000 years ago. Neither did I know a camera crew was taking part of the battle in Ramelle. The point is, the viewer doesn't notice because (s)he's focused on the actors, and the camera switching hides faults too. Hence, did you know T22 Demo1 was made out of 2 parts as well? When the player runs the stairs up, a second movie was used at some point. Yep, when the camera switched from third to first person view.


This time I won't be switching camera views, so everything has to be recorded perfectly in one time. And that's difficult! You have to make sure the camera captures all the wanted "hotspots". Not too long, but not too short either. We amateur camera-men tend to record things boringly-long, or in turbo-pace. If you know what you are seeing, focusing on it for 2 seconds seems like an eternity.
But for another viewer that is not familiar with the scene, it takes at least a second to re-focus. I always get dizzy and sick of those MTV shows where the camera crew seems to be on speed. Yo biatch, my kitchen, home cinema for real, here’s where it all happens in the master bedroom, 50 inch rims, now get off my property. 10 billion shots, they sure show a whole lot. I just have no idea what I just saw the last 10 seconds. Too fast. Anyway, finding the right pace for a movie shot is very important. And last but not least, the camera has to follow its path in a somewhat natural, curvy way.

In my case, I have to navigate the camera for ~6 minutes (that's how long the movie takes) without making faults. With a jerky mouse. With FRAPS and T22 arguing for (CPU) resources. With a little kid making noise in the background. With a girl that starts talking about, ...-hell I don't know- while you are sweating and recording the whole thing. You can't do it in 2 or more parts, cause it's just impossible to redo the exact same camera path. So at the stitching points, you suddenly see the camera hopping to another point, the lighting changes, et cetera.

Moving the camera down a stair, with a curve, is difficult enough already. Doing it twice exactly the same is impossible.

Do the loco-motion logger
Hey... But I got a little idea! Nothing new really, yet very useful. What if you lock your family outside, don't run FRAPS, and run a "motion logger"? Yeah, just store the camera view every (few) cycle(s). In my case, I made a little class that stored the camera matrix 15 times per second. Just directly writing it in an opened file-stream. If you are really cool, you make a background thread that fills 2 buffers and store those in a filestream, but that wasn't necessary for the little amount of data in my case. To give you an idea about file-sizes,
---- 5 minutes = 5x60 x 15(fps) x matrix(64 bytes) = 282 kilobyte
That isn't too bad. Otherwise you may store quaternion’s instead of matrices to save more space.

Now that we have the camera path stored, we can redo the navigation with a click on the button. Store all matrices in a gigantic array or better, make a (background) streamreader that fills a buffer with matrices each X seconds. Then calculate the actual camera matrix by interpolating between the current and next frame matrix. The path is 99% identical to the one you recorded earlier. Eventually you can relax and edit parts now, or let the computer calculate a spline to get a more smooth route.

In case your girl started talking about spaghetti or your little brother kicked your legs while recording, causing your mouse-hand to do make a jerky movement, it's relative easy to polish. Let the camera follow the path till the point where things went wrong. Stop it, hit the capture button again, and now do a second attempt. The newer part should fit seamlessly with the previous one.


When you're finally happy with the camera route, you can finally record the movie for real. Just let the camera roll over the railtrack again, sit back, and relax. Even when the video capture program causes a jerky framerate, the camera will keep stable cause no human input is needed anymore. What a relief.

Sunday, December 18, 2011

Turbo Boosters

One visitor asked; "Dear Santa. Where do all those magical presents(effects) in your T22 world come from? And how do you prevent the sleigh from crashing down when loading more and more of them? Yours truly, Nick, 7 years old, Nebraska.'


Well boys and girls. If you think the Tower22 engine ("Engine22") is fast as hell, ho-ho-ho, no. To the facts; currently the "Radar Station" maps run at a pounding ~17 frames per second on my laptop. Of course that depends a bit on the view. When staring at an empty corner, the speed may be an acceptable 28 fps. When looking at multiple rooms that also contain a dense cloud of litten particles, the laptop switches over to Burger-King-gravy speed: ~12 or even less.

The laptop is getting old though. 32 bits, and moreover, "just" a GeForce 9800M GTS. A game like Crysis Warhead doesn't run smoothly either, though faster than this. My other desktop computer gets far better results. It's also a 32-bit dual-core relic from the past, but with a better video card (EVGA GeForce 4700 GTS). The first Demo movie for example ran about 25 frames per second on the laptop (the dark empty corridors faster though). And near to 60 fps on the desktop. Another comparison. The "Radar Station" we're working on now (almost finished!) started at 25 fps on the laptop. And now after adding more textures, more effects, more lamps and more objects, the framerate dropped to the ~17 mentioned earlier. No idea how it will behave on the desktop, but I guess it will be "acceptable". Well it better damn be! Otherwise we'll get that annoying motion-blur again due the relative large cycle intervals ;)

Compare this to this. At least the framerate dropped for a good cause :)


For gaming, such a low framerate sucks ass of course. Ever played Doom1 on a 386? You wanted to play the game so badly so you kept pushing, but the PC really said “please no! Stop it!”. For development though, a lower speed is "ok". I'm not playing, just flying through the maps to check coding adjustments or to decorate the maps. That's also the reason why I barely touch the much faster desktop computer. With a laptop, you can at least code in bed, in bath, on the toilet, while being kidnapped by al Qaida, or wherever you are. So, I prefer mobility over speed in this case.

Also have to notice that "dropping performance" happens in a gradual way. It's like getting fat; you don't gain 10kg after a week of snacking (unless you drank 6 kegs of beer in a mug like this -blurp- ). It's not that the framerate suddenly cripples when adding effect-X. Nah, usually it just slows a tiny little bit. You barely notice it, so, nothing to worry about. But all those tiny bits together...



As said, the performance cannot be compared to commercial engines. Simply, I have too little time and less experience to make it lighting fast. Then I don't worry that much about it either. It will still take years to finish this game, so performance tweaking right now is a bit of a waste of time. 2 years later there will be faster hardware, plus some of the techniques we're using might be replaced by then. Especially things like (ambient) lighting And the parallax effect showed earlier also keeps getting smarter, faster algorithms. So, I'll just take a look at some of those techniques in a few years from now again. Well, in fact, 1 or 2 graphics-programmer experts can help by then. Optimizing shaders, give professional advice, find bottlenecks, et cetera. But at this moment, maximum performance is certainly not a priority.

No, the damage on those tiles wasn't there first. It's just a flat decal, faking depth with Parallax Occlusion Mapping...

Nevertheless, that does not mean we just blindly adding features. First of all, an effect needs to be worth it. There are dozens of papers that show awesome stuff. The next best things to sliced breath... ahum, in theory. But more than often they come at a high cost, and/or require a very specific implementation that may restrict other things in your rendering pipeline. Take BRDF's for example. By using real-world sampled data and specific formula's, you can create a (far) more realistic look on your materials. Gold doesn't reflect light in the same way as velvet, concrete or a freakn grapefruit for that matter. Yet most games treat all the surfaces with the standard "Blinn" or "Phong" lighting model (which explains the plastic or metal look on softer surfaces such as skin or wallpaper). Why not using BRDF's then? Well:

- Hard to fit in a deferred/inferred rendering pipeline (cause the lamps have to check on each pixel what kind of material they were made from, then have access to the BRDF parameters somehow)
- Only 0,1% of the artists knows how to make BRDF (image) data. And most of the programmers don't know how-to either.
- And even if they did, it requires fucking professor hardware for the BRDF acquisition. You can't just draw them by hand you know...

- As for the end-result (thus with several lamps, blurs, SSAO, ambient, reflections, post-filters and a ton of other effects applied), an untrained viewer barely notices the difference between a concrete wall rendered with Phong or Oren Nayar.

So is it worth it... Hmmm... Eventually probably yes. But as long as we need the performance elsewhere, techniques like BRDF, or slightly sharper shadows are usually exchanged for more noticeable things such as sexy blurs or being able to put more objects in the scene. The Parallax effect is discussable too. Google for "Parallax Occlusion Mapping", and you'll see that the coolest screenshots always placed the camera right next to a brick wall or on the floor. But how many times will you see surfaces from that close really? When you got killed and fall onto the ground maybe, but otherwise the parallax effect, and certainly the subtle "self-shadowing" effect is hard to notice. Yet it comes at a very high cost. That's why we only use it for rough surfaces with obvious height differences. It's a pretty cool effect, and hardware starts to allow it. But if you run out of rendering-power, POM would be one of the first things to ditch I'd say.

Cool, POM and shit(Parallax Occlusion Mapping). But do you still see the effect now? Same wall (below the sink), but zoomed back to a more realistic viewing distance...

Second things about maintaining our performance. When I do add an effect, I'll try to do it in a smart way. GPU's are powerful but hate to get interrupted. It's not like a multi-tasking woman that can phone, cook, chat, watch the kids, and clean the house at the same time (at least she thinks she can). Best is to create batches and do as much stuff as possible in one call. Sort out data, try to render bigger chunks with the least "state changes" as possible. That's pretty hard these days with so many different effects being pre-processed in the background. ShadowMaps need to be prepared, Animated objects such as cloth or characters may need to stream their data to a VBO or texture first, you'll need depth, velocity and all kinds image data before you can render SSAO or motion blur, and so on. What you see in the Tower22 screenshots is only a small portion of what really happens on the GPU. Before it starts rendering screen content, it draws shadowMaps, cubeMaps, mirror(for water reflections), and plenty of other things.

To prevent getting slower than a tranquilized panda, these steps are combined if possible. With MRT (Multi Render Target) different types of data are rendered to different textures, but in the same pass. Which means I only have to call the GPU to draw the world geometry once. I also sort the steps on screen resolutions so that the GPU has to less switching between Frame Buffer targets on different resolutions. Just a grasp.

Yet another trick to speed up is sparing bandwidth by using compressed textures, or keeping the geometry as much as possible on the videocard itself with VBO's (also for skinned/animated things). The latter means that the triangles and additional vertex data for, let's say a monster-model, is already present on the videocard. So we don't have to re-send all the triangles from the RAM memory to GPU memory (via the CPU) each cycle again.



Texture with particles, rendered in the background on a lower resolution

Whatever you do, don't just do it without thinking. Often there are multiple ways to achieve the same thing. So before I just implement something, I usually ask around (on Gamedev for example) for some tips. One last example. Particles. The old fashioned way is to render a large amount of (transparent) points or billboard sprites(quads) into your world. A whole bunch of them forms a cloud, bloodspray, smoke, puke, waterfall or whatever you had in mind. But because so many quads are drawn on top of each other, the GPU easily suffers from fillrate problems. The same screenpixel gets treated dozens of times, and that hurts. One trick to reduce the amount of calculations is to draw the particles offline, on a smaller texture. Then in the end, draw the texture that contains all particles on top of your scene. Since the offline texture has a lower resolution, less pixel calculations have to be done. Of course, the quality(texture sharpness) also drops but for foggy/blurry stuff like fart gasses or smoke, this is actually a good thing. Two portions of happiness for the price of one.


Don't know what speed the desktop computer will reach when we record the next Tech-Demo movie. But at the end of the story, I'm focused on making Tower22. Not a super engine. Let's first just build a car that drives properly, rather than a car that drives 300 miles per hour. Besides, let those lazy Silicon Valley’s bake better video-cards instead :p Nah, of course, you can't totally neglect the performance in a game engine. If that car needs to drive faster than 150 mph eventually, you shouldn't start with a Fred Flintstone chassis prototype. But squeezing out milliseconds will be future work.