Friday, 29 October 2010

Halloween Tips. Sale and more!

Now that northern hemisphere people move into darker times what can be better than to indulge in some horror! Read along to get some tips on games, books and movies to check out this Halloween!


What to Play?
First of all we have to recommend our own creations that are now available at a very low rate! Amnesia and Penumbra can both be gotten for as low as 50% the price on several online stores. Right now discounts are available at Our Own Store, Steam, GamersGate, ImpulseDriven and the voices tell me Direct2Drive will have discount very soon too.

I would also like to put special attention on our newly launched Mobile Store. It is an ordinary internet store where you can buy the game by simply sending an SMS. It does not get much easier than that and is especially nice for anyone missing a credit card! All our games are on sale there too and if you are lucky they might cost you less than half the normal price! So do not hesitate and check it out now:
http://mobile.frictionalgames.com/

In case you have already played both Amnesia and Penumbra, here are some more more recommendations:

Anchorhead
A lovecraftian Interactive Fiction game with story similar to "Shadow of Innsmouth" and "The Case of Charles Dexter Ward". It is quite long and very well written and implemented. If you can manage playing without graphics this is a great choice.

Call of Cthulhu: Dark Corners of the Earth
Another lovecraft-game, but this time in glorious realtime 3D. Especially the first third of the game is deliciously creepy with a nice foreboding atmosphere. If you can stand a few bugs and cheap deaths, this game is well worth getting.

I have no mouth and I must scream
This is a game that is not that scary, but instead features some extremely disturbing themes. The story takes place in a post apocalyptic future, where the last five people on earth are being tortured by a not-so-friendly AI named AM. It plays like a usual point-and-click but with some fun twists. Unfortunately the game suffers from some annoying puzzle design, but is still worth trying out. And oh, the game works with ScummVM, and should thus run on just about any platform.


What to watch?
At Halloween all kinds of crappy horror movies are released, so to save you from that here are some films that you might have missed:

Fermat's Room
Five people are called to a puzzle evening which takes on a diabolical twist. If you enjoyed limited location based movies like Cube and (first) Saw, this is one is highly recommended!

Eden Lake
A story about a couple taking a trip to a lake is not all that original, but Eden Lake has a nice twist to it. Beware of some disturbing scenes.

Hard Candy
Cranking up the disturb-o-meter, this movie is unsettling to say the least. It starts out with a creepy meeting between a man and a young girl, and then gets progressively worse.

Day of the Beast
To lighten up after Hard candy, you should consider this movie. It is about a priest that in order to stop the anti-christ decides to become evil. He teams up with a mentally unstable death-metal fan to do so. Hilarity ensues.

Lost Highway
This is probably my favorite a Lynch movie, if only for an excellent scene involving a telephone at a party. It is not that scary, but keeps a brooding atmosphere throughout. Beware of weird lynchian plot!

Audition
Since we want to go out with a bang I am rounding up the list with this disturbing masterpiece. The movie is quite slow, but this only helps building to moments of true horror that it has. The end scene is unforgettable.


What to read?
Nothing can tingle the imagination as a good book. So here are some tips on how to invoke those nightmares I bet you long for.

Anything Lovecraft
A novel by the master of horror is a must! For people new to the man, I would recommend "The Whisperer in the Darkness", "The Shadow over Innsmouth" or "The Dunwhich horror", all very typical lovecraftian tales. All of his works is available online, but they are of course best enjoyed in front of the fireplace.

The Terror
A retelling of the doomed Franklin expedition with the addition of a stalking monster. Most of the book is based on true events, and the supernatural spice increase scariness in an already horrific story. This is probably one of the best horror books I have read. It takes a while to get into, but when you do the book will not let you go.

Perdido Street Station
I consider the books author, China Mieville, but be a kind of modern day Lovecraft. He has the same dense, but yet enthralling, prose and an incredible ability of making monsters. The books takes place in a fantasy world, but even though it is very weird, it feels in real in a way. Prepare for some really disturbing imagery.

Stiff: The Curious Lives of Human Cadavers
Ever wondered what happens to human bodies after they die? This book contains all you want to know and then some. It opens up with describing rows of heads lying in bowls (to be used in educational purpose) and then gets worse. For anybody interested for anybody interested in the macabre this is a must.


Your tips?
Please leave any nice Halloween tips you might have in the comments!


Friday, 22 October 2010

Pre-pass lighting redux

Introduction
After writing the previous post on pre-pass lighting I started doing some tests, to see how it compares to the old deferred renderer. The results that I got where pretty interesting, so thought I might as well share them. Also note that this post might be a bit more technical than the previous.

