Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Want to make RTS strategy game, good starting point...?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
20 replies to this topic

#1 NOLANDI   Members   -  Reputation: 113

Like
0Likes
Like

Posted 28 September 2012 - 02:31 PM

Hi, everybody!
I find this community because I did research about game developing topics. So I decide to register on this community and ask for your opinion.
I am not begineer in computer stuffs, and I know logic of programming language. I have little knowlegde of C, C++, Started to learn C#...but I was always oriented about other areas of IT. Amateur for game making but not in IT general!

I am interested to make RTS strategy video game, isometric camera view (like PC GAME DESPERADOS for example)...so I started to read many books about DirectX, XNA, OpenGL, C#, AI programming...so I want to know where is good starting point for making this game genre.

I want to use C# for this project, not C++, since I always had trouble with it, because it is too complicated.
I see good oportunity for learning C#, since it has more object-oriented concept, with much less code and easy readible code for writing. Beside of that I know that C++ is the more powerful language until today.

So I want to use DirectX and C# for my project. But I have trouble with finding books for c# & DirectX (I found just one), but in every next book,
it is used c++!
I read many web sites and they mentioned Slim DX, and in generaly, other articles which I read tells that it is possible to make good game with combination c# and directX, but...I don't have enough information about all this stuffs, so I became confused! It is really hard to have wish to learn c++ from scratch, since I started c# and I like it really...I don't try OpenGL, but I am already familiar with DirectX (some beginning stuffs), and I think that it is good and interesting.

XNA...hm, it sound that it is not bad solution, but I heard that it is already overcome technology, and I think that it is better to wait with XNA, until I try to make something with DirectX and C#, at first. But I dont know it is possible to make strategy game in XNA?! Maybe I am wrong.


I also, find Unity 3D game engine and I find that I could programming there in C#, but again it doesn't have enough support for c#.
All examples are written in Javascript...maybe even it don't support to write RTS strategy in it?!

I want to find best way to learn both of those languages, and make this game, but I dont know if it's possible?!

Thank you all!
I am willing to hear your expirience.

Sponsor:

#2 Sollum   GDNet+   -  Reputation: 736

Like
4Likes
Like

Posted 28 September 2012 - 03:43 PM

Evening,

I would advise you to stick with XNA and C#. XNA covers lots of things for you.
Also, from what i grasp, you are beginner in programing. Personal advise - just don't go 3D yet.

Good starting point in my opinion would be C#, XNA, 2D "pixel men" sprites (or at least black cubes) and some study of A* path finding algorithm.

Edited by Sollum, 28 September 2012 - 03:44 PM.


#3 joew   Crossbones+   -  Reputation: 3677

Like
2Likes
Like

Posted 28 September 2012 - 04:14 PM

I also, find Unity 3D game engine and I find that I could programming there in C#, but again it doesn't have enough support for c#.

I'm guessing by support you mean tutorials and examples (rather than meaning language/library support)? I actually found there to be a massive amount available (just look in the tutorial section) and there are also a lot of books to bring you up on the basics.

All examples are written in Javascript...maybe even it don't support to write RTS strategy in it?!

As I mentioned there are a lot of C# examples available right on the Unity site and in other places. You can definitely use the Unity to build an RTS as I prototyped one in pre-production in under two weeks when testing which technology we wanted to use going forward.

Edited by Saruman, 28 September 2012 - 04:14 PM.


#4 NOLANDI   Members   -  Reputation: 113

Like
0Likes
Like

Posted 29 September 2012 - 07:58 AM

@Sollum

I agree that it is important to understand good how to program 2d eniviroment, then I will have better understanding of 3d programming for sure.

Thank you for advices.

What is your expirience about game making in Unity3d? Do you use it?

@Saruman

Hi, man! I see that you are expirenced developer, so I appreciate a lot your opinions.
Then you recommend me to use Unity. By the way, what is your opinion about XNA? I think that I will try both, Unity & XNA, because to learn more 2D Game concept with XNA...

When I said that Unity doesn't have support I think exactly on tutorials and examples on C#, not language support (but I do research on Unity web site and find great references manual on c#). Digital tutors has also great video tutorials on this topics, but in JS are all examples. :(

Where to learn how to learn more about strategy game programming concept in Unity (for example camera, GUI...)?



Thank you guys, again! ;)

#5 shadowisadog   Crossbones+   -  Reputation: 2551

Like
0Likes
Like

Posted 29 September 2012 - 06:20 PM

Even if XNA is fully canceled, there are always projects like MonoGame to bridge the gap. I also don't see Microsoft fully ditching its investment, but perhaps XNA will undergo a name change.

Edited by shadowisadog, 29 September 2012 - 06:23 PM.


