"Verdant Ascent" is a Portal 2 map created during the course of four weeks, using the Portal 2 Puzzle Maker and Hammer World Editor.


My main ambition with this level was to create an innovative and fun puzzle, while further improving my level design and Hammer skills.


  • Finished in four weeks - at 50% (4 hours/day).
  • Created with the Portal 2 Puzzlemaker and Hammer World Editor
  • Used visual scripting to create functionality
  • Custom visual style - An abandoned, overgrown chamber

The first two weeks were spent iterating on a core concept which the map revolves around.

Getting started


I started this project by establishing a clear goal; to have the core gameplay ready within two weeks. The in-game Portal 2 Puzzlemaker was an excellent tool for this purpose, as it enabled me to quickly iterate on new concepts and ideas.


During the first days, I brainstormed through roughly ten different puzzle concepts. I could spend around 2 hours on a concept, ask a fellow student to try it out, and afterwards scrap it in order to experiment with other ideas. Every new attempt taught me more and more about what was fun, and what did not quite work out.


At the end of the first week, I had a concept which players really enjoyed, and which I was satisfied with.

Bringing the level to life


These are the three rules which unified the concept:


1. The level should consist of several floors, where the player must climb upwards to reach the end at the topmost floor.


2. Every floor should be guarded by a turret, which the player needs to deal with to gain acess to the rest of the room.


3. The puzzle on each floor should require the use of mechanics from previous rooms.


With those three rules in mind, I spent three days blocking out a rough version of the level. As a first iteration, I was satisfied with the size of the rooms and complexity of the puzzle. It was now time for some heavy playtesting.

The core concept: Climbing upwards, 'assasinating' turrets and focus on reusability of mechanics.

Iterating on an established concept - Problems & Solutions


Having fellow students trying out my level was by far one of the funniest and most interesting parts of creating this level. Many of them succeeded in completing the level in ways I had never imagined, and even managed to cheat the puzzle design in some situations. I received tons of great and honest feedback during those two days of testing and iterating, and I'm really grateful as it helped improve my level.


In the next segment you can read about three of the problems which occurred most frequently, and my way of solving them.

1. Annoying puzzle early on = many loading screens


After getting rid of the turret, the player originally had to continue the puzzle by using the speed gel to propel themselves forward, catch the ball mid-air and make sure to land on the other side without falling down in the deadly water.


This segment was for a normal player much harder than I expected.

It usually took roughly ten deaths to make it - forcing the player to experience a 10-second loading screen and re-doing the part with the turret every time.


To solve this, I changed the puzzle, making it rely more on logic rather than quick reflexes. I also removed the deadly water - leaving the hole empty - and added a jump pad at the bottom. If the player fell down, they could now easily jump back up and make a new attempt, instead of losing progress and being forced to experience a loading screen.

Before, and after my solution. The puzzle now revolves more around logic rather than quick reflexes. And no more annoying deaths!

Players were mislead to head into the tunnel, only to find a dead end. Removing the lower part of the wall solved this problem.

2. Players felt mislead into an impossible solution


Having completed the main part of the first floor, the player now had access to the sphere, which could be inserted into the receptor. This turned off the tractor beam coming from the tunnel, enabling the player to jump over to the second floor without getting stuck in the beam.


Unfortunately, most players came up with an entirely different step after having inserted the sphere:


"Oh! The beam turned off. I see light coming from the tunnel and the indicators lead there. I should head into the tunnel!"


Not only was it extremely hard to get into the tunnel, but even if the player succeeded, it just led to a dead end. I fixed this by removing a large part of the wall, showing clearly to the player that she/he should not head towards that direction.

3. An anti-climatic ending


Imagine spending twenty minutes on reaching the last part of this map, only to fail with the last puzzle, being forced to re-do a major part of the map. Annoying right? That was the experience of the majority of the players when reaching the end.


The last part involved using the speed gel, flinging yourself forward to the end of the map. Limited vision in combination with the angle of the ramp led to players either gaining too much or too little speed when making the final jump. This usually resulted in falling down to the second floor, instead of completing the map.


Removing the ramp was a really simple, but effective solution. The player now had full vision of the end, and could decide the timing of the final jump for herself/himself. Players were pleased, as no more annoying falls happened after this small tweak.

The last part of the puzzle originally made many players fall to the second floor instead of completing the map.

Aesthetics in the Hammer World Editor


Now that the gameplay was tested and polished, I spent my remaining time improving the visual style of the map. I studied several chamber styles by playing varying parts of Portal 2, and decided to go for the "Overgrown" style to make it feel more unique.


Reskinning the map to this visual style proved to be quite the challenge, especially lighting-wise. Portal 2 maps with the 'normal' visual style make use of lamps and other artificial light sources, meaning heavy use of point- and spotlights. Overgrown maps are entirely different, as they usually feature destroyed roofs and non-functioning artificial light sources, making sunlight coming from the holes in the roof the main source of light.


Luckily, an entity within Hammer called "light_environment" exists for this exact purpose - projecting light downwards from the specified skybox zone. Using it gave great results, but many key areas still turned out too dark. To solve this, I located those areas and filled them with really subtle point lights in a way that would still make it look like sunlight was coming down from the roof.

How the level used to look with the 'normal' chamber style from Portal 2.

The 'Overgrown' version of the level, after editing it in the Hammer Editor.

Closing thoughts


Given the time I had, and the fact that I had no previous experience of creating Portal 2 maps, I am very satisfied over how my map turned out. I learned a lot about the Hammer Editor and had a great opportunity to further improve my skills of taking a concept to a complete level. Iterating on the gameplay and looks of the level based on feedback from fellow students and people from the Steam Workshop was incredibly interesting and helpful. It further showed me how important it is to test the level one creates.


There are lots of things that could be improved with the map, given more time. One of the bigger problems gameplay-wise, is that it felt too linear to many players, especially experienced ones. I would have liked to increase the complexity of some puzzles, to lessen the obvious step-by-step solutions some of them suffer from.


Several things could be improved with the visual part of the map as well. Even though players were generally very pleased with the overgrown look of the map, some parts of it, such as the info-sign at the beginning, look too functional in comparison to the rest of the chamber and could lead to immersion-breaking. I would also have liked to add broken lamps and non-functioning cameras to the map, to further accentuate the decayed/abandoned style.

Playthrough and Solution