The good thing with these renderers is that they both share the basic material data. So I can use the same data for both HPl2 and HPl3. HPL3 comes with the few more features for decals but for tests, it is easy to just skip them. When setting up the test I went with a very simple scene, it just the same box model rendered several times, a floor and lights. Some times it is best to test with proper game scenes, but I wanted to something that could be easily tweaked and gave simpler output. This means that the tests are not 100% accurate of in-game performance, but even testing a level in game is not that, as framerate varies a lot depending on where in a level one looks. So usually benchmarking has some kind of fly-through, but that is of the scope from what I intended to do.

Note that HPl2 test was built in Visual Studio 2003, while HPL3 uses the 2010 version. I do not think this should matter much though, even if the optimization routines differ, simply because pretty much all of the work is done on the GPU. The graphics card I did all my testing on is a Radeon 5850 HD (and others where tried for some tests). And as a final note, all of the data is given as average frame time (in milliseconds!) and not as frames per second. As Emil Persson points out, FPS is not a very good way to compare performance.

Test #1
Now with my setup details out of the way, let's get down to the details. I first started out with a scene like this:
1 x box, xz-plane floor, 1x spot light + shadow
which game me the following results:
HPL2: 0.78ms
HPL3: 0.84ms
Difference: +7.7%
This means, that given a simple scene like this the old renderer is actually faster! This is not that strange though since the scene does not have many lit screen pixels, most of the image being sky. Thus, the extra pass extra made with the pre-pass renderer matters more than an lighting speed-ups. Also, the decrease in draw buffer (3 to 2) in the g-buffer does not make up for the extra pass.

Test #2
4000 x boxes, 1 x point light, x-z plane floor
HPL2: 14.9
HPL3: 18.5
Difference: +24%
As expected when there is a lot of things to render, the pre-pass lighting is even slower. That extra pass shows on the performance. Remember though that 4000 objects is quite much and an important thing for good performance on GPUs is to have as few draw calls as possible.


