Raytracer Textures are broken but it somewhat runs in realtime. Here's the book series I followed. WASD + Q/E (or shift/space) R to render. (Also my previous project in Python.)