   Where to go?
  What I'm aiming to do is develop a game very similar to "n game". It's a minimalist 2d ninja game, with a static tile set made in Macromedia Flash. You can have a look at a few screenshots here: http://www.harveycartel.org/metanet/n_screenshots.htmlI've been playing around trying to learn how to program something like it for the last 5 or so months, and have tried a few different languages and tools ( I haven’t settled down, as I don’t know if I’m heading in the right direction or not). I've tried C, C++, C#, Java and PHP-GTK, but really haven't done much in any. C# is definitely the nicest (for me) language I've tried, definitely my favorite (so far).I know I'm about to ask what is probably the most common question, but none of the other replies seems to have what I want. What should I be learning?What I guess, is that should just continue to learn C# and DirectX … but I’m not sure if its correct which really doesn’t help when I’m trying to learn, it’s late, I’m confused and sleepy (if you know what I mean). I really would like to know what you experts think; especially if it could be customized to the goal I have set myself. Also, I have spent a couple of days with DirectX and I'm finding it extremely difficult, I guess practice makes perfect but the whole API (?) doesn't even seem suited to what I would like to do (as the recent one only seems to support the 3d stuff which I have no interest in doing).So what should I do?In advance, thanks a lot for all your replies.   
  There are SDL (a 2D game library) bindings available for C# (google SDL.NET), although you might find the documentation a bit lacking.Your goals should be incremental: get a window opened, draw a few lines to the screen, load a sprite and draw it, get input, create a game loop, have an object move with the keys, draw more objects and have them move on their own, detect collisions between objects using the tutorials by the N developers, implement collision response (moving objects back), add some physics (mass,gravity, bouncing)...Always think about what you can do with your current state of knowledge, do it, and then think about how you can modify what you have to add more features. Whenever your code becomes messy, think about why it became messy, and start over again: you will rewrite the code much faster than you did in the first place, you will make it cleaner, it will refresh your memory and it will even improve on the way. Practice makes perfect!   ;  you said C# was the nicest but if you plan on taking Game Programming as a job there is no way but C++ its just the best and its not that hard either its good that you already know C# knowledge of programming language can be very benifital when learning another language so if your just fooling around take the steps mentiond earlier ( not in that specfic order ) but if you plan on becoming profisonal you should really consider C++Good Luck :D   ;Quote:Original post by Black Aceyou said C# was the nicest but if you plan on taking Game Programming as a job there is no way but C++ He can try and learn C++ later. With C#, he will probably get more results faster, learn more and have more motivation. The overall experience of working with C# will be very helpful when learning C++ in a year or two (as well as his knowledge of DirectX philosophy and game development philosophy), and will also give him more high-level insight over what is going on.Quote:its just the bestBecause of its very controversial nature, you should mention that this statement is a matter of opinion, not of rigorously proven and widely accepted factual reality.Quote:but if you plan on becoming profisonal you should really consider C++Once you are familiar with game development. Why bother learning both (C++ and game development) at the same time if you already know C#?;Quote:Original post by ErikinaI know I'm about to ask what is probably the most common question, but none of the other replies seems to have what I want. What should I be learning?Even though Direct3D seems to be mostly 3D-focused, it's still perfectly fine for 2D applications. In fact, using textured quads is probably the best way to go about making a 2D game, since you can take advantage of all kinds of cool features supported by 3D graphics hardware.I know DirectX (even Managed DirectX) can be a pain to learn when you're just starting out, but my advice would be to stick with it. It may take a while to get to the point where you're really seeing results, but it'll be worth it in the end. In other words, you're not doing anything wrong. [smile]Quote:Original post by Black Acebut if you plan on becoming profisonal you should really consider C++Moving between C# and C++ is trivial, whichever way you go. It's more important to spend time learning how to design software, which will be much easier for the OP if he doesn't waste even more time learning another language. Learning the concepts behind software development is the real hurdle for beginners and it doesn't matter what language you do it in.   ;  Thanks everyone, I really needed to know I am in the right direction as I have put  in a lot of work and really haven't got any result yet. I started with C++, and I guess as with everything there is things you don't like. Accidently I stumbled on a C# tutorial for c++ developers and started reading it. It seemed C# had "fixed" all thing things I didn't like about C++. Then once I downloaded Microsoft Visual C# Express Edition, I was convinced. The IDE was a hundred times better than anything I had ever used before, and everything just seemed plan cleaner.Anyway, enough of that ... I've got to start learning DirectX.Thanks guys.