make shaders for dynamic drawing in 2d and 3d revamp map loading into a struct instead of global and add a version