Console or Graphical Game Design?
I am starting to get into programming as a 开发者_运维百科hobby, I had several classes in JAVA/C# at school and would like to get into game programming. Honestly, this is just for myself. I am not looking to fast track the next A+ game, just something I can work on during my downtime at work. I have already decided on C# using SharpDevelop at work and Visual Studio at home. My real question is should I start with basic console games in order to work on my basic skills first, or should I jump straight into the latest and greatest XNA/WPF technolgies. Thanks in advance.
Update - When I say console I mean text-based applications, not gaming cosnole games.
I found XNA really easy to get started with for projects like that, so I recommend you try that. I don't know if it will work with SharpDevelop, but you can use it with Visual Studio Express which is free.
This question has more info and useful links for XNA: Getting started at Game Development
Personally I see nothing wrong with making text-based games and would dare say it's probably the easiest route for a hobbyist beginner. It's where I first ventured into game making way back in QBasic. At the very least it will get you thinking about what components a game needs, how you might go about structuring your game to track characters, game state, stats, etc.
XNA would also get you thinking along those lines, but you'd also have to think about graphics and efficiency (if you're anything like me and want to fill the screen with sprites the first chance you get), etc. It's a bit thornier in that respect, unless you keep your game really simple.
XNA, though, would give you an understanding of the all important game loop. The concepts of updating, drawing, frames, etc., that you might not get in a text-based game.
I'm rambling. My answer in a nut-shell: text-based games are your easiest entry point, XNA is a bit trickier but will teach you more, and you should make a text based game at work and do XNA at home
I would turn your question around a little bit and suggest you use XNA/WPF (probably XNA) to create some basic console games. If you ever decide to become a professional game developer on AAA type titles, you will probably do your programming in C++, although that is starting to change.
I would suggest reading about some general game programming techniques. Physics of objects, movement, collision detection etc. Much more worth in the long run than knowledge of a particular technology.
I'm learning game programming at the moment, not to program games inherently but in order that I can use things like AI, pathfinding, collision detection etc. in other programming I am doing. Point being that the exact type of programming is less the point to begin with but more to learn transferrable skills.
You should choose the one which will allow you to work on the tranferrables like physics etc. Those can then be applied to any context which I dont think is so much the case if you do it the other way and worry about the platform first.
Definitely start with basic C#. It's more or less required for XNA anyway, and with Console Applications, you can begin making text-based adventures, while learning about switches, methods, and loops, then begin using XNA when you feel you've learned enough.
It sounds to me like your question may have more to do with game design than programming - if you've been learning to code a game for your own satisfaction, the medium is almost irrelevant, where you're going to get stuck is in the concept and intended execution of the game itself. For this I would strongly recommend Jesse Schell's book "The Art of Game Design". I've been a professional game developer for 35 years, and I think this is the best book on the subject yet written. The deck of cards you can optionally buy with the book is also quite good but by no means critical, you can get the book and decide about the cards later.
精彩评论