I've been programming for a few years now, comfortable with both C++ and C#, and I want to really get into game programming. I'm interested in it as a hobby; I have no intention of selling or even having anyone but me play it, so time/costs/creating it to suit other people aren't really a concern. I just want to indulge myself. I have some experience with game programming. I made an online MUSH RPG several years back (but it's text-based, as all MUD-like games) and I've fiddled around with XNA, doing some of the game examples in the XNA game programming book from Jaegar and getting a sprite to walk around on the screen on my own.
I really want to make a 2D RPG, something similar to Final Fantasy (not very original, but like I said, it's just for my own amusement). I have a general understanding of game states and game loops and what-not. But what I want to understand is things like tiling. I don't think hard-coding a file with all the tiles seems like the right way to go. I've played around with RPG Maker Ace VX and I was wondering how something like that works. Is that the right way to go about it? Create a program specially designed to create a game map, painting the tiles on? But then how does the actual game load that file and use it? This is the one area where I'm lost. Basically, I need to understand how a tile system works in a 2D RPG game.
As a note, I really don't want to use RPG Maker to make my game. I want to do things the "hard" way - I'm either going to use XNA or something like SFML to get started.