Test #3
1 x boxes, 1000 x point light, x-z plane floor
HPL2: 30.0
HPL3: 29.2
Difference: -2.7%
As noticed, once the scene is filled with lights, pre-pass lighting is faster, but only so by a slight amount. Especially considering the large amount of lights. (I later realised that the actual lit screen pixels where quite few, something fixed later on in test #5).


Test #4
4000 x boxes, 1000 x point light, x-z plane floor
HPL2: 47.5
HPL3: 52.0
Difference: +10%
Doing a really stressful test (the number of lights and objects are really large) it seems like the old deferred renderer wins out. This was actually a bit unexpected and dissappointing to me as I thought that the pre-pass lighting should not be this far behind. But taking the little difference in test 3 into account, it is not that suprising. Still, after these tests it is clearly shown that pre-pass lighting is far from a giant speed up compared to deferred shading and it actually seems slower in most cases.

I also tried to skip the early-z pass for pre-pass lighting (I use early-z in both renderers on all other tests). This is basically a pass where the z-buffer is set up, and makes sure later passes only draws visible pixels. From reading Crytech papers, it does not seem like the the Crysis 2 engine has this though (and same seems true for other engines), so I tried to do a quick and dirty test of not using it and got this data: 48.7 (+2.5%)
This means that even without the early z test, the pre-pass was still slower. However, I did not attempts to reduce overdraw (like sorting front to back) and it might be possible for optimizations here. However, when rendering front to back, there will be a lot more state switching as you cannot sort according to texture, etc as efficiently, so I wonder if the data might not even be worse in a more realistic scenario.

I also tried this test out on a few other other cards (again with full early-z testing):
Geforce 240gt: 125, 137 (+9.6%)
Geforce 320M: 240, 240 (+/- 0%)
This gave the indication that on some cards pre-pass might actually be better, and that it might not be as clear-cut as the first tests seemed to show.

As a final variation on this test, I added illumination maps to all textures, a feature that requires an extra pass in the old engine. I also removed the height map rendering. This gave me: 50.6, 50.0 (-1.2%)
This is a very tiny speed up considering that the methods now have the same amount of passes and that pre-pass lighting has faster light rendering and a smaller g-buffer.

Test #5
488 x boxes, 30 x point light, x-z plane floor
Radeon 5850 HD: 7.4, 7.8 (+5.4%)
Geforce 240gt: 18, 19 (+5.5%)
Geforce 320M: 50.0, 45.5 (-9%)
Geforce 9800gtx: 9.5, 9.5 (0%)

In this test I change to a more realistic number of lights and draw calls. I also aligned the lights so the lit pixels covered the entire screen, which I did not do above. As can be seen, on my computer (the 5850) deferred shading still wins, but on a less powerful card the pre-pass lighting is much faster. This difference might be a bandwidth issue and some cards might have problems pushing the data amounts required for deferred shading.

I also did a tweak to this test and turned down the number of draw calls a bit:
316x boxes, 30 x point light, x-z plane floor
Giving: 6.4, 6.6 (+3%)
This further reduced the difference and if I did the hackish removal of early z, pre-pass lighting plunged down to: 5,2 (-18%)
Even though this removal of early z is not very realistic, the results show that I need to investigate it. Something I will do once I get a more proper scene up and running.

Finally, I also tried to give all the boxes illumination (and turning back on early z test):
6.8, 6.6 (-2.9%)
This clearly shows how you get the illumination almost for free in pre-pass, and that it costs a bit more with the deferred shader. This is not surprising though, given that it requires an extra pass, but hints that further effects can be more efficiently implemented when using pre-pass lighting.


Conclusions
The tests clearly show that my previous assumption that light rendering in pre-pass lighting would be much faster was incorrect. It is a bit faster, but only noticeable so when really stretching the limit and then only by a small fraction. This makes me conclude that one should not use pre-pass lighting to have faster light rendering. However, as can be seen on the test with the Geforce 320M, the pre-pass lighting technique matters a lot more on older hardware, and it might actually be of greater use there.

There is not any vast differences in the techniques though and instead the choice should be based on other merits. Given that pre-pass lighting allows for so much more variety in materials, I will keep it for HPL3, but I will not be expecting any rises in framerate anymore.

I hope this post will prove useful for those who are thinking of using either rendering method, and for the rest it might be an interesting insight on how testing is done (at least how I do it). Again, sorry for the lack of pretty picture, which I promise to make up for!


Thursday, 21 October 2010

Tech Feature: Pre-pass lighting

Progress on the new engine, HPL3, is coming along nicely and recently I changed the core rendering system into something called Pre-pass lighting. This switch has been made for a number of reasons, but before I got into that and what pre-pass lighting exactly is, I need to explain how we did it back in the "old days".

Forward Rendering
The engine powering Penumbra (HPL1) uses something called forward rendering. This type of rendering works by rendering the entire scene on an object basis. So when rendering a chair, wall, or any geometry in the world, this was done by drawing it one time for every light that touches it. So an object that is lit by three lights has to be drawn three times, and so on. This technique can be quite limiting when setting up scenes as you need to be very careful when adding lights. It might not actually be clear exactly how much impact on performance a single light will have and levels usually require quite some tweaking to get right. The complexity of a scene can be expressed as:

Draw calls = Objects * Lights


This means that the number of draw calls can easily get very large and only adding a single light, even if it has little effect on the scene visually, can have very negative effects on performance.

Deferred Shading
When starting work on HPL2 (which was used for Amnesia) I wanted to get away from this annoying light limitations. Since HPL1 had been created a new technique called "Deferred shading" had emerged and when work on HPl2 was started, the average PC system was up for the the task.

What makes deferred shading special is that it separates rendering objects and rendering the lighting. This works by first rendering to a special G-buffer that contains information such as normals, depth and color of all on screen objects. The final output looks like this:


From left to right: Color, normals and depth. Note that these texture have 4 channels each and not visible are also saved specular intensity and power. These three texture then represent the properties of all visible data. It is then used by the lights to render the final image. This makes the complexity of the rendering:

Draw calls = Objects + Lights

This is a lot nicer and as lights and objects are separated, it is a lot easier to add lights to a scene without worrying about performance hits. It is also much simpler to intuitively understand how performance will be affected. By using this technique we where able to use a lot more light sources in Amnesia and considering all of the dynamic lights needed for the mechanics, the game would have been a lot harder to make using forward rendering.

Deferred rendering is not without problems though. First of all, rendering the G-buffer means rendering to three textures at one time which is quite performance heavy, meaning a scene with few lights runs faster on a forward renderer. Secondly, there is no support for fullscreen anti-aliasing either, and one has to do some hackish tricks to remove jagged edges (the "edge smooth" feature in Amnesia). Finally, there is much less material variety possible as every property needed to generate the final image needs to be in the G-buffer. Since we could mange without fancy skin shaders in Amnesia, it was turned out to not be too much of a problem though.

Scenes like the test of Agrippa above would not be possible in our old Renderer. In this test shot around 30 lights help light Agrippa in a nice fashion, and since the geometry and lighting is decoupled it is possible to run this with a high framerate.


Pre-pass lighting
I heard about this technique (first saw it here) during the development of Amnesia and was a bit interested in trying it out. I was interested in the tech back then since it made light rendering go faster, something that had proved a bit of a bottle neck in Amnesia. However, I did not have time back then and decided against it.

As I started to update the engine to HPL3 I again looked at this technology. This time more had been written on the subject and it had actually been tested. For example a similar algorithm was used in Insomniac's Reistance 2 and Crytech goes over it in a paper about CryEngine 2. This also meant that the method was practical, and was well worth trying (I usually try and use tech I have been able to try in other games, as tech dead-ends can prove quite expensive).

Pre-pass lighting (or deferred lighting as it is called sometimes) is very similar to deferred shading and I could use much of the code from HPl2 when implementing it. Only a few changes in materials and light rendering was really needed. The rendering works by also first rendering to a G-buffer, but one only containing normal, depth and specular power. After that lights are rendered, but they render only part of the light equation; basically color and specular intensity. Then in a final pass all objects are rendered again and the light data from the previous pass is used to render the final image. The sequence is like this:

Render Normals+Depth -> Render Lights -> Render final image


The first good thing is that this technique is able to render lights faster, since each lights has to do less equations and access less textures. The algorithm also includes an extra step at the end, but this does not matter that much, as the added the final render takes is regained by the one less buffer needed to be rendered to in the first g-buffer pass (only 2 textures needed instead of the 3 deferred shading uses).

This speed up was not the main reason why I used it though. Since each object rendered again during the final pass, it is possible to have a much larger variety of material types. Instead of being confined to using what can be fitted into a g-buffer, a material can do specific calculations the final image pass. This allows for specialized skin shaders and other tricks. For example, it is now possible to have more features packed into the decal materials:

Above is a decal with both color, normalmap and height map, something not possible in the previous engine. (Note that color and normal have separate alpha and that the height map make the tiles seem carved out of the ground).


End notes
Now I have given a little rundown of how the new renderer works and how it differs from the old one. I have skipped a lot of the details and more technical stuff, to make the post a bit shorter. So if you have any questions, comment and I might have some kind of answer!

Also, sorry for the lack of new and exciting images in this post. Next tech feature should be more fun on that part, as I am now moving on to Terrain...

EDIT:
I eventually did some tests on the algorithm and compared it to the old renderer. Results are:
http://frictionalgames.blogspot.com/2010/10/pre-pass-lighting-redux.html


Wednesday, 13 October 2010

Tech feature: Sunlight with Shadows

Now I am pretty much done with the first major feature for HPl3, the engine that will power our upcoming (and so far super secret) game. This feature is global sunlight along with shadows, a feature not implemented previously. And since it is now implemented you can bet it will an important feature for the secret game ;)

