Sign in to follow this  

How do I really start?

This topic is 3585 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

First of all sorry for my bad english. I'm new here and I need to understand some things. I have Visual Studio 2008 EE and I want to program something. If I want to program a game what I have to learn? Do I need an engine? Do I need to study OpenGL? I need to use the knowledge of C++... Thanks.

Share this post


Link to post
Share on other sites
You want to get into the world of programming? Learn a programming language. We normally recommend Python and C# as good starting choices. Or an equivalent like Ruby or Java are just as good if not better for you.

You will not be programming a game, using engines, handling OpenGL API calls, or anything of that sort until you have the necessary foundation.

It's worthwhile as a beginner, to go through various beginner resources. These include this website's "For Beginners" section. Also, this forum is a beginner's forum. That means, many beginners who want to program games ask the same questions over and over again. You would do well to read through this forum posts and see what you can extract. Google also works wonders.

Share this post


Link to post
Share on other sites
Quote:
Original post by Xhadow
I could say im stil a begginer but i recomend you to get visual studio 6.0 and some books abaut DirectX or any engine. A book it a good start.


You know there are free (straight from Microsoft) versions of Visual studio that are far newer than VS6? Please - VC6 was written before C++ was standardised.

Share this post


Link to post
Share on other sites
I wouldnt recommend gettin a graphics API till you know the foundations of a chosen programming language. Also we use Visual Studio 6 in my CS course as apposed to using VS2005 at home and it can get quite annoying having to update my code, and you will get errors when following non VC++6 tutorials

Share this post


Link to post
Share on other sites
Yeah, don't use Visual Studio 6.0. It'll just result in your code not compiling on standardised compilers. There ARE free versions from microsoft as others have pointed out.

To learn how to program a game:

1) Learn to program (choose a language, learn it, practice it)
2) Extend what you learned into the world of games.

Those are your two steps. The only problem is that #1 can take several years.

What you could do if you really want to make games now is to grab some sort of program like Flash (not that it's cheap or anything) and write little 2D games while you're learning how to program.

Share this post


Link to post
Share on other sites
I think V6 its good for a start.... only if u know any other VS from head to toe then use it. Just recomend to stat whit.

And yea dashurc is right
1) choose a language

Share this post


Link to post
Share on other sites
Can you give me some reasons why you think VS6 is a good starting IDE? I used it throughout university, and the only thing that is majorly different from the .NET version of the product (or 2005, or 2008) is that the compiler is non-standard.

This means that when I uprgraded to a new compiler all the terrible coding practices that I picked up from using a non-standard compiler caught up with me and I had to fix every program I'd ever written so that they would compile on the standard compliant compiler. Plus I had to fix all the bad habits I'd picked up.

I highly recommend AGAINST using VS6 as a beginner, especially since the interface of the newer products are very similar and you get the benefit of a standard-compliant compiler, updated debugging tools, and you can probably get better support if you're having problems.

Share this post


Link to post
Share on other sites
Though I still consider myself a beginner, I'd like to offer some advice as well.

In my view, your first language isn't really going to matter in the long run since you're being taught many of the same concepts regardless; variables, statements, functions, etc. So I wouldn't worry about selecting a "good" first language, though choosing something besides C\C++ will allow you to stave off having to learn about pointers, which are confusing. I'd recommend Java as a first language since it's relatively easy to get into, shares many parallels with C\C++, and doesn't have you dealing with pointers or memory management.

That said, once you have learned the programming basics, I would focus your efforts on learning about data structures and algorithms, as they're some of the most useful and powerful tools you'll ever have in your programmer's toolbox. Understanding them will help you to better understand your chosen language, and you'll be able to reuse them in pretty much any program you make, and you can port them to other languages too, which isn't too difficult once you know a couple.

Design patterns are also important, especially for games, and they'll further assist you in understanding your programming language. I'd save this for last.

Once you've got your programmer's toolbox sufficiently stocked, take the time to learn an API, and make sure to stick with it.

This is actually my present course of action at this time (huh, I guess doing all those do-nothing sample programs back in college had a purpose after all). I'm not 100% sure that all of it is sound, but I'm sure someone will make mention of it if there are any discrepancies.

As for IDE choice, everybody has their preference, but if you choose to go the C++ route, don't use VS6; it's out of date, and I don't think it works with the current iterations of the DirectX and Platform SDKs, though maybe you could force it to do so if you got it to use one of the later Visual Studio compilers.

Share this post


