I just find book: Sean James - 3D Graphics with XNA Game Studio 4.0.
When I saw code in the book, it looks more, more easier then DirectX, and I think that it is excellent for learning basics on good way. I will find more books for XNA, but I dont give up from Unity.
Probably, I will leave DirectX, OpenGL, because they are more advanced stuffs for learning (and slower pace of learning-since I am hobby programmer it is not good for me ).
I have basic knowlegde of c# but I will expand it for sure. I know it is very important.
But, what is the future of XNA? I didn't understand @shadowisadog.
XNA is cancelled? Does XNA games have future or XNA will be changed with some other technology? It is very important to look things forward. Can we run XNA games on Windows 8 even?
Beside of that, could someone give me some link where I can learn programming strategy games in XNA?
Thank you everybody ;)
As Inuyashakagome16 pointed out, I did mean if XNA were to be canceled. There is some debate (mostly just a lack of news from Microsoft) about its future as you had pointed out in your original post.
XNA games will run on Windows 8 for desktop PCs, especially because Windows 8 will run Windows 7 programs. Windows 8 for tablets is another matter, and I am not sure what the story is there... but I don't feel there is much need to worry.
As far as information about building an RTS in C#, I think you are going to have a difficult time finding a resource that explains every piece of how to make YOUR idea for an RTS game.
RTS games are games. Games are software. Learn to program software first and foremost. There is nothing magic about games... There are many solutions to any particular problem, and each have their strengths and weaknesses...
I think the greatest conceptual hurdle to overcome as a new game programmer is that there is no generic "best". People always want to ask what is "best" and what is the "right" way to do something. How do I make "this" game, as if there is but ONE and only one solution. This is not the case. There are many many many possible solutions, and all have trade offs. You must ditch the concept of best, and merely pick solutions.
But if I were to make an RTS game today, knowing what I know... and I were to do it in C#... and I wanted to create some generic pile of code and algorithms that I could use to construct my "game" with absolutely no design document (just going to throw it together as I go, or whatever) then I might do the following things:
1. I know that I would need some way of representing the terrain. Assuming I was making a 2D RTS (I am more a fan of 2D RTS games, and 3D is very complex), I would probably opt to use tiles. Which means I would need a tile engine, and I would need to implement tile scrolling. Tiles would help with pathfinding for sure, but I would lose some flexibility. I know that I would need to probably have some form of map editor and so I would probably choose something like Tiled or Mappy to make levels (just to avoid making my own tool, although that could be an option).
2. Tiles or not I would need pathfinding. I would probably choose to use A* pathfinding, and just for kicks I might implement some steering behaviors/reactive planning. I might investigate how other games have done their troop movements such as Coordinated Unit Movement. Either way my units would probably use finite state machines with a combination of other techniques.
Although that is just a small fraction of the puzzle. Constructing a computer opponent for an RTS is very difficult. Combine that with multiplayer (if you choose to add it) and things become even more difficult (dealing with large number of onscreen units is a complex task).
This is just scratching the surface.... The best advice is to start simple and work your way up to this sort of game.