top of page

Portal 2 - Red lines

Project: Red Lines

Game: Portal 2

Statut: Publish on the Steam workshop

Evalutation: 5 stars on the Steam workshop, 450+ subscribers.


  • Create a non-Euclidian level

  • Design for mid-skill players

  • Duration, around 10 minutes for a first play



Before I started the level in hammer, I made several sketches to design the level layout and to have a clear idea of the gameplay idea.

Due of the time limitation of the contest, I wanted to keep a small test map, to finish this project in time and improve it, if I have time.

I used the in-game editor to quick prototype and choose which mechanic I will use.

Gameplay video


The player starts in a safe area, they need to explore to discover the non-Euclidian mechanic. Then the player needs to use it to access at the second part of the level.

  • To encourage the player to turn back, the front of the map is totally black.

  • There is light behind the entrance, to suggest that something is here.

  • When the player presses the button, the rest of the map appear and they can see its next objective.

  • The player needs to resolve the non-Euclidian puzzle to cross the gap.

The main room

In this room, the player has to connect 3 lasers with the help of the non-Euclidian portal and laser cubes.

  • The room is separate in 2 parts to be clearer for the player: The left part is where they find exit and laser receivers. The right part is where they find the laser emitters.

  • The exit is clearly defined with lights and elements of decoration.

  • The non-Euclidian mechanic is in the center of the place to highlight it.

  • To help the player to understand the mechanic. One part of the puzzle consists to take a cube to active the laser receiver.

Scripting part

Non-Euclidian portal

Due to the technical limitation of the new mechanics (I can’t put more than 2 non-Euclidian portals at a time), I had to “script” elements and I built the level in a way that the player can’t see the change.

  • At the start of the level during loading, I attach the first portal to the second.

  • When the player activates the button with, I relink the portal in the room with a second one in another space.

  • When the player reaches the second part of the level. I destroy the 3 first non-Euclidian portals to save resources and I activate the last ones in the main puzzle area.

Portal alignment

After playtests, I notice that players complained about portal placement. I fix this problem with quality-of-life improvement. I used the ‘’info_placement_helper’’ function. This tool is a portal auto aligner. Portals fired within the entity radius will automatically be positioned at the center.

Non-Euclidian portal in Hammer

Portal alignment tool in Hammer

Environnement music & sounds 

To reward players when they resolved puzzles, I added sounds and music in the map. For example, the player links a laser and the music start to play. When they link a second laser, the music becomes more complex and so on.


To proceed at the end of the map, the player has to activate the 3 laser receivers and then the door open.

To bring some quality of life in the level, I added indicators, the light turn orange when a receiver is activated,it’s easier for the player to understand when they resolve a part of the level.

Receivers are linked to a “env_texturetoggle” that changes the texture of all objects that have the same name given in parameter. When a receiver is activated, it increases the texture index  by 1 and that turns the indicators light to orange and vice versa when the player turns off a receiver. 

Schema of the door system

Portal 2.png
bottom of page