Raycasting rendering engine inspired by: http://permadi.com/1996/05/ray-casting-tutorial-table-of-contents/ , Textures are taken from Wolfestein 3D