Where do I go from here?
Here's what I know and have done so far:
1. Semester (in 9th grade) of "Programming" in Visual Basic where we basically made games for projects, and for my final I made a pretty crafty snake game.
2. I took (10th grade) AP Computer Science A, which is taught now in Java. We learned the basics, getting up to abstract classes, interfaces, those sort of things. Unlike my teacher's programming course, this one put no focus on games, aside from out semester projects of tic-tac-toe (just the AI), and minesweeper (again just the algorithms persay, with no focus on the graphics or way the project was put together)
3. This year (11th grade) I am taking AP Computer Science AB (the last year the College Board is offering a second level :(, which is tragic). Its focus (still in Java) so far seems to be data structures. We have just completed a unit on linked lists, and are moving on to stacks, and I believe trees after that.
-My problem with C++ is that I do not know if there are things equivalent in it to things in Java. Ex: In one of my C++ programs I really wanted a growable list but do not know if there is a default class like the ArrayList in Java.
Also, I think I am missing a major idea behind pointers. I am just not quite sure why one would use them, and at what times it is appropriate/better to use them. If you have any ideas that could help me learn pointers (a program idea) they would be welcome.
4. I have decided that for me a major of Computer Science in college may be in my future, and want to learn C++. I have two books on C++ that seem to help. I also love to play games, and loved what little experience I had with making them. I have figured out some of the basic differences from C++ and Java, and have made some basic text based games in C__.
5. I want to move up to 2D games like pong or tetris, and was wondering what you need to do that. Is it some kind of new library, a program, etc.? I really need very straightforward instructions when it comes to downloads and stuff like unzipping (I am not very computer saavy).
*For the record currently I am using a Dev-C++ enviroment/compiler that came with one of the books I got.
I also would not be opposed to spending some money on a book or reference more directed towards game development.
Thanks in advance for the advice!
[Edited by - FlyingMudPuppy on October 21, 2008 5:25:23 PM]
There is a distinction that you are probably already aware of, but I'm going to put it into words: there is a difference between programming language and programming practice. The fact that most languages can make similar software attests to this. The most important thing for you at this point in yr development is to improve yr programming practices: understand data structures and algorithms, produce clean, organized code etc. Add new knowledge every day.
A lot of people will say to learn another language rather than C++ here. But, I say why not learn C++? The fact is, for whatever reason, that C++ is still popular, so why not have a working knowledge of it? How deep that working knowledge becomes is up to you.
First of all, you are using Dev-C++. It is no longer supported or actively developed. So, choose Microsoft Visual C++ or Code::Blocks IDEs. There are free versions of MSVC++ for students and Code::Blocks is free/open source.
Second of all, use a 2D API for making a 2D game. Easy ones to start with are Allegro, SDL. There is a new one called SFML, but I do not have experience with it, but you can google it and check it out. For the case of C++ and SDL Lazy Foo has an excellent collection of tutorials on his website.
Another thing, you may want to postpone learning C++ and go with something like python and pygame to make a few 2D games. This will make the programming easier and quicker. The skills you learn there will easily transfer over to devving in C++: ideas like game loop, sprite sheets, framerate, etc. That is you will learn the methods and methods can transfer to almost any language specific implementation. Good luck!
A lot of people will say to learn another language rather than C++ here. But, I say why not learn C++? The fact is, for whatever reason, that C++ is still popular, so why not have a working knowledge of it? How deep that working knowledge becomes is up to you.
First of all, you are using Dev-C++. It is no longer supported or actively developed. So, choose Microsoft Visual C++ or Code::Blocks IDEs. There are free versions of MSVC++ for students and Code::Blocks is free/open source.
Second of all, use a 2D API for making a 2D game. Easy ones to start with are Allegro, SDL. There is a new one called SFML, but I do not have experience with it, but you can google it and check it out. For the case of C++ and SDL Lazy Foo has an excellent collection of tutorials on his website.
Another thing, you may want to postpone learning C++ and go with something like python and pygame to make a few 2D games. This will make the programming easier and quicker. The skills you learn there will easily transfer over to devving in C++: ideas like game loop, sprite sheets, framerate, etc. That is you will learn the methods and methods can transfer to almost any language specific implementation. Good luck!
I just downloaded the .NET 3.5 Frame stuff and then Visual c++. I was wondering what I have to do after downloading Allegro to get it to 'sync' with Visual C++.
Usually to get a library up and running you must:
1. copy the header files into the include directory
2. copy the lib files into the library folder
3. put any applicable dll files into the directory in which the game resides
4. you then sometimes need to modify linker options/flags, depending on IDE
I don't know which version of MSVC++ you installed, but here is a link that may help you getting Allegro working with it:
MSVC++ 2005 Express Instructions
MSVC++ 2008 Express Instructions
I cannot vouch for the accuracy of these instructions since I just found them from googling, but they should work; try them depending on which version of MSVC++ you are using.
1. copy the header files into the include directory
2. copy the lib files into the library folder
3. put any applicable dll files into the directory in which the game resides
4. you then sometimes need to modify linker options/flags, depending on IDE
I don't know which version of MSVC++ you installed, but here is a link that may help you getting Allegro working with it:
MSVC++ 2005 Express Instructions
MSVC++ 2008 Express Instructions
I cannot vouch for the accuracy of these instructions since I just found them from googling, but they should work; try them depending on which version of MSVC++ you are using.
Just thought I'd point out something:
If you've worked with linked lists in Java, you NEED* pointers to be able to create linked lists in C++, and a linked list exercise was one of the first times pointers really clicked for me in terms of "why bother when I can just pass addresses to functions?"
*note: as I am still a student yet, this superlative could in fact be false.
If you've worked with linked lists in Java, you NEED* pointers to be able to create linked lists in C++, and a linked list exercise was one of the first times pointers really clicked for me in terms of "why bother when I can just pass addresses to functions?"
*note: as I am still a student yet, this superlative could in fact be false.
Quote:Original post by BCullisIt might also be worth pointing out that "references" in Java work almost identically to pointers. In a Java linked-list implementation, your list nodes will have a reference to the "next" element, whereas in C++ your list nodes will have a pointer to the "next" element.
If you've worked with linked lists in Java, you NEED* pointers to be able to create linked lists in C++
If you are coming from C++ to Java, people seem to like to emphasize that "references aren't pointers!!!". Well, that is a questionably true statement (depends on what you are willing to consider to be a pointer). Going the other way--from Java to C++--I think its fairly safe to say that you can think of pointers as exactly the same thing as object-references in Java, but with some extra horsepower (you can get the actual address in memory of your objects and do "pointer arithmetic" with them, etc).
I'm just jealous that you had all these classes in high school. When I was in high school the only "programming" class we had was HTML and the teacher couldn't explain how to do anything besides bold and italicize text. (American education at its finest)
Thanks for the input guys. I guess one of the answers to my questions was right in front of me....
Q: What are some examples of the uses of pointers?
A: Linked Lists!
And yeah its pretty cool to get these courses in high school. Part of it is that we have an amazing teacher would could probably be making millions in another career. I guess its like that with most classes, that the difference between a good teacher and an amazing teacher makes a huge difference. The problem is that people good enough to be amazing usually find other, much more appealing (almost always at least as far as pay)career.
Q: What are some examples of the uses of pointers?
A: Linked Lists!
And yeah its pretty cool to get these courses in high school. Part of it is that we have an amazing teacher would could probably be making millions in another career. I guess its like that with most classes, that the difference between a good teacher and an amazing teacher makes a huge difference. The problem is that people good enough to be amazing usually find other, much more appealing (almost always at least as far as pay)career.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement