03 October 2009

Automating human activities

As either player or programmer, I was just astonished that first time I saw Wolfenstein 3D, the forefather of the series Doom, Quake, etc., which just addicted me. I had never seen something similar in games before. That first-person action play, those 3D worlds to explore.. An evolution chapter in videogame entertainment was coming and I was there experiencing it.

Ok but, from a game mechanics standpoint, there was not much new. It was the usual predefined walk-through facing enemies, bosses, getting keys, opening doors, or solving some tricky puzzle. All stuffed with some nice storytelling in between. A walk-through that starts and ends, just like a book. And when the book ends, you come back to the shelf to buy another one.

When I came out from the sewer system of the Imperial city in the game Oblivion and saw the world outside, I felt free to ignore the addressed goal and go everywhere doing everything. That was weird and amazing at the same time.. Well, soon I found out that I couldn't actually go everywhere doing everything, but that initial illusion made me think over it.

In my conception of games, a game should be played repeatedly without loss of fun, and I believe that a videogame shouldn't be less. The limited fruition has more to do with books and movies and is of course a convenient business model, but it's not what I expect from a game. Definitely, I came up to the conclusion that a game shouldn't be intended as a predefined walk-through.

In last decade we've been observing an increase of realism in videogames. Though realism is not exactly all that entertains, it does actually make the experience more immersive.
There are several aspects contributing to improve realism. But it is the visual what has been mainly fed, due probably to the graphic hardware capacity that grows year by year.

People buys new powerful video cards and expects that the new coming games will fit tight in them. So soon we will see very visually realistic NPCs. But what happens when those NPCs will speak or act someway?

I believe that the visual realism has been favoured excessively.. Probably to satisfy the market expectations. Probably to avoid of getting the risk on improving other aspects, trying new game mechanics. Anyhow this has been requiring ever-increasing hordes of artists. Teams have been growing and growing, so management complexity and costs.. Videogames have become more expensive now and needer to meet a wider consumer market. And this has someway led to dumber games (where the more is less..).

In order to solve this, someone tries to keep teams small and improves the handling of content, addressing to a more massive content creation (John Carmack, MegaTexture). Others try to control resources and costs managing better and globalizing production.
Anyhow, along time, it's been experienced a slight divergence between the growth of graphic hardware and the ability of teams to create the content required, which leads to think that this development model is somewhat unsustainable in the long run.

Realism makes experience more immersive. But content cosmetics is only one aspect contributing to the overall realism.
When I play a game I expect the world is not bound and NPCs should answer realistically and convincing, and not repeating. Because reality doesn't repeat. Predefined behavioural patterns are far to be realistic. Also the sandbox effect and predefined goals are not realistic.

We want a freeform and realistic gameplay. But how to define things which are not actually predefined and yet convincing? I believe the technological answer is somewhere between human pre-made content and procedural generated content. Let's say, things that are someway forged by procedures but that lie into boundaries of real things. Definition won't be expressed in details but by means of abstraction. For instance, I won't put a forest leaf by leaf, but I will just say there is a forest made by those classes of plants, arranged by those classes of patterns.

Procedural content generation is problematic and has well known cons. But I believe computer programming is for automating human activities. And procedural content generation is actually about automating human activities.

This post is just another mind rambling of mine where I'm not going to suggest any recipe explicitly. But I want to point out some pros of procedural content generation:

  • Typically 70% of development time is spent for coding tools (developer side) and create content with those tools (artist side).
  • Procedural can lower time and resources needs so that management complexity and costs can be kept under more sustainable boundaries.
  • Procedural enables small teams to start development.
  • Small teams can invent new game mechanics better than huge ones.
  • Procedural reduces touch of memory and increases performances, allowing you to get more from hardware.
  • Procedural enables developers to invent open game grounds where exploration and interaction are not bound, behavioural patterns are not predefined and the overall experience is thus more realistic.