Hey everyone! I am looking to expand my C# knowledge and am looking into a fun, long term project to help expand my knowledge. I've been studying programming for about a year, but I would still consider myself a beginner as I've not "gotten my hands dirty" enough by writing multiple projects. I've done a lot of small projects that focus on specific ideas (a lot recently from Code Abbey), and I've completed a few small programs for work, but am looking to do something on a larger scale.

And idea I've had is to create a turn based, SNES style RPG. Possibly design a small project to test a few ideas (moving characters around, using speech boxes, random battles, leveling up, etc) and then expand upon this idea into a fully playable game. I think this would be a great test to help expand my knowledge on a few concepts as well as force me to learn a little more; go outside of the box if you will. The math required for a lot of the behind the scenes functions would be a great test to help expand my problem solving/logic.

The question I have is if anyone knows of a good book or good resources I can use to help? Something along the lines of game programming for beginners, something that covers behind the scenes with not only code itself but maybe some game theory or game math. Since this is a turn-based RPG that will probably use a lot of random but scripted stuff, AI knowlege isn't important. I've seen a few books but what I saw spends a good portion of the book teaching programming and finishes with game design, and I don't think I need the intro to programming knowledge. I would prefer something that covers design aspects in C#. Any help is much appreciated!