First up was making the Ambient light nicer. Below is screenshot of how it looks in HPL2:

This is just a uniform color blend that has been added and does not look very. It is quite hard to see any details when there is a uniform texture such as in the screenshot above. To get nice ambient lighting what you need to do is to somehow simulate global illumination. Light does not just hit an object and then stop, but bounces around and scatters color from nearby on each other. There is a lot of research into this and most of it require one to pre-calculate the result in one way or another.

I settled with something really simple called hemispherical lighting, which basically mean to have separate up and down (sky and ground) colors and then blend them depending on the normal of the surface. My first idea was to use cubemaps to do something similar, but since the cubemap needs to be very blurred, using hemispherical lighting gave pretty much the same result and is a lot faster. Here is the result:
Now it is a lot easier to see details and looks a lot better.

Next up was the direct lighting from the sun and this was quite simple. I could just add some tweak to the existing shaders and make it work. Basically sunlight is just like normal light but without any position or attenuation. This means every pixel is lit from the same direction and strength is independent of distance to the source (as it does not have a position).

Here is how the scene looks when we add that too:

Much nicer, even though the texture is a bit boring. Note that there now is specular because of the direct light from the sun.

Finally, lets move on to the shadows! The engine already feature the basic shadow rendering though a technique called shadow maps. What is the big problem now is to make it look good over long distances. Since shadow mapping works by rendering from the light's point of view, doing shadows from an omnipresent light source gets a bit complicated. The simple solution is to use a really large shadow map, but then you would get very bad resolution near the camera.

What you do instead is to use the fact that objects take up smaller space of the screen the farther away they are. So the idea is to use the shadow map in such a way that you give more room for pixel nearby and less to those far away. This is something that has been researched quite a bit and there are various techniques to achieve this. One solution is to warp the projection when rendering to the shadow map. This comes with a lot of issues though and is very rarely used in games.

Instead most games use a technique called Cascaded Shadow Maps or Parallel Split Shadow Maps. The way this works is that the view frustum (a geometrical shape encompassing all the camera sees) is split into several parts and a shadow map is given to each split. This means that the first split, which is right in front of the camera, gets a much larger shadow-per-pixel ratio than the last split, which is much larger, but further away (and hence has small on-screen pixels).

