Recently I’ve been trying to learn a little more about level design. I’ve always been fascinated by it because great level design is one of the things that can set a good game apart from an essential one. Arkane’s library is a perfect example of this – the developer creates these intricate spider-webs where, despite their complexity, you intuitively understand where to go. Dishonored is a world where you can use your Blink power to teleport onto rooftops, and potentially into places where the designers didn’t intend for you to even reach. Yet there aren’t invisible walls, there’s no “you are leaving the mission area” pop-up, and there’s nothing else breaking the illusion that you’re exploring a real city – it’s just smart level design keeping you hemmed in. That same attention to detail is what draws your eye to a hanging pipe to cross silently above the guards on the street below, or to an open window you can creep through.
As a kid, I used to sketch out Tomb Raider levels. I know, I’m amazed I didn’t get bullied too. I’d sit in class and make these obstacle courses on paper – obelisks for Lara to hop between and slide down. I’ve always appreciated the art form as an observer. For the past week, I’ve had a little fiddle about in Unreal Engine to try to teach myself some of the basics. I’m not expecting to switch professions and become a level designer, but it’s interesting to poke around in a game engine and see how everything works. I’m basically that kid everyone knew growing up that just opens up all his electrical appliances and gets grounded all the time. His name is probably Chris.
I also figured that learning some of the basics would help me as a critic. It’s easy to say something doesn’t quite work as it should, but it’s more useful if you can actually drill down into the why. The thing is, I’m coming to a bit of a realisation. Things don’t work because game development is like trying to paint a mural on a skyscraper while dangling from a strafing helicopter.
I didn’t get into this expecting to build Dishonored 2’s Clockwork Mansion. I’m not deluded. I’ll be lucky if I can make something better than Custer’s Revenge. In fact, I’ll be lucky if I can make anything. I’m a dipshit. So I started simple. I’m laughing at myself typing that: simple. Fucking idiot. Anyway, in the grand scheme of things, I started simple. I wanted to make two rooms connected by a door. I also made a light that you can turn on and off.
Now, Unreal Engine does not require coding knowledge. This is great news for someone who writes for a living and still sometimes cocks that up. “Do you want to learn a robot language that is also maths?” I’m alright, mate. Thanks, though. So yeah, Unreal Engine allows you to skip that and use blueprints instead. Blueprints are coding without coding. You grab nodes that represent things, and you place down commands to make those things do whatever it is you want them to do. Want to make an AI that runs at the player? Go for it. Want to make a box of TNT that explodes on player proximity? Sure. Want to make a door that opens and closes? Fuck you. Every object in the world’s behaviour is governed by your blueprints.
I started like most people would and watched a tutorial on how to make floors, walls, and a ceiling. I flattened a square down and stretched it out to make a floor tile. Then I duplicated that three times and made it a 2×2 floor, since it’s easier to change textures on a surface that’s modular, rather than one massive thing, like, I dunno, a game developer’s brain. I then duplicated them again and flipped the squares to make walls and a ceiling. I made one of the floor tiles lower to make the room a little more interesting, and I left a gap for a window in the top right corner. When I went to place my stairs, I noticed that I’d forgotten to tick snap to grid, so the entire thing was a bit wonky, but whatever, I’m never going to let anyone else play this and see my incompetence. The stairs that connect the lower part of the room to the upper clip through the wall, but nobody can get outside anyway. Why? I’ll get to that.
Next up, I created a light by following a YouTube tutorial. Let me tell you, I understood about 20% of the things in that tutorial because I am a certified genius. First I made a little sculpture out of a cone and clipped that through the wall to represent a sconce, which basically looked like someone had just punched a lump of clay and gone “there!” Then I plonked a light source above it. No bulb because how do you make a bulb? I can’t even figure out how to make a window, so that gap I made is just a hole now. Then I put a trigger box around the light, designating the area where the character can interact.
From there, I opened the level blueprint and added an event for the “E” key. Then I dragged the light source into the blueprint and dragged the wire from the node into another node called “set visibility.” I’m not going to talk you through this entire process because it will bore the shit out of you, but here’s what the blueprint looked like by the end of it.
Yeah, that’s just to turn on a light and make a textbox tooltip show you what key to press. This screenshot is from a tutorial I followed, and I actually skipped the text box bit because everyone knows the E key interacts. Also, like I just said – nobody else will ever play this. Here’s how the light looked in-game:
Next came the door. Now, doors are notorious bastards in the game development scene. Liz England wrote an excellent blog called The Door Problem, which outlines all the complexities that go into implementing doors. Think of all the things you can do with a door in Dishonored – is the door locked? Can you peek through the keyhole? Can you close it behind you? Can you blow the door up? Can AI follow you through the door? There are endless questions. Naughty Dog recently spoke about how much of a bastard doors were to implement in The Last of Us Part 2. It’s no wonder there weren’t any working doors in the Assassin’s Creed series until recently.
So I followed another tutorial and ended up using some starter assets for the doorframe and the door itself, and I ended up here:
The door would not open. This specific door problem was because I’d followed a tutorial from a game dev who speaks like an AI and clicks on things quicker than a Starcraft pro. I even slowed him down to half speed at one point and bits still went over my head. When he said, “Now you need to multiply that by a float” and put an asterisk in the search box, I was completely lost. No matter how I tried to find the node he brought up, I couldn’t. What the shit is a float? So I had half the door logic and no way to fix it. I tweeted about it and a hundred game developers descended from the heavens to tell me how. The thing is, they all had a completely different solution. Every one of them. What. The. Fuck.
In the end, I used a similar solution to the light, but without the button prompt. I told the door to open on proximity, as you can see in the image below. The top nodes are the door animation and the bottom are the triggers.
So, finally, I opened the door.
There were just two problems: the door is haunted and tries to eat you when you go near it, and the character model is too dummy thicc to walk through it.
I’m just doing this as a little side hobby, hoping to understand the things I write about a little better, but I am losing my mind. I can see why so many game developers go into other industries – it’s not for better pay, it’s so they don’t have to deal with these hinged bastards ever again. Anyway, I’m making a game where you blow doors up now. It’s called God of Door.
Source: Read Full Article