Building a Better Wall

This past week, I occupied myself with a few tasks, major and minor. A number of these changes relate to the game’s presentation, player interaction with the world, and the game’s feel.

Just Another Brick in the Wall

For a while now, I have been using a texture that defines the border of a brick, and attempts to simulate a bevel. Without it, the wall appears as a solid grey stone surface. The texture would stretch out over each brick face indiscriminate of the brick’s size. As such, 1×1 bricks and 8×8 bricks both had their front faces largely defined by the same image, the latter with noticeable stretching. To fix this, I created a large texture atlas with 8 permutations of the texture, each of a different size. When a brick is created, it is given the coordinates of the correctly sized version of the texture. Here are the results:

New Bricks

As you can see, the older brick texture is stretched out over each of the bricks. It’s a huge improvement, artistically (looks more clean and professional). The sides of the extended bricks will also need to be included on the texture atlas, since stretching is still visible there. I will be experimenting with adding some slight discoloration to each brick to add some variation. I will also experiment with adding random cracks and imperfections to the bricks.

Holding Things and Wand Motion

I did a major overhaul of the system that governs picking things up and putting them back down. It’s smoother, feels better, and much more stable than the earlier implementation. This system accounts for all player interactions with the environment that are unrelated to brick movement, so  it was important that I square this one away.

Also, the wand is no longer fixed in place in front of the player… or rather, it is, but it does not feel that way. It rotates a bit in response to player movement, complementing the wand’s movement bobbing. The player turns left and it takes a little time to rotate back into position.  In other terms, before it felt like a Doom gun, now it’s more like the device from Portal.

Dynamic Weather

Before, weather was static depending on your current biome. Rain, snow, fog, etc. each effectively had their own biome. Well, I now have a more dynamic system that randomizes the weather every X minutes, based on the “climate” attached to the current biome. Should be a nice atmospheric touch. Now I am debating whether adding a day/night cycle is worth it. Could make things that much more interesting if the world is always changing around you.

Misc

I did some content work on a city. I had an idea for a simple one-shot puzzle mechanic that I think will be fun. That’s all I’ll say about that.

I am going to Steam’s Dev Days in Seattle tomorrow. It will be a welcome break from NYC, and there will be a number of interesting panels there. I want to get my hands on one of those Steam controllers to see what the deal is with them. I’ll do a post next week on what I’ve learned there.

Also, Spelunky’s has gotten its claws in me with the daily challenge.

One Step At A Time

For the last week, I’ve been working out many of the kinks in the game and taking some time to update the art. I am happy with the progress so far, but I have a long way to go.

I’m using an app called Trello to manage all of my tasks and bugs. It’s pretty satisfying to fill out and label a card, then drag it into the appropriate column.  You should check it out if you have an extensive todo list (it beats paper).

Next week, I’ll be going to Steam Dev Days, a small Seattle conference for indie devs. I was invited thanks to Against the Wall getting greenlit on Steam. No clue what to expect from it, but I’ll keep you posted.

Art

My time spent on the art was to give things a flatter, slightly more abstracted look. Check out this comparison:

Improved TexturesThe new textures are much nicer, but perhaps they could use a bit more color. This will be an ongoing process.

For the game’s reticule, I am now using a single dot in the middle of the screen rather than a crosshair. This dot has a shader that inverts the colors behind it, like the crosshair in Minecraft. When pointing at a dark surface, the reticule becomes white, and when pointing at a bright surface like the wall, it becomes black. This is so that it is almost always visible.

Oh, and now when you look directly at the sun, the sun beams grow and fill up the sky, a blinding white light. Just a little “game feel” thing that I quickly put together.

Biomes

Okay, the biomes are just not working for me. They clutter the wall in random props, slow down world generation, look ugly from a distance, and feel mechanical and out-of-place. Generally, I prefer the big, empty bone-white wall as an imposing edifice to climb. The plan now is to manually place the biome chunks in areas around each town to provide those locations some context. Perhaps I can make procedurally-placed biomes very rare and small. Eh. Right now I should focus on the core game experience, then I can come back to the peripheral stuff.

Head-Bobbing

Or rather, wand-bobbing. I don’t move the head from side-to-side like I did in early builds, just the wand in the player’s hand. There are a couple reasons for this: first, when aiming at something, any movement would change the target as the player’s head swayed left or right. Second, this kind of bobbing can induce motion sickness in some people.

I’n Portal 2, the gun is semi-fixed in front of the player and moves from left to right using a sine-wave. The exact same “animation” is the jump/falling animation. They also have the gun interpolate its position and rotation to match a point in front of the player, making it sway slightly when the player moves from side to side or jumps/lands. Half-Life 2 guns work the same way. Basically, they use a few very cheap tricks to get across the feeling of head movement. It makes the gun feel less stiff, taking a second or so to catch up with the player’s adjusted direction.

So the wand bobs instead of the player’s camera. I  tried the interpolation trick, de-parenting it from the camera and having it move to the position of an invisible object in front of the player. However,  the wand kind-of jerks around as it tries to reach the correct position/rotation, and can disappear if the player spins fast enough. I think that I can fake it by keeping the wand parented and faking the interpolation. I do not want to spend too much time on this, but really, the wand feels very stiff right now, like a mounted steady-cam.

Miscellany

This week I’ll be moving through my backlog of issues. QA for this game has been and continues to be an enormous task.

I’ve had pretty much only art and tech days for this past week, and not content. I think that tomorrow, I’ll whip up a placeholder collectible item. I also want to have interactive bonfires and fireplaces. That might be a nice touch.