#6 GameC++Expert93   Members   -  Reputation: 121

Like
0Likes
Like

Posted 29 September 2012 - 07:41 PM

Personally i think you should start with the allegro gaming library/c++ its not all that hard once you get the basics down such as arrays,variables,datatypes,functions and objects. But do yourself a fav and learn the language you will program a game in first then start planing on making an RTS game after all we all had to start somewhere.

#7 Inuyashakagome16   Members   -  Reputation: 835

Like
0Likes
Like

Posted 29 September 2012 - 07:59 PM

You can really make any kind of game with XNA. I would say go with C# learn the basics (if you feel conformable and move into some minor XNA. (Pong/Simon Says/Basic point and click games) and see how it feels to you.

Also, (personally) I've found that starting with C# and XNA is a bit easier than C#/C++ and DirectX. DirectX to me feels like "I've already been into graphic libraries and programming for a while lets check this out" type of setup. Because I went with DX for a while but I felt a bit overwhelmed, so I went to Python and Pygame then now I'm into XNA and C# and I love it so far. The tutorials are very nice and the XNA/Xbox site for creating games is a nice starter http://xbox.create.msdn.com/en-us/education/gamedevelopment (about half way down the page)

Just go with what you feel comfortable with. If you don't feel good about C# and it doesn't make alot of sense yet, step back and try some basic python.

and Good luck :D

#8 NOLANDI   Members   -  Reputation: 113

Like
0Likes
Like

Posted 30 September 2012 - 05:04 AM

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 ;)

#9 Inuyashakagome16   Members   -  Reputation: 835

Like
0Likes
Like

Posted 30 September 2012 - 08:23 AM

From what it looks like @shadowisadog was stating that even IF XNA was canceled there are other projects that you could use that would allow you to continue development.

"I also don't see Microsoft fully ditching its investment" < which makes sense to me because I believe XNA is still being widely used for XBLA development.

#10 Telastyn   Crossbones+   -  Reputation: 3726

Like
0Likes
Like

Posted 30 September 2012 - 09:58 AM

Start with Hello World in C#. Take a few steps from there. Focus on syntax first. Trying to learn syntax and idioms and graphical programming and some rendering library and.... All at the same time? Let's just say that's not going to go well.

#11 shadowisadog   Crossbones+   -  Reputation: 2551

Like
1Likes
Like

Posted 30 September 2012 - 06:20 PM

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.

Good luck

Edited by shadowisadog, 30 September 2012 - 06:22 PM.


#12 NOLANDI   Members   -  Reputation: 113

Like
0Likes
Like

Posted 01 October 2012 - 04:28 AM

Thank you man, for this great suggestions. I agree with you...I must first understand how this types of games funcionate, then I must try to find out the best approach how to implement something to have best results. It is programming logic, it is normal and right way of thinking in this job.
I see that for this type of game is needed to learn AI logic and understand how to programming it, it is big part of this genre of games, really.

I will start small for sure ;)

Thank you again, I have now better insight what I need to do.

Regards!

#13 NOLANDI   Members   -  Reputation: 113

Like
0Likes
Like

Posted 20 October 2012 - 04:48 AM

Guys, I just started to learn more about game programming topics and I see that you really gave me really great suggestions! :)

I decide to start with XNA, because I find it user-friendly. I read couple books about c# and since I have expirience with OOP, it is more easier for me to upgrade my knowlegde.
But beside of that I am beginner.
I decide to learn to programming 2d enviroment first...but...I have trouble now with Vector2 operations!

I don't have a clue how to start to learn Vector2 problematic, and I see that it is foundation to program any game. It is used for moving, rotating, scaling etc...

I checked some topics on community and I doubt that I need to learn linear algebra, to use Vector2 operation properly?

http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/


Is there good way to learn this Vector2 problematic, since it is graphical programming and not only c# stuffs. How to learn graphic programming?


I see later if I want to programming 3d enviroment, which using Vector3, it is impossible without understand of Vector2 at first!!!

For my start I will be with time satified to learn how to make isometric view in XNA:

http://sciencefact.co.uk/2011/03/xna-isometric-maps/

...but there are some code which I dont understand, for example:

// Initialise block 2D array
Blocks = new Block[Width, Depth];

// Used as a base width and height for varying sized tiles
int baseWidth = 128;
int baseHeight = 64;

