YOUR BROWSER IS TOO SKINNY!


Eleventh Seal Progress

Friday, May 2, 2014

Brutalist Architecture

Just watched a Johnathon Meades documentary on 'brutalist architecture' and thought: I could procedurally generate that!

So I started with an image in my mind of what it would feel like walking down a main street of such a city, how the huge geometric concrete shapes would make you feel small, how the buildings would not be trying to fit into their environment, or make compromises. Then started coding.

 

Here's an early video:

 

To make the world infinite I created 9 districts in a 3x3 grid. If you leave the centre grid heading upwards, then it deletes the bottom 3 districts, and recreates them above you, so you end up still in the centre grid. The only trouble is that if you are running / flying too fast, then you can see the far off buildings being created in the distance, so that's why I added the fog.

Cubes for buildings looks boring. And adding textures to 3d models is faffy. So I went for using code to position plain primitives in different combinations. Each building randomly picks which of 5 different types of roof to have, to have windows or not, fences or not, which type of beams and ridges to use. In the end they didn't actually look that Brutalist, but that's not the point. They look good from a distance.

In my first test of the infinite landscape I found that when a district is destroyed and then returned to, the buildings are all randomised, which really broke the immersion. So I decided to use the X and Y coordinates as the random seed which creates each district, meaning it is the same when you return to it.

Taking balls to fountains unlocks the buildings in which you play a board game (string theory) to earn perks such as running, jumping and teleporting. When you have full speed and height enabled you can bound around the city just like I remember doing in Crackdown. I set most of the buildings lowish height, and then left some super tall skyscrapers which are more of a challenge to climb.

Gameplay For Infinite Worlds.

To pick gameplay that would work in an infinite space I started by having just things to collect, but that encouraged scouring a single area to pick it clean, which didn't encourage exploration. So I introduced being chased, because this makes the player want to travel a long way in a single direction, which best exploits the infinite world.

I also avoided making the spot where you start anything special, there is no hub or home or starting place, as this would have discouraged venturing too far away from a safe zone. Likewise all fountains have to be the same generic fountain, I don't want the player needing to return to anything they have banked in one place.

You also can't script anything relating to the players location.

I wanted to make something big and deep and profound, beyond just matching colours or shooting stuff. But telling a story with narrative arcs and characters who speak and emote and have facial expressions is difficult. So I decided to make the best of the tools I had, turn my limitations into strengths. I can't do character specifics or a scripted story, but I can do large abstract interactive things, I can do mood, and throw in snippets of dialog to suggest a theme, then let the players imagination do the rest.

You can play it here.

Inspiration:

* Sir you are being hunted.

    Procedural level design. Being hunted.

* Minecraft.

    Infinite world based on seed.

* Slenderman.

    Being hunted. Teleporting.

* Fez

    Pacifist exploration, unlocking and avoiding bad things.

* Blame, Ergo Proxy, Evangelion - manga

    Abstract angelic horror. Massive architecture.

* Studio Ghibli

* Seventh Seal

    Duel with Death. Empty / bleak tone.

 

Tags: Unity