greatly optimized the render loop by lowering FPS and only triggering redraws when something changes. I'm also now caching terrain and shadow graphics for further optimizations and to get rid of the fade-in blend alpha issue.