// Position blocks
Rectangle position = new Rectangle(0, 0, Tiles[0].Width, Tiles[0].Height);
for (int x = 0; x < width; x++)
{

position.X = (baseWidth / 2) * x;
position.Y = (baseHeight / 2) * x;

for (int z = 0; z < depth; z++)
{

Blocks[x, z] = new Block(0, position);
position.Y -= (baseHeight / 2);
position.X += (baseWidth / 2);

}


All of this kind of code required to understand good behavior of x, y coordinates.

Any help? Posted Image

#14 NOLANDI   Members   -  Reputation: 113

Like
0Likes
Like

Posted 22 October 2012 - 11:46 AM

Any help, suggestion, explanation....?

#15 shadowisadog   Crossbones+   -  Reputation: 2551

Like
1Likes
Like

Posted 23 October 2012 - 10:07 PM

Sure,

The code is creating a new rectangle called position at 0,0 and using the width and the height of the tile from the Tiles array at element 0 (the first element). This is not good code, because that would be better done as a constant, or loaded from a data file of some sort. position is also a terrible variable name.

Then there is a for loop where x goes from 0 to the width (not quite sure if the width is in pixels, or the width in tiles...). The code calculates the x and y positions from the baseWidth/2, and baseHeight/2 multiplied by x. I am not sure where y went...

Then in the nested loop the z axis foes from 0 to depth. This is bad variable naming because once again not sure if depth is in pixels or tiles. The array is two dimensional and being accessed so the element is at x, z.... not sure why this is being done... I would opt for a three dimensional array, or maybe a 2d array and have a block class handle its layers..

Here is a link to maybe a better resource: http://www.xnaresources.com/default.asp?page=Tutorial:TileEngineSeries:4

Edited by shadowisadog, 23 October 2012 - 10:10 PM.


#16 NOLANDI   Members   -  Reputation: 113

Like
0Likes
Like

Posted 24 October 2012 - 09:24 AM

Hi, @shadowisadog

I really appreciate all your posts, since you didn't ignore it only. I am beginner, and I know that I must using search on this community. I did research but I want to learn it from very beginning.
Thank you for explanation of this code...
I am only curious how to go forwared with this stuff about games, since I decide to try XNA.

As you see I don't have right direction where to go now, related to Vector2 (I leave Vector3 problematic for later).

I got conclusion that I must learn graphical programming and game mathematics. I am right?

I find out some books which I will get:

Microsoft XNA Unleashed: Graphics and Game Programming for Xbox 360 and Windows, by Tom Miller
Real-Time rendering
Fundamental of Computer Graphics by Peter Shirley


So since I don't get them yet, can you tell me what is the best way to learn Vector2 problematic? What are best practices for it?


And...

If I want to make some 2.5D game (plans for later - some isometric strategy), does it used Vector3 or not? I will use some 3d models in my games ,prerendered like 2D sprites to use isometric perspective.

Regards!

#17 shadowisadog   Crossbones+   -  Reputation: 2551

Like
1Likes
Like

Posted 24 October 2012 - 10:43 PM

The concepts of Vector2 (and Vector3) being two dimensional and three dimension vectors respectively, are concepts that are covered in Linear Algebra.

Khan Academy is a great resource for learning more about the subject. Linear Algebra on Khan Academy.

#18 shadowisadog   Crossbones+   -  Reputation: 2551

Like
1Likes
Like

Posted 24 October 2012 - 10:49 PM

Learning game programming (or programming in general) is sort of like trying to climb a mountain.... only as you climb you learn that the mountain grows higher and higher! It can feel overwhelming, and that you must climb it all at once.... and sometimes it can feel that you are climbing it alone.

However it is not time to get discouraged. You must simply realize that the craft will take years to learn, many more to master. Many have come before you, and many have found success. If they can do it, then you can as well. However you must have the motivation to succeed. You need to just keep trying to climb a little section, and eventually you will be amazed at how far you have come.

So in answer to how to move forward.... Just don't stop. Write programs all of the time. Try grand things and fail them. Learn from the failures and figure out why you failed (just don't let it discourage you). You can go off in a thousand different directions and in all of them you can learn skills that you can apply to other projects. You will learn about design when your design fails you.

Edited by shadowisadog, 24 October 2012 - 10:53 PM.


#19 NOLANDI   Members   -  Reputation: 113

Like
0Likes
Like

Posted 25 October 2012 - 11:37 AM

Thank you man for these advices, this is what I am waiting for. I doubt that I need to learn linear algebra, and I am glad that I am on right way.

Great comparation between programming and climbing on mountain, I agree.

Best regards!

#20 shadowisadog   Crossbones+   -  Reputation: 2551

Like
1Likes
Like

Posted 26 October 2012 - 10:32 PM

Your welcome.

Linear algebra is a great thing to learn. It really helps you to understand vectors and matrices. Both vectors and matrices are essential when it comes to 3d programming. I think it is the most useful mathematics (all of it is useful though) when it comes to game programming.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS