You can code FPS games using VB. And not necessarily DirectX.
You can try the Raycasting approach. It simulates 3D using
2D and does it very well, just like Doom and Wolfenstein.