The algorithm itself is pretty easy, especially since there is quite a few papers on it. The big problem is that you can get some flickering results because the shadow map can change a lot. There are published techniques that solve this fairly easy though. Most of my time was instead spent on making it work with the rest of the engine. This is something that might not be that known to non-programmers, but most of the work is often not in the algorithm itself but fitting it into the engine design. I think I spend a 3-4 days on getting it inside the engine, before I had everything set up as it should. The actually algorithm took 2 days or so.

Here is how it looks:
Note how shadows are detailed up front, yet they are cast all the way into the distance.

Here is how the shadow maps look (I combine all into a single one):
Probably want to enlarge this by clicking!

These are the four shadow maps that all render shadows for different slices of the frustum. The white stuff is the objects, the red lines outlines the frustum slice and the sphere is part of an anti-flicker algorithm (that determines size of shadow maps).

Now lets add this to the image I started with:
And lets add some nicer texture while at it:
There! Sunlight with shadows is in!

My next job will be to update the very core of the renderer with something called a Light Pre-Pass Renderer. More on that in a later post!


Monday, 11 October 2010

Story: What is it really about?

Introduction
Upon hearing the word story, most people probably think of a chain of connected events. For example: "A princess is kidnapped; a brave knight rides to save her; the knight faces a dragon, the knight slays dragon and saves the princess; finally the knight gets half the kingdom and marries the princess". Most likely, one also thinks of even smaller details as integrated parts of the story; the way in which the princess is kidnapped, how the knight struggles against the dragon, and so on.

This is not the right way to think of stories. The chain of events is just the plot, and it is a device used in order to get the story across to an audience. What really lies at the core of the story are themes, locations, emotions, and so on. Pretty much all stories we have heard in our lives have been plot-based, but this is because this has been pretty much the only way of telling them. Now that we have videogames as a widespread medium this is no longer true. Still, the idea that story equals plot remain strong. It is a common belief that when a game becomes less linear, it is less about the story. I do not think this is true and if we want to advance the storytelling of the medium, this view needs to go.


By the Campfire
Humans have been telling stories for a long, long time, well before the dawn of civilization. These stories were not written down, but spread by being told over and over, never repeated exactly the same way. These kind of "camp fire stories" still remain, traveling from person to person, constantly evolving and changing. Yet, while the way the stories are told change, in a way they still remain the same. Anyone who has ever told a story like this knows that you often never know the exact words. Instead, you know of certain important things the story is supposed to "say".

It is very common that you change a story like this depending on your audience. If the people listening do not seem impressed by the hero's strength, you add more details, more events, descriptions and dialog. Your goal when telling the story is not be give an exact replication of how the story was told to you. What you are trying to do is to copy the impact the story had on you and any change you can do in order to accomplish this is a valid one.

The moment you do something like this, you have realized, although perhaps unconsciously, that the essence of the story its not the words that make it up. Instead, the story is about something on a higher level.


Peeling an Onion
When a section of a story is trying to convince the audience how strong a hero is, it is something that exists above the words that make it up. Still, this "strong hero" theme, might not be at the highest level either and simply be a vessel for a yet greater goal. Perhaps it sets up an overarching theme of how even the strong will eventually fall. The levels might not stop even there and eventually the essence of the story might be boiled down to a few essentials. These essentials is what the story is really about. Remove any of these and the structure collapse and the original story is no more.

It is also important to have in mind that some levels might be connected. Something that is at a higher level might not manage to stand on its own. A certain part of the story might be about the hero overcoming overwhelming odds and is meant to provoke sympathy. At the same time it is about the hero being subjected to torture and treated very badly by some people. If you remove the torture part, then what you have left is only two very fuzzy themes and not something that alone can build the story. Thus it is not always so that the important pieces of a story are all on the highest level, but they might spread out in a hierarchy. And while this might actually continue down to the very lowest level, it can only do so if removing the part destroys the story. It is not a way to justify that every single detail is essential.

I think most people already have these layers in their mind when thinking up a story, but then along the way give great weight to the details on the lowest level. This is especially harmful when making games, something I will address shortly. First I must go over what I mean by the essence of a story.


What is the Essence?
One might argue that a certain story is not possible to distill into a few high level concepts. It could be argued that a certain scene must be in a very specific way; that one cannot simply describe it as some flimsy themes. I think this happens if one thinks that the themes must be deep, thought provoking, artsy, or whatnot. This is not what I mean with the essence though and it can be any number of things.

