If you're experienced in C/C++, you can use libnds straight away - it has 3D built-in via its pseudoGlide library. As for the interface, you can use anything from Programmer's Notepad to Visual Studio C++. If you feel that you'd like something more basic, start with NightfoxLib, which is a wrapper for libnds that makes some things easier.
This post has been edited by Foxi4, Sat, December 8th, 2012 at 16:30