I recently decided to take up game development as a hobby. So far, I've been able to learn a lot from online tutorials and an XNA book that I bought (XNA by example), but there's just so many choices to make regarding what books to buy or what tutorials to invest time in, that I really feel like I need some advice on my direction!
Basically, what I'm hoping for in this post is that one of you wonderful experienced game devs will just point me in the right direction of some books that you feel are really good, or tutorials that you think could help me. I would be very grateful for any kind of help here
![:)](http://public.gamedev.net//public/style_emoticons/<#EMO_DIR#>/smile.png)
Anyway, I realize that you won't be able to give me any direction if you don't know where I'm coming from and what I want to do...so without further ado, here is my background info:
My goals: I want to eventually be able to make really fun, really unique games that I could potentially sell on a digital distribution platform like Steam or XBLA. I realize this is a long way off...but it's just what I'm shooting for
![:)](http://public.gamedev.net//public/style_emoticons/<#EMO_DIR#>/smile.png)
My knowledge/skills:
1. BS in Computer Science, so I have a good working knowledge of general programming concepts like memory management, data structures, control structures, object oriented design, etc.
2. Very good at C#. I work with it frequently at my day job.
3. Decent but rusty at C++. I just haven't worked with it in a while, but I'm sure I could pick up all of that wonderful pointer nonsense again in short order if I tried ;).
4. Beginner level knowledge at XNA. I'm reading/coding through an XNA book now, and I've done a lot of tutorials around the net. I know the basic concepts of how it works, but still have a lot to learn.
Where I feel I'm lacking:
1. Basic game programming concepts. Most of this is new to me. I understand how to program, but I'm not familiar with common game programming tasks like translating "screen space" to "world space" or collision detection.
2. Game engine design. I could really just use some general, theoretical help on "best practices" when it comes to building (mainly 2D) game engines. When I try to do this myself, I wind up mired in so many different possible decisions that I just don't know what I should do. Like...
How do I organize all of my objects? Should the "player" object inherit from the "enemy" object?
What kind of data structures do I store my world data in? Should I use a massive 2D array for the entire world? A list of 2D arrays to represent zones?
So many questions...
So anyway that's where I am now, and I could really use some advice on what I should be studying. I hate spending days on a book or tutorial to only realize it was a waste of time. So thank you all so much in advance for any advice you give!