For example take the "attack on the village"-scene in the movie Predator, something I am sure few people would call deep, thought-provoking or similar. What are the high level concepts here? Is it just be boiled down to "mindless violence", "how the civilized world rapes nature" or anything similarly pretentious? Not so. Instead its essence is things like the environment, the oppressing jungle; to have a team of sweaty super-humans storm a village, showing off destruction and gunfighting. At a higher level it is also meant to be fun watching and must keep a certain distance to reality and stay away from certain things (like murdering of innocents) in order to keep the audience entertained.

What I want to show here is that a story does not need to be have some kind of moral lesson, ask an existential question, or whatever deep meaning, at its core. It can be shallow and just for fun. Even so, there is an essence and it is what really matters in the story.

Consider any good book/movie you have ever read/seen. Is it really the lowest level of events and details that made you like it? Was it not the locations it took you to? Was it not the interesting relationship between character? Or the way slowly uncovering a mystery made you feel? I argue that no story, no matter what sort, is not about the exact way in things happen, but about the essence of these events. This is something that is crucial to have in mind in video games, as simply nailing down a few details that satisfy the essence is not enough. A video game is a living, breathing world and the essence needs to be portrayed through the right use of the mechanics (such as gameplay, art, sound, etc).


Stories in Videogames
Actually videogames already use this kind of story telling! For example, first person shooters have not set the exact sequence how people get shot or houses blown up. The thing that matters is that people do get shot and houses do get blown up. Exactly how this happens is not important for the story, only that the essence of the action stays the same.

The same is true for portrayal of environments in most games. It does not matter how the protagonist traverse or interact with it, the designer simply constructs a world and the rest is up to the player. By setting up the mechanics of the game a certain way, the designer then pretty much guarantees that the player will have a specific kind of experience and that the essence is kept intact.

However, this how far it goes in most the games today. Once a videogame gets to trickier parts of the story, lower level details are given more and more importance. When it comes to concepts like love, betrayal and grief, pretty much all current games rely on a specific set of events, a plot, to convey them. No longer does it consider the essence of the story. Instead, it becomes focused on the low-level details. Take God of War as an example. There is no need to have cut-scenes showing how angry and prone to violence Kratos is - the gameplay does this for us. But when it is time to bring up other emotions, like showing the reasons behind his rage, the game resorts to plot-based cut scenes.

This does not have to be the case. I think that just about any essence can be expressed by a virtual world guiding the player using various mechanics. This can be conveyed just as good, or perhaps even better, than what a carefully planned plot is able to. I believe we are already seeing this with deeper themes such as a fear. As has been proved by games like Silent Hill*, over ten years ago, video games can be used to provoke fear in a way that is impossible to do in any other medium. While certain kinds of horror lends itself extremely well to the video game medium, I see no reason why other emotions and themes can not work just as well. There are of course also games like Fallout and Shadow of the Colossus that touch upon other themes without using a plot, giving a glimpse of what could be achieved. However, this is just the tip of an iceberg and videogames as a story telling medium is still far from where it could be.


End thoughts
Abandoning plot and a linear progression does not mean that one is creating a sandbox game. It simply means that one picks out the essence of the story and design a virtual world that delivers just that. I believe that sticking to old fashion cut-scenes is a dead end if we want video game story telling to progress. Instead we need to look at a higher level, figure out the essence of our stories and focus on that. When this way of creating a story reaches into areas previously reserved to films and books, storytelling in game will be a force to truly reckon with.


* A major inspiration for Silent Hill was the movie Jacob's ladder, and this serves as an excellent example of how to take the essence of a story and putting it in a different medium. Compare the movie's hospital scene to the otherworld found in Silent Hill and you will find there is a remarkable keeping of its essence. The feeling of being trapped, the environment, the sound design, the uncertainty of what is real and even the style of music. Silent Hill shares very little in terms of low-level plot details with the movie, and yet they manage to be remarkably similar.


Friday, 8 October 2010

One Month after Amnesia's release

Introduction
It has now been pretty much exactly a month since we launched Amnesia: The Dark Descent. And since the post on a week after release was quite popular, we have decided to do a new overview on where we stand now. This time we will mainly focus on the sales and give some more accurate figures on how things have turned out for us.


The big picture
So, with one month of data to analyze, how did things go? I think it can be summed up with: Better than expected on all accounts! As of today we have sold a total of 36, 000 units (including pre-orders, but excluding boxed sales in Russia), and our goal, which would determine if we would continue or not, were 24,000. Having met and exceeded that goal already feels quite nice. Frictional Games will live to create another game!

15,000 (41.7%) of all sales were in the form of pre-orders, which is quite significant. Part of the explanation for this is that there was a 20% discount during pre-orders and we also believe that people are more inclined to buy a pre-order. With perks such as Steam pre-loading, people seem to think it is worth putting up money before release. And since there is no pirate alternative to a pre-order, it is more likely that people will go through with the purchase (more on pirating later). In any case, pre-orders is probably something we will focus on more for our next title.