Link to post
Share on other sites
Quanta_StarFire might be a beginner (in his words, not mine), but his advice is excellent (just wanted to re-iterate a few things he said since his claim that he's still a beginner might throw some people off).

Quote:
Original post by Quanta_StarFire
...choosing something besides C\C++ will allow you to stave off having to learn about pointers, which are confusing. I'd recommend Java as a first language since it's relatively easy to get into, shares many parallels with C\C++, and doesn't have you dealing with pointers or memory management.


This is very sound advice. The first language I learned in university was Java, and while I prefer C++ now, Java (or something like C#) is very accessible and a good starter language. A lot of people seem to like Python too, but my only exposure to it is writing exporter code for Blender.

Quote:
Original post by Quanta_StarFire
...once you have learned the programming basics, I would focus your efforts on learning about data structures and algorithms.


More good advice, although I'd hold off on learning data structures and algorithms until you're a bit more comfortable with a language's syntax and things like containers (i.e. ArrayList, Strings, StringBuffer, etc. in Java, or the STL in C++). It shouldn't take more than a couple months to be comfortable if you're going at a university pace (which is why you often learn Data Structures and algorithms in your second or third semesters).

Quote:
Original post by Quanta_StarFire
Design patterns are also important...I'd save this for last.


True. I don't really think design patterns are too hard to learn once you've mastered the above areas though. I wouldn't really worry about them. If you're studying CS or Software engineering you'll pick them up eventually. I wouldn't really focus much attention on them unless you're not attending university in the programming field, or are at a stage where you're ready to start tackling bigger projects.

Quote:
Original post by Quanta_StarFire
Once you've got your programmer's toolbox sufficiently stocked, take the time to learn an API, and make sure to stick with it.


I don't personally agree with "sticking to" an API. I don't really think it's detrimental to learn similar parts of 2 APIs instead of mastering a single one. That said, I don't think it's detrimental to only stick with one either. I just don't think this part really has that much of an impact. APIs are tools, when you've mastered much of the above areas, working with APIs isn't much of a challenge (although working with a rendering API when you've never done rendering might be a challenge, but this is more to do with rendering theory than actually fighting with the API).

Share this post


Link to post
Share on other sites
I suggest to begin with C++, even if you a beginner.
Me and all my friends started with C++, it isnt that hard that people say.
Maybe it could be a little confusing in the beginning, but beginning with C++ is nothing we regret.

Another tip:
Use another IDE then visual studio, I think its too advanced for you,
the best IDE I know is dev c++.

good luck :)

Share this post


Link to post
Share on other sites
Quote:
Original post by dashurcI don't personally agree with "sticking to" an API. I don't really think it's detrimental to learn similar parts of 2 APIs instead of mastering a single one. That said, I don't think it's detrimental to only stick with one either. I just don't think this part really has that much of an impact. APIs are tools, when you've mastered much of the above areas, working with APIs isn't much of a challenge (although working with a rendering API when you've never done rendering might be a challenge, but this is more to do with rendering theory than actually fighting with the API).


Well, one of the things I've noticed while trying out various APIs is that each has their own syntax, data types, and other conventions, which to me suggests that they're practically programming languages in and of themselves. In that regard, I think once you've demonstrated a fair amount of knowledge using one API, you can easily pick up on its competitors and refactor your code to fit with the new API.

As for rendering API vs. rendering theory, I'd have to agree with that assessment, since it's a problem I'm currently facing with learning Direct3D (well, more like Direct2D I guess, since my current focus is 2D graphics). I'm not at all used to how the coordinate system works, or some of the mathematical concepts, mostly in regards to rotation (not sure whether to express angles in degrees or radians, really. I'm inclined to guess radians though.) and translation (which I guess would require a better understanding of the coordinate system).

Quote:
Original post by Iderik
Another tip:
Use another IDE then visual studio, I think its too advanced for you,
the best IDE I know is dev c++.

good luck :)


I thought people were recommending Code::Blocks these days since Dev-C++ isn't updated anymore. :/

Share this post


Link to post
Share on other sites
Quote:
Original post by Quanta_StarFire
one of the things I've noticed while trying out various APIs is that each has their own syntax

How can APIs have their own syntax? Can you give an example?

Share this post


Link to post
Share on other sites
Quote:
Original post by DevFred
Quote:
Original post by Quanta_StarFire
one of the things I've noticed while trying out various APIs is that each has their own syntax

How can APIs have their own syntax? Can you give an example?


Well, it mostly has to do with the initialization steps needed before you can even start to do anything; an example would be setting up the Win32 API to display a simple window and process messages.

Share this post


Link to post
Share on other sites
Quote:
Original post by DevFred
Quote:
Original post by Quanta_StarFire
one of the things I've noticed while trying out various APIs is that each has their own syntax

How can APIs have their own syntax? Can you give an example?


Any decently functional and portable C/C++ API will define its own primitive data types, its own naming conventions and its own style.

Java, C# or Python (just to name some) completely standardize all of the above. All libraries provide a consistent API, which does differ in design, but retains completely identical syntax.

That alone makes C/C++ considerably harder to use.

Share this post


Link to post
Share on other sites
ok, ok, ok. I really don't need atm this flame :). I know my way, I want to expand my knowledge of c++ and for this I only want to program something, like a game...so, I only need to know what tools I need, what library and if I need a graphic engine.
in other words, how do I start?

Share this post


Link to post
Share on other sites
Quote:
Original post by Iderik
I suggest to begin with C++, even if you a beginner.
Me and all my friends started with C++, it isnt that hard that people say.
Maybe it could be a little confusing in the beginning, but beginning with C++ is nothing we regret.

Another tip:
Use another IDE then visual studio, I think its too advanced for you,
the best IDE I know is dev c++.

good luck :)


nooo, it's ok :), I like VS2008 and it isn't too advaced :P, thanks for the tips.

Share this post


Link to post
Share on other sites

This topic is 3585 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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