What is a graphics API and how complex is it to program a 3D game?