Platform specifics
Gathering an exact percentage of sales for Linux turned out to be a bit complicated. Purchases made in our store gets all three platforms, which is the only place to get the Linux version. The total amount of sold units in our own store is about 5000. Since we can connect some of these sales with steam activations and similar, we can make a conservative estimate of 2500 Windows users, leaving 2500 left for Mac and Linux. And since this this is the only store for Linux users, we assume 70% of these are Linux. This means 1750 sold Linux units, or 5% of the total sales.

Mac sales are a bit simpler to estimate, and given the estimates from above plus some other data, comes to about 8% of the total sales. The interesting bit here is that just taking the last week into account the amount of mac sales lie at about 12%. This probably means that the Mac market takes longer to penetrate and that Mac owners might be more likely to buy an "old" game. Unfortunately we do not have data regarding this for Linux, but assume something similar happens there.


Media and user response
As we said in the last post, the response from the media and users have been overwhelming to say the least. Right now, we have 86% at Metacritic, 90% from users on Gamespot, and so on. Considering it is a niche and story based game this feels extra nice (which, as Kieron Gillen points out on RPS, usually get lower meta-scores). We could not be any happier than we are with this response.

So how has this affected the sales? Well it is obviously impossible to say what we would have sold with worse grades, but what we can do is to see what correlations there are between positive reviews and spikes in sales. It turns out there is pretty much none. The only correlation we managed to find was with combined release of the Zero punctuation and Gamespot reviews. These were out very close in time and almost quadrupled sales compared to the previous days before (about 150/day to 600/day). It even seems like this boost still remains.

Apart from this example, it has not been possible to find any other correlations. Part of this is probably due to the noisy nature of the data; many reviews come out at the same time they overlap and it is not possible to discern individual contributions. However, when articles have been alone in time, there still have not been any noticeable spikes. One explanation is that it might be hard for people to find out where the game is bought, as our website is seldom mentioned in previews/reviews. This is especially true for the time before the pre-order became available at the major online retailers. Another explanation is that most reviews have more of a long term effect, instead of an instant sales boost. What this means is that reviews convince players that already know about the game to purchase it, instead of acting as a PR catalyst.

What reviews does do is to make other publications find out about you. Getting a review in a high-status outlet have meant mails from many other publications and convinced other media folk that the game is worth writing about. Thus, as mentioned previously, good review help sales in a long term perspective.


Pirating
Now it is time to discuss pirating and how this has affected us. First of all, it is quite easy to see that there are tons of torrents/shared files of Amnesia available. When we search the web to see if any news on Amnesia has popped up, almost 50% of the results go to a pirated version of the game. This is of course makes us sad, but it is also something one has to deal with when living in today's world. We are well aware that the same technology that allows pirating of our game, is the same that enabled us create the game in the first place. Without a fast Internet and a connected world we would never be able to work together or distribute our games. But this does not mean that we should just ignore piracy and it is important to figure out what kind of impact it has on us.

As I have said, the sales have been above what we had expected, but compared to the response we have gotten it still feels kind of low. For example, the very hyped Minecraft has gotten more than ten times the sales compared us. While being a vastly different game compared to Amnesia, there are some differences that are worth discussing. In terms of the amount of PR received, I would say that Minecraft is more well known, but Amnesia is not far behind. Google gives us two times the hits compared to them and a popular pirate site gives Minecraft double the distributors compared to us. We have gotten more reviews from popular outlets, Minecraft has gotten more viral-like PR. As I said, I think Minecraft has the upper hand here, but not by that much. Still, Minecraft has a over ten times the sales compared to Amnesia, which is a huge difference.

Our conclusion is that a large part of this is due to the lack of pirating in Minecraft compared to us. As I mentioned above, Minecraft has 10x the sales, but only 2x the torrent distributors. A Google search on the subject also turns up twice the hits for Amnesia. It seems like more people are pirating Amnesia and we think there are two main reasons for this. Both of them are related to the single-player nature of the experience.

First of all, once you have played Amnesia there is little meaning to play again. A person pirating the game and finishing it has no real reason to go back. So even if a player likes it and determines that it is well worth paying for, there is no incentive to do so. It is quite common to read on forums that people have downloaded a pirated version and say that they will probably buy it later. The question here is how many actually does this? Even if you really liked the game and want to support the developers, it basically feels like money down the drain since you get nothing extra after paying. This is not the case for a game like Minecraft where more content is released all the time and the game is designed to be highly replayable (and darn it for that, damn time consumer!).

