Portal 1

My achievements

  • Animations and skinning
  • Shadow Mapping
  • Ambient Occlusion and Post-Processing
  • Font Rendering & Text Rendering
  • Particles
  • Sceen picking and UI interactions
  • Geometry- and Texture Shaders
  • 4 distinct draw calls to render the portals.
  • Portal shooting and linking system
  • Portal teleportation
  • Portal Physics transfers


Progress Shots

My Experiences

Portal 1

Unity: Simple Portals

I started my project with a prototype in Unity. The first thing I did was creating a simple screen that had a camera linked to it. When the player moves, the portal-camera moves in the same way, except relative to it's portal rather than to the player. With this working I made sure that what the portal-camera saw was displayed onto a second screen that worked in the same way.

Portal 2

Unity: Mapped Portals

The next thing I had to was map the camera correctly to the screen, by using a shader. The shader took what the camera saw and cut out the parts outside of the portal, leaving the parts inside of the portal and creating the illusion of a portal.

Portal 3

Unity: Teleporting

The final thing I did in my prototype was implementing teleportation. To do so I teleported (moved) the player to the other portal once it's camera passed the initial portal's screen (by using the dot product between the camera and the portal). After I also made sure that the player was rotated along the forward of the second screen. That way they can succesfully walk out of the portal.

Portal 4

Overlord: Mapped Portals

With our prototype out of the way, it was time for me to translate all of it into the custom Overlord Engine. Since Overlord is not a Visual Engine, this was not an easy task. I started in the same way as my prototype and created two screens with cameras that move in the same way as the player, but relative to their portals.

Portal 5

Overlord: Shooting!

After the camera's were working, I started to work on shooting the portals. To do this I used a simple raycast and some rotation math to make sure the portal followed the normal of the surface it was one. I managed to make this work in no time.

Portal 6

Overlord: Teleporting

My dreaded enemy this project was the teleportation, implementing this into Overlord was quite tough, but with a bunch of math I managed to do it. First I check if the player crossed the portal (via the dot product). Next I teleport (move) the traveller to the other portal. Finally I rotate the traveller so that it is facing outwards relative to the portal they just travelled to (the portal is behind them).