• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
NOLANDI

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

20 posts in this topic

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.
0

Share this post


Link to post
Share on other sites
[quote name='NOLANDI' timestamp='1348864264' post='4984851']
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#.
[/quote]
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.

[quote name='NOLANDI' timestamp='1348864264' post='4984851']
All examples are written in Javascript...maybe even it don't support to write RTS strategy in it?!
[/quote]
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
2

Share this post


Link to post
Share on other sites
@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! ;)
0

Share this post


Link to post
Share on other sites
Even if XNA is fully canceled, there are always projects like [url="http://monogame.codeplex.com/"]MonoGame[/url] 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
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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
0

Share this post


Link to post
Share on other sites
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 ;)
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
[quote name='NOLANDI' timestamp='1349003042' post='4985320']
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 ;)
[/quote]

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 [url="http://www.gamasutra.com/view/feature/131720/coordinated_unit_movement.php?print=1"]Coordinated Unit Movement[/url]. 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
1

Share this post


Link to post
Share on other sites
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!
0

Share this post


Link to post
Share on other sites
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;

[color=#ff0000]// Position blocks
Rectangle position = new Rectangle(0, 0, Tiles[0].Width, Tiles[0].Height);
for (int x = 0; x < width; x++)
{[/color]
[color=#ff0000] 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);

}[/color]

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

Any help? [img]http://public.gamedev.net//public/style_emoticons/default/rolleyes.gif[/img]
0

Share this post


Link to post
Share on other sites
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: [url="http://www.xnaresources.com/default.asp?page=Tutorial:TileEngineSeries:4"]http://www.xnaresources.com/default.asp?page=Tutorial:TileEngineSeries:4[/url] Edited by shadowisadog
1

Share this post


Link to post
Share on other sites
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!
0

Share this post


Link to post
Share on other sites
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. [url="http://www.khanacademy.org/math/linear-algebra"]Linear Algebra on Khan Academy[/url].
1

Share this post


Link to post
Share on other sites
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
1

Share this post


Link to post
Share on other sites
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!
0

Share this post


Link to post
Share on other sites
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.
1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0