The second reason is the lack of any proper protection. Not only does Amnesia not have any real protection from the start, there is almost no way for us to force people into buying ad-hoc. What we can do is to release patches, but this only affect people that have not been able to start the game, a small part of the user base. So once the game is out we are basically screwed and we can not do much to make people chose a legal over a pirated one. Minecraft requires a server connection and is constantly updated, effectively pushing people towards buying the legit version.

So what to do about this? One way is to create different kinds of games, where we can implement these sort of things. But that just feels wrong. A developer should not design a game based on how it can be protected and doing so can only lead to bad things for our games (to avoid feeding potential flames; this is based on what we want to do with our games, not what we think of others who might do this). What we want to continue doing is to create single player games that try to evolve the way in which videogames tell stories and evoke emotions. Another option is to expand our horizons and try other platforms. This is what we are currently looking into. We do not know what this will mean as of yet, but hopefully we can continue to expand platforms and not limit them.


Our situation
So what does all this money talk mean for Frictional Games as a company? The most positive news is that we have recouped all expenses from creating Amnesia. This is of course awesome, but it needs to be taken into account that we worked long days at a very low salary, using minimal expenses. Our next game will not be possible to do on a budget like that.

For the team, it is now finally back to more normal salaries. This still means that we are paid below, or just at, minimum wage (there is not an actual minimum specified by law, we just mean according to standards) here in Sweden though. We have made some calculations and if we were to increase salaries to normal levels, our current earnings would only last for a year and a half at most. We estimate that it will take at least two years to complete our upcoming game and there are more expenses involved than salaries for the five team members (check the credits for Amnesia!). So right now, we have to stick to having low salaries and see how sales pan out.

At the time of writing our daily sales are at around 350 units, but it fluctuates quite a bit and it is hard to see how it will be in the long term. I said in the previous post that the sales were dropping drastically, but this actually stopped a day or so after posting. Our hope is that it will end up at around 70 per day, as this means that the day-to-day sales would cover monthly salary costs. The money earned at launch could then be used for other expenses and perhaps help us reach more common wages. Very hard to say when a steady level will been reached though. For the Penumbra games it happened two weeks or so after release, but PR for Amnesia is still pouring in, so we assume at least another month.


Final thoughts
Hopefully this post has give some kind of insight into sales for a PC game and where Frictional Games stand now. We are really happy how Amnesia have turned out in all ways. While sales could have been better, people are still buying it and will hopefully continue to. If it stabilizes at a good level, things are looking very bright indeed.

We also feel that we finally can leave Amnesia behind us and start focusing on our next project instead. As this will be our first project where we know from the start that we can finance it ourselves, it will be very interesting to see what can be done. In all our previous games, we have mostly rushed through the production. This is will be the first time we can take our time and make sure that all is the way we want it to.

Exciting times lie ahead and we hope you all will follow us into the future as well!


Saturday, 2 October 2010

What videogames lack: Deeper Intent

Tonight a watched a fantastic documentary called Dear Zachary: A Letter to a Son About His Father, and it was a true emotional roller-coaster ride. The film is a about a film-maker starting to make a movie in memory of his murdered friend, when some unexpected developments ensues. It is an experience, straight from reality, that swings you between laughter and heartbreaking despair. I urge you all to see it.

The reason why I want to bring this up, is because this movie has something that video games lack: it has been made with the intent to share something deep and meaningful. It is has not been made to create a fun experience or for commercial gain. It has been made from love and with a very serious goal in mind. The passion that was put into this movies seeps through every frame and it really brings the movie home. Kurt Kuenne, the maker of the film, has something he is truly emotional about and pulls no punches in driving that point home.

This sort of thing just isn't found in games. Almost all games start as some kind mechanic, which is then iterated until fun enough, and anything resembling a deeper meaning is slapped on afterwards. Sure, there are games like Shadow of Colossus, that strive toward creating a battle with gigantic creatures, or Everyday the same dream, which quite obviously go beyond its low-level mechanics. But these still lack the kind of emotional investment that is seen other media. I understand a film like Dear Zachary gets a lot of emotional weight from being a true story, but that is not the point. What I am after is the motivation that drove its creation, the passion behind making it and uncompromising attitude in the way which the meaning is brought forward.

The motivation I am looking for does not need to be the gut-wrenchingly sad story that Dear Zachary tells. It can be whatever emotional experience that lies the creator close at heart. Sad, funny, beautiful, aweinspiring, interesting, disturbing, educational, it does not matter. As along as the end goal is not just to give the player a fun past time, it is a step in the right direction. Screw developments in storytelling techniques, writing, facial animations, full body input, etc. When games are a made with only a fraction of the passion that went into Dear Zachary, the videogame medium is on the path towards true greatness.

(For those interested, two more posts discussing similar themes are found here and here).