Making a c++ 2D game requirements?

Started by
11 comments, last by szecs 13 years, 9 months ago
Hi, I have decided on making a 2D game with C++ and I was wondering which compilers and IDEs were recommended, although all other information is welcome like good C++ programming books and graphic libraries.

I basically want to know every thing I can before I start so if you think you know something I would be very grateful if you told me about it in this post.
Advertisement
Visual Studio 2010 is a fantastic IDE that will suit your compiling and debugging needs quite well. You can download it for free here: http://www.microsoft.com/express/downloads/#2010-Visual-CPP

In terms of APIs, I recently began using SFML, and I love it. The tutorials are great, and the library is quite easy to use in general. Here is their website: http://www.sfml-dev.org/
The fact you want to make a game without having an IDE already is a serious red flag. Never, never, never start learning something just to get a final result. That'd be like if I started swimming so I could win the Olympics. No. Most of the first few months of programming will be painful. You'll get frustrated by simple things. You'll be asking questions and then be like "Oh yeah..." when you get the answer.

So, don't try and compete in the Olympics just yet. Start learning, and don't rush. Most people spend four years of intensive study in college before making games. So, take your time and learn as you go. Do it because you love the thrill of making a class work properly. Do it because it's the best way to occupy your free time.

If you can't do it for these reasons, it'll be hell for you. I run into stupid issues programming all the time. They take me hours to fix, but I still stick with it because I enjoy it.

Games aren't easily made. The first one I actually programmed made me feel like a complete idiot even after having spent a few months learning all about Java. So, for now I've put that out of my mind to continue learning before I do anything too crazy.
C++: Where your friends have access to your private members
I think for your needs, the game "Beginning C++ Through Game Programming" is probably the best C++ book. If you're new, this should occupy your time for a while (make sure to do the exercise problems/projects...you only get good at something by doing it).

And I really liked Fuji's post. If you just take up programming to make a game and don't actually enjoy the problem solving process, you're probably not going to get anything done (lack of motivation, easily set back, etc.)
Also, just remember that the simplest thing can make a HUGE difference while programming.

I personally use SDL with C# in Visual Studio 2010 (Visual C#, Visual C++, Visual Basic, Visual F# are included) as my IDE.
I do know C++ though and I do have that C# SDL project in it (converted of course).

I would recommend SDL with Visual C++, or if you don't like Visual C++ use Code::Blocks. I've never looked at SFML so I don't have any clue about it.

Of course you could use DirectX or OpenGL to do your 2D too, but its difficult to get it setup.

Hopefully this helped,

Salvenger
Quote:Original post by salvenger
Also, just remember that the simplest thing can make a HUGE difference while programming.

I personally use SDL with C# in Visual Studio 2010 (Visual C#, Visual C++, Visual Basic, Visual F# are included) as my IDE.
I do know C++ though and I do have that C# SDL project in it (converted of course).

I would recommend SDL with Visual C++, or if you don't like Visual C++ use Code::Blocks. I've never looked at SFML so I don't have any clue about it.

Of course you could use DirectX or OpenGL to do your 2D too, but its difficult to get it setup.

Hopefully this helped,

Salvenger


This post is pretty much what I would say. Adding too this though that SFML is a very good choice due to its OO style and the fact that it's very well documented. The only problem is it doesn't have nearly as big of a community as SDL. Laurent, the creator of SFML, is very active on the forums however.

I agree with Fuji.

And I disagree with this:
Quote:I basically want to know every thing I can before I start


You don't have to. You have to have a little general understanding of the language and programming, but you don't have to know everything you can.

That is a major and -as I see on this forum- quite general mistake: one tries to learn everything from books, but one never actually makes programs.

Start something even with little knowledge. If you encounter a problem/thing you don't know, learn it there on the spot. Sure, your first learning projects will have crappy code, but who cares? The next one will be better.
(Off topic)
I am going to look into SFML now, you should too. ;)
Quote:Original post by szecs
And I disagree with this:
Quote:I basically want to know every thing I can before I start


You don't have to. You have to have a little general understanding of the language and programming, but you don't have to know everything you can.


If you want to know everything then you need a copy of andrei's brain which may not even cover everything about c++ (at least most of it). If he's willing to give it to you, then you might consider the brains of the most prominent boost contributors, and so on :P

Joking aside, it's impossible to know everything. But that doesn't mean you shouldn't try. Whenever I use a new system (be it a language, library, framework, etc...) I read the introduction about what it does, then try to find some examples and start experimenting with them. But I would never say that I know everything about them, sometimes I know enough to make them do what I want them to do, sometimes I don't :)
Quote:Original post by szecs
I agree with Fuji.

And I disagree with this:
Quote:I basically want to know every thing I can before I start


You don't have to. You have to have a little general understanding of the language and programming, but you don't have to know everything you can.

That is a major and -as I see on this forum- quite general mistake: one tries to learn everything from books, but one never actually makes programs.

Start something even with little knowledge. If you encounter a problem/thing you don't know, learn it there on the spot. Sure, your first learning projects will have crappy code, but who cares? The next one will be better.


Indeed, like szecs said, starting a project with minimum knowledge is still a great way to gain more. Your code might not be the best but guess where the expert programmers began? ;)

This topic is closed to new replies.

Advertisement