#19 Level 2 – The “catching” mechanic
Welcome to the nineteenth devlog!
With level 1 finished, I can finally start work on level 2. In this devlog, I will explain my though process and how I went about designing this level.
The new mechanic
Each level introduces a new mechanic. After some deep thinking, I decided this level should teach players that they can catch packages (that are flying through the air). It’s a really simple thing: you just hold the same button as you use for grabbing packages, whilst a package flies by.
But that’s what I wanted: something as simple as possible. If I don’t explain you can do this, many players might not even try it.
The first level had very few height differences. I wanted to change that! For level 2, I wanted there to be huge height differences, so that:
- Going down is easy (just let yourself fall down)
- But going up is really slow
This would encourage players to cooperate and think a little more about their positioning.
After some sketches I decided on the following layout: a few layers of scaffolding, each one higher than the one before it. Between the scaffolding is a loose, swinging bridge.
Most importantly: you can only go down. The height difference is just large enough that it’s impossible to use the scaffolding to move up.
Instead, to the left and right of the scaffolding, there will be trampolines that allow you to go up. (Spoiler alert: the trampolines were eventually replaced, and by the end of the devlog I’ll explain why)
And last but not least: I decided to add an extra package type and dropzone. The first level had 2 of each, this level has 3 of each. Just to keep it challenging. As always, it tries to make deliveries go to the dropzone that is furthest away from the starting location. Also to keep it challenging :p
(How do you tell packages to take the most difficult route? I simply do NOT allow deliveries along the easiest route. The dropzone that is closest to the starting location of the package, is saved as an “exception”. This means that a delivery is never allowed to move from that starting location to that particular dropzone, because it would be too easy. This is all set manually.)
The new toys
Besides a new mechanic, each level should also introduce a few new (interactive) objects to play with. For this level, I chose:
- Trampolines: they are easy to use and understand, and I need them to allow players to move up.
- Swinging bridges: I really like these, in any game. They create more action, more movement, more instability. At the same time, they provide a natural and useful way to walk across distances. It would be much more boring if all the ground was just “grass” or “static scaffolding”
- I just call them “swinging bridges”. It’s probably not the correct name, but everyone knows what I means: those bridges that swing in the wind.
- Wind effects: there’s a wind blowing in this level! The higher your player is, the stronger the wind effect. This essentially means that you cannot stand still (because the wind will blow you off the scaffolding), and sometimes need to plan a different path if you even want to get somewhere.
- This wind effect is nothing more than a “pulse”. Every X seconds, the game sends a signal to all players and pushes them really hard into the current wind direction. Between “pushes”, the wind literally does nothing. This plays and feels much better than if I added a constant force to the players.
These were the results from testing the game (with 2 players):
- The trampolines are too strong => sometimes, you suddenly jump like 100 kilometers into the air, and it takes five seconds for the player to even come down.
- The trampolines make it too easy to move up. You only need to walk a little to the side, and you’re already going up.
- The swinging bridges are a little too … stable at the moment.
- Besides that, the level works well! It’s quite easy to see what’s happening and after playing a minute players already get a sense of “hmm, it’s really inefficient to move up/down all the time, maybe we can use a better strategy”
- A subtle wind effect works well. I don’t think it should be any stronger than this, because then it just gets annoying and unplayable.
How do we solve these issues?
- Replace the trampoline with a fixed elevator. This elevator goes up and down automatically, but it’s REALLY slow.
- Bridges currently only “move” along one axis => the bridge can “hang” a little in the downward direction. I can also allow movement in another axis, which would make the bridge flip to the left/right if you place your weight too far from the center. Maybe this will make it too unstable, but I had to try.
- To explain the “wind effect”, I wanted to add a huge sign that says something like “WARNING! High wind speeds at high altitudes!”. I also thought a weather vane (… wind sock?) that shows the current wind direction would be helpful.
Improved level 2
This is a video taken after iterating and improving the level for the first time. (I also already started work on the campaign screen. For now it's just a cube that can drive around a barebones terrain, and if you drive onto a certain platform, the associated level starts.)
And this is what the final, improved level 2 looked like:
As you can see, a LOT has changed. It took me a few iterations to find the best version of the level.
For example, I noticed that the second and fourth bridge were completely unnecessary. There was absolutely no reason to walk there, they just made the level bigger and more bloated. So I removed them, which allowed me to make the level much smaller and more compact.
I also added back the rain effects and “stormy” environment I had already created for the old level 2.
The wind sock not only shows the current direction, but also has a little windy animation! This was accomplished with a very straightforward vertex shader:
VERTEX.x += sin(TIME + VERTEX.z)
It displaces the vertex in the x-direction (perpendicular to the wind sock). By adding the Z-coordinate, different parts of the sock are displaced at different times, which creates this nice wavy effect. (Otherwise, the whole wind sock would just move to the left/right as one static object.)
I plan to write a much more thorough devlog on Godot shaders in the future, because there’s a LOT of awesome things you can do with them.
And lastly, I experimented with different heights and distances between the scaffolding, ground and elevators. I was looking for something that takes SOME skill to navigate, but not too much. It’s only a level 2, after all.
At the final height level, the only way to go up is by using the (slow) elevators. Going down is easier/faster in most cases, but some platforms still require the elevator. (For example, the top and middle bridge are too far apart to jump down. You’d just fall and die.) The fastest way to move packages, is by dropping them and asking other players to catch it. Cooperation!
(Of course, players should discover this solution by themselves. As I said before: by reading these devlogs, some of the best strategies for the levels will be spoiled. Sorry about that, but otherwise I can’t explain my game decisions.)
Level 2 is finished! Obviously, it needs a lot of polish and playtesting, but that’s not important right now. It’s more important to create the core of the game. I will now start working on level 3, and write some devlogs about other parts of the game (like how I was able to make the game playable with both controller and keyboard) in the meantime.
Get Package Party
Leave a comment
Log in with itch.io to leave a comment.