Where do you start? Well that's a loaded question my friend. What are your goals? I think the first question you need to ask yourself is the following: Do you want to make a game engine, or a game? The two are very different. You talk about wanting to create an application where you can load 3D models, "walk around" (which I assume means you want animation), and a "battle system where you can kill things". The first two parts, fall in the domain of game engines, the latter part in the realm of games. You don't necessarily HAVE to make your own engine, but if you do, you're in for a ride.
If you want to build an engine:
The first thing you need to do though, is learn the graphics pipeline. You aren't getting anywhere until you understand how 3D graphics applications work. There are many places to learn this: books, this forum, internet tutorials, ect. One of the biggest mistakes I made early on was just wanting to "see something on the screen", without understanding why or how it got there. I did lots of copying and pasting from tutorials until I got something there, but once I did, I couldn't make the changes I wanted because I never really understand what I was working in. Learn how the 3D graphics world works, then worry about getting models to show up, and animate.
If you just want to build a game:
Find yourself a nice, free open source engine. There are a few choices out there, and a quick search of this forum or google should yield you some useful results Once you get the hang for using this engine, you should be able to load your models, and then you can start programming your game logic. However, before you just dive in and start making a mess, I strongly suggest you learn about application development, particularly how to separate your view logic from your application logic. This will save you a ton of time in the long run.
I don't know how much of this information will be useful to you, but I hope you take one thing away from what i've said: Making games is hard, and making game engines is even harder. The hardest part isn't even writing the code, it's planning it in such a way that you create flexible systems, and it's about understanding the systems you're working with so that you can create new systems through understanding, not trial and error. Good luck.