![](https://static.wixstatic.com/media/c37414_05077c2b8ddd460d8b8f9123f2a20ffa~mv2_d_7680_4320_s_4_2.png/v1/fill/w_96,h_54,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_05077c2b8ddd460d8b8f9123f2a20ffa~mv2_d_7680_4320_s_4_2.png)
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.
Intention
-
Create a non-Euclidian level
-
Design for mid-skill players
-
Duration, around 10 minutes for a first play
![téléchargement.jpeg](https://static.wixstatic.com/media/c37414_3fc0b48f6d924f6e855891b377afba53~mv2.jpeg/v1/fill/w_514,h_289,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/t%C3%A9l%C3%A9chargement.jpeg)
Prototype
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
Introduction
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.
![20210923132148_1](https://static.wixstatic.com/media/c37414_499cbe1dcd294c87a5136c9b9397815a~mv2.jpg/v1/fill/w_147,h_83,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_499cbe1dcd294c87a5136c9b9397815a~mv2.jpg)
![20210923132313_1](https://static.wixstatic.com/media/c37414_b50ca43277804f22bf3a9af9ed07b9e6~mv2.jpg/v1/fill/w_147,h_83,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_b50ca43277804f22bf3a9af9ed07b9e6~mv2.jpg)
![20210923132352_1](https://static.wixstatic.com/media/c37414_b5bc4777d8fb4c6a8f4896f2f7ea7308~mv2.jpg/v1/fill/w_147,h_83,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_b5bc4777d8fb4c6a8f4896f2f7ea7308~mv2.jpg)
![20210923132148_1](https://static.wixstatic.com/media/c37414_499cbe1dcd294c87a5136c9b9397815a~mv2.jpg/v1/fill/w_147,h_83,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_499cbe1dcd294c87a5136c9b9397815a~mv2.jpg)
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.
![20210923132451_1](https://static.wixstatic.com/media/c37414_576b83cc3ccd42fcb8b3bcfcfef492c3~mv2.jpg/v1/fill/w_147,h_83,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_576b83cc3ccd42fcb8b3bcfcfef492c3~mv2.jpg)
![20210923132507_1](https://static.wixstatic.com/media/c37414_506ef89b1bfa434cb80693f90c2b4bc4~mv2.jpg/v1/fill/w_147,h_83,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_506ef89b1bfa434cb80693f90c2b4bc4~mv2.jpg)
![20210923132543_1](https://static.wixstatic.com/media/c37414_12012d2ef9c9422ca5e5166d835e6fc8~mv2.jpg/v1/fill/w_147,h_83,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_12012d2ef9c9422ca5e5166d835e6fc8~mv2.jpg)
![20210923132451_1](https://static.wixstatic.com/media/c37414_576b83cc3ccd42fcb8b3bcfcfef492c3~mv2.jpg/v1/fill/w_147,h_83,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_576b83cc3ccd42fcb8b3bcfcfef492c3~mv2.jpg)
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
![](https://static.wixstatic.com/media/c37414_70b90b6d43114d9eb4ba08cc9b213b08~mv2.png/v1/fill/w_73,h_47,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/c37414_70b90b6d43114d9eb4ba08cc9b213b08~mv2.png)
Portal alignment tool in Hammer
![Capture.PNG](https://static.wixstatic.com/media/c37414_14d61da72e3746149c2abbb1ce673a5e~mv2.png/v1/fill/w_73,h_46,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/Capture_PNG.png)
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.
Exit
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](https://static.wixstatic.com/media/c37414_157d0a4a0e844b4da3fe4c6846a679f5~mv2.png/v1/fill/w_83,h_101,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/Portal%202.png)