A New Release of the Free Alpha

 

Against the Wall - Gold Brick Forest

Today I released an updated version of Against the Wall! There is one new area in the forest that serves as an introduction to gold (auto-retracting) bricks. There are also a number of visual enhancements and gameplay tweaks. Most notably, there is an option for “Falling Death” in the options menu. With this on, falling at a rate of around 50m/s (~112 mph) causes the player character to die upon landing. It is off by default, but I would still like some feedback on it.

I’ve been working on this update for much of the past two weeks. Some of the gameplay additions from December and from my time in Texas are not a part of this demo. Rather, those art assets and brick types will be saved for closed beta releases and the final game.

This week my composer Zoe Blade will be working on the soundtrack for the game. I’ll get back to you with updates on how that goes. Also, I’m going to begin looking for artists in earnest now. I’m at a point where the game is playable and fairly stable, and I need to populate the world with interesting environments and events.

Let me know what you think of this release in the forum or by contacting me. Thank you!

Into the Wall – Cave Bricks

Against the Wall - Inverted Cave BrickLast weekend I was with relatives in Austin, Texas. Not much of a vacation for me, especially since we were on the outskirts and did not go out much. No matter, I got a ton of work done with the game.

After two days of solid work, I created inverted “cave” bricks. Rather than move out from the wall and into the sky, these bricks move into the wall, forming recessed shelves. This brick type would break how the game world was originally programmed, so a ton of work was needed to get them to work.

I won’t keep you in the dark about what I did, but this will be a bit technical: The wall is divided into small grids called “chunks”, each 64×64 meters in size. Each chunk has one box-shaped collider which covers collision for all the bricks that are flat on the wall. Cave bricks would require me to punch holes in this collider, which really isn’t possible. However, the scripts that detect, highlight, and interact with bricks all require the box collider. Solution: If the chunk generator finds an cave brick, it turns the box collider into a “trigger,” thereby removing normal physics collision but allowing the brick manipulator to find bricks on the wall. The game then generates a complex “mesh collider” that is based on the mesh used for the chunk’s bricks, only with holes where the cave bricks are. This mesh is placed right on top of the trigger and is used for physics collisions with the player and other objects.

In the process of solving some problems with cave bricks, I had to invent “persistent bricks.” Normally whenever a brick is flat against the wall, it has no collision or scripts of its own, it shares all of that with the chunk that it belongs to. Special bricks would become inactive as a result. For example, bounce bricks would stop working while not extended. The solution was to add a function to the bricks that would prevent them from being assimilated into the wall. Cave bricks have special scripts that would be lost if they ever merged with the wall, and this prevented that problem once and for all. Also, bricks that surround the cave bricks would have to be persistent to ensure that their full geometry is drawn when flat against the wall. Otherwise, only the front face is drawn and the cave bricks would expose the undrawn areas.

The whole process was actually much more involved than that, as issues kept popping up that required solutions. The most typical problem was the frame rate dropping because of too much memory being used to generate all of the cave bricks, the geometry of the persistent bricks, and the mesh collider. I eventually whittled it down so that now the performance cost of a chunk with cave bricks is only a little worse than a normal chunk.

Since the weekend, I redid the cloud system so that the meshes are procedurally generated and all use a texture atlas. This will save a bit on performance. I also created bricks that auto extend once retracted, fixed a bug with the cave bricks and optimized their generation, and compressed the brick texture atlas so that it runs faster, using less memory. That’s just about it for now. Will keep you all posted!

EDIT: Added the image and adjusted the title, and elaborated more on persistent bricks. I’ve also decided to rename the inverted bricks a “cave bricks”, which is a bit more descriptive.

Adding Fall Damage and Atmospheric Effects

Minor update: The past week I spend a lot of time making a number of refinements to the game world.

  • Fall damage will now be in the game. Movement speed of the player character (PC) when hitting a surface determines how bad the damage is:
    • < 20 m/s, the PC will land safely.
    • At 28 m/s, the PC will stumble but can still move.
    • At 36 m/s the PC collapses into a heap for a second or so.
    • >45 m/s the PC will die. (Terminal velocity is 60 m/s).

    Of course there are huge liberties taken with physics for playability. The PC has to hit a surface at 98 mph in order to die! Even though this is generous, it still only takes three seconds of falling to die (a distance of ~60 meters). To do: I’ll also make this damage cumulative. PCs will die if they receive a good deal of damage over a few seconds.

  • Fall effects were added. The camera will change its field of view when the PC moves at high speeds. The FOV is corrected as the PC slows down. There is also a special wind sound effect that gets louder as the PC’s speed increases.
  • I added dust special effects to the moving bricks as they come out of the wall. To do: add these effects between extended bricks that are moving.
  • I changed the side textures to mitigate some of the stretching. It is still noticeable, and I will eventually have to split the textures between high and low res.
  • Optimized some of the audio scripts and fixed a a few glaring bugs.

My next step is to create two new brick types: inverted and auto-extended. Inverted bricks go into the wall rather than out. They are rather difficult to pull off, since they require special treatment with regards to the procedural generation script and they modify the bricks that surround them. It’s complicated. Auto-extended are the opposite of the auto-retracting gold bricks, they always pull themselves out when pushed in, forming barriers that the player will need to dig past.

Also, I am visiting family in Texas tomorrow. I’ll be working via laptop during this time, but I do not expect to get a lot done until this Sunday. I will need to release a testing version of the game to my beta testers in a week or so, to test the falling mechanics and brick types. That’s it for now.