Can i start with API now?

Hi everyone, sorry if this isn't the right section to post these sort of topics i'm still pretty new here, anyways, i just finished reading a book called Beginning C++ through game programming and i've leaned so much, i went from 0% programming knowledge to writing games like Word Jumble, Guess my number, Tic-Tac-Toe (with a dash of AI) a caretaker game (oop) Hangman and so on... Anyways i don't know what to do now, can i start doing some SFML programming? or SDL? I've been really looking forward to working with graphics, or should i buy another book or something, i don't know... i hope someone could help me out here, i'm looking to make a very simple 2d platform game nothing too fancy just a simple 2d platformer, do i need to know things like recursions, templates, binary trees and whatnot? let me know, thank you so much in advance ;)
I think you should do both. I think you should learn a graphics package at the same time as you are learning new computer science concepts. I personally haven't worked with graphics in over 30 years (medium resolution graphics on an Apple II were fun), but I know how much fun they can be. Part of learning computer programming should be having fun.

However, you should also be getting a foundation in some of the computer science fundamentals. The more data structures and programming idioms you know, the better you will be able to devise solutions to challenges you run into in the games you write. You can learn about templates, for instance, from the tutorial on this page (http://www.cplusplus.com/doc/tutorial/). A good data structures and algorithms text book can help you learn about recursion, binary trees, linked lists, hash tables, etc. I don't know where you are in school, but a good college level algorithms and data structures class is not a bad idea. You might find a good class at a local community college.

A good programmer will know, or at least know about, a wide variety of techniques and data structures--each is a tool the programmer can pull from his toolbox when the right opportunity arises. You should start developing your toolbox. But don't forget to have some fun while you're doing it.
Thank you so much for the tips sir, i think i should learn more data structures then, also developing my own toolbox huh? that sounds like a lot of work but also fun, though, i don't even know where to start :/ think you can help me out a little bit there? i never developed a toolbox, but it does sound pretty epic :p

in addition i'm still in high school (2nd year) they only teach java programming here, no C++. So i'm leaving that for college and once again, thank you so much.
Last edited on
Just to clarify, when I talk about a toolbox, I don't mean developing a library of code. I just mean you should learn some standard data structures and algorithms and know what their strengths and weaknesses are. With that knowledge, you can pick an appropriate solution to problems that you run into.

The data structures and algorithms are not language specific. They are concepts you should understand. Some of the standard data structures have been put into the C++ Standard Template Library (and I'm sure also in some Java libraries), but you should understand how they work so you know their capabilities.

Some of the fundamentals you should focus on early:
+ Learn a variety of sorting algorithms - I like this page: http://www.sorting-algorithms.com/. You can also look here: http://en.wikipedia.org/wiki/Sorting_algorithm. If you need more detail about specific algorithms, google the algorithm name. When you see notation O(n) or some such, you can google "big o notation" if you are interested. It's important stuff, but may be beyond your level right now.

+ Implement some common data structures and learn what they do - you can do this in C, C++, Java or anything else for that matter. I would suggest:
- stack using a fixed array
- circular buffer queue
- linked list
- stack and queue using linked lists
- binary tree (extremely useful for searching)

When you have a good understanding of these things, you will have a solid foundation in programming. And you will then have a reasonable idea of what else you need to learn.
Topic archived. No new replies allowed.