Is not SFML 2.0 as Laurent changed the naming convention of methods to always start with a lowercase letter, and sprites take a Texture instead of an Image.
In terms of things that are drawn, the Texture class replaced the Image class. The Image class is used for loading, manipulating, and saving image files which is why it still exists in the system.
Basically, when you define a Texture object, that data is stored on the GPU to help speed up the drawing. An instance of an Image, however, is stored in local memory where it can be accessed and changed easier than if it were on the GPU.
My GDD is getting near completion so it's time to make it even more detailed...
I would venture to suggest that your next step should be to actually start making your game, instead of trying to do all this design and "GDD" bullshit up front. You're putting the cart before the horse, and if you spend too much time going too far in-depth with your design and pre-producing your art assets and all that you run the risk of having to throw away a ton of that time when it becomes apparent during iteration that something isn't going to work.
You've already made mistakes in your design and content production, so start iterating on something practical so you can expose those mistakes and correct them sooner rather than later.
I think that was pretty harsh, and quite frankly unnecessary. A game design doc can be one of the most helpful things when making a game if it's done right, and I don't know why you would accuse someone of making mistakes outright like that.
As for the question,
As mentioned earlier, having a larger imaged scaled down looks a lot better than having a smaller image scaled up. I would probably use that in conjuncture with different sized fonts.
It looks like you aren't quite posting all your code (unless the ...'s mean something else), and I don't know much about managed DirectX, but it doesn't look like the texture is ever being drawn(unless I'm wrong and the graphics.DrawUserPrimitives( Direct3D.PrimitiveType.TriangleStrip, 2, vertexes ); line is the one drawing it).
My suggestion would be to post all of your code so we can look at the big picture.
On a side note, if you're using C# and you want to do graphics programming I would suggest using XNA over Managed DirectX as MDX isn't even supported anymore. It was dropped ion lieu of XNA. You'd probably have an easier time with it.
You're definitely on the right track, but you need to work on the implementation. Studying and practicing interfaced and inheritance is going to be the key to getting this down. In case you were wondering about it though, here's kind of how I would put this together.
interface Creature //base class that provides methods for interaction and AI
class Monster : Creature
//this would be where you define the actual behavior
class Player : Creature
Lua is a scripting language and it is very common to do a lot of the programming in a scripted language. Most(if not all) commercial game engines provide some sort of scripting support. The reason people use scripting languages is that it helps cut down on development time. For example, you're working on an enemy's AI and it's not working quite right. If you coded it's logic in C++ you would have to recompile the code to test any changes. With a scripting language you just make the change and the new file is loaded into the system.
As you said, everything you can do in a scripting language you could do in C++, but anything that helps speed up production is a good thing, right?
Of course, there is a little overhead to run the scripting interpreter on top of your game but with today's systems you should see much of an impact.