Whatever language and graphic interface you choose is up to you. It is important to understand though...when people talk about understanding the basics, it's because the basics are very similar in all languages. All language have basic program flow that is similar. The reason that you may want to learn a different language is not to make the development of your games easier; it is because you need to get the basics of programming down so that you can apply those basics to more difficult languages that possess more power for what you want to do. Like I said before..don't expect to just create an amazing game without being familiar with the basics of programming. You should try learning a simple language, then begin doing simple graphics with that language. Then, work your way up the ladder. You could start with C++, but this is pretty difficult without understanding programming basics, especially when dealing with something like directX or openGL. DirectX is an extremely large and powerful interface, but it is also very difficult to use and understand. If you want to get involved with programming games, you may try a more simple interface...ie- Dark Basic or Java. Java is a good language to start with because it is very similar to C++, but it supplies its own classes for handling graphics and GUI. I recommend that you develop some simple games in Java, once you understand Java and using its graphical capabilties, you may be ready for C++. As I said, the Java language closely resembles C++. The best thing that you can do to help you on you ventute is is...buy a good game programming book. I suggest anything from Andre LaMothe game development series!!! Good luck!!! You have a long, hard, and FUN road ahead. Don't begin by hating the programming part. Programming is hard, but learn to love it. Programming is fun. Game programming is just a bonus.