Next step after learning C++ basics

Started by
17 comments, last by Petrov_VA 10 years, 6 months ago

Hello everyone

I'm new to the forum and glad to see that this "field" of programming has such a huge community.

I've been interested in game programming for a long time but was also aware of the effort one has to put in since it's

(in my opinion) on of the most demanding (and time consuming) topics.

During studying I enjoyed C++ the most, sometimes getting nuts with those pointers but kinda interesting though.

So, I'm close to finish working through the C++ basics and tried to get a feeling would could be the next step

Currently I'm reading Beginning DirectX 11 Game Programming by Allen Sherod. It's a good book but covers also

a lot of topics that seem to my "advanced" or just out of my field of understanding.

So I tried to grasp some other parts that are also included in Game Programming , like engines and this sort of thing.

When I attempted to find some information about working on a own game engine, most the comments were like

"none actually works on an engine on it's own since it's too complex"

Right at the moment I'm a bit confused on where to work on.

For me it feels like a huge step from C++ basics to working with directX11.

The problem is, I don't see thr "red thread" and I'm also not quite sure whether this thread even exist in this area of programming.

So what would you think to work on next?

Advertisement
Work on a small 2D game, building an engine if needed. Something larger than Pong but simpler than Final Fantasy VI.


Right at the moment I'm a bit confused on where to work on.

For me it feels like a huge step from C++ basics to working with directX11.

The problem is, I don't see thr "red thread" and I'm also not quite sure whether this thread even exist in this area of programming.



So what would you think to work on next?

Trying to blend graphics in with game programming can be overwhelming. When I first started to move into graphics, I to found it to be confusing.

Here is my suggestion. >> Work a little more with C++ and programming with it. Study directx if you like, but, keep in mind that Graphics is simply stated just another way of displaying you game design / programming skills. Graphics takes the place of cout << "PC walks to the well" or cout << "Space crashes on Planet". Statements such as these essentially become program functions to display what is otherwise TEXT Statements.

Re-enforce what you have already learned in C++ by making small text based programs, then you may be able to see the "Red-Thread".

Once you are certain you can do the game programming, then the "Marrying" the 2 together becomes a little easier. Well at least it did for me.

TIP: Learn how to save Information to Disk through your programming code. At the minmum you might want to keep "HIGHSCORES". Eventually You will want a "SAVEGAME" option.

Your Brain contains the Best Program Ever Written : Manage Your Data Wisely !!

Glad to see such a positive Response

Your Brain contains the Best Program Ever Written : Manage Your Data Wisely !!

Whom ever just voted me down, How about an explanation on why!!! If you disagree with my or anyone else "OPINION" the state why.
My above "Advice" is based on personal experience in the learning curve and I see nothing wrong with it.

Voting someone down for BAD code is one thing. Voting them down because your experience may be different is simply CHILDISH. especially when you offer no opinion of your own.


(polite)My impulses got the best of me and I rated you down because of your lack of carefulness when speaking on what art is. I am majoring in Game Art & Animation in college and if art was that simple, it wouldn't be my major. Graphics/art is important to a game because it can affect our perception of it and more.(polite)

Learn to use SFML2.1 to make 2d games. Learn how to make OOP your biznich. Learn how to make great design. Learn to write code that is easily readable, highly maintainable, and extendable. Once your code is beautiful and elegant, then consider stepping up to 3d, maybe use ogre3d/irrlicht or even harder openGL/directx.

Also consider picking up a GUI library like Qt ( my favorite ), wxwidgets, or gtk, ect...

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

I'm going to apologize for rating Poigahn's post down. I did it because I didn't want to spam this thread disagreeing with him. Personally I think he was being a bit unprofessional, but so am I considering I seem to have upset someone with my negative vote.

As Eddie said, start out with an existing 2d engine. SFML, SDL, pick one and make a couple simple games, then make a couple more complex games. This is a useful (and for most people, necessary) stepping stone to 3D environments.

Work on keeping data and logic separate. Then work on keeping data out of code and in separate files (initially as text, later as binary). Familiarize yourself with the STL, not only as a tool to utilize in your programs, but as a guide for developing your own tools. Try to reuse as much code as possible from your previous games in your new games. Initially, you'll find very little code you can reuse (or at least reuse easily), but this should get you thinking about how to write your current code to make it more reusable in the future.

Learning the syntax of a language is really only the first step to becoming a developer. The next step, and it's a step you'll be taking your entire career as a developer, is to learn how to use that syntax not just to accomplish your current goal, but to make accomplishing future goals as easy as possible (sometimes those future goals are to come back and support/maintain this current accomplishment). The beauty of this second step though is that it is largely language agnostic. What you learn in this life long step will carry over fairly easily to the other languages you'll eventually learn. And any remotely successful developer inevitably becomes multilingual.

OT: regarding the ratings thing - these things tend to even out, e.g. if I see a reasonable post that has been voted down, I'll normally vote it up again. I hardly ever vote down a post, and then only if it is trolling (in which case it is better just to report it because downvoting reduces your own rating, whereas reporting gives you a rating boost as long as it isn't a spurious report, so save reporting for serious trolling). I have voted down a post which gives wrong information before, although I have also upvoted someone after downvoting a post because they realised ther error and retracted the original post later on.

This kind of thing happened to me, I annoyed someone in this thread http://www.gamedev.net/topic/648513-new-is-flawed/ and ALL my posts got downvoted, however they all got upvoted again within a day.

If you accidentally downvote a post you can cancel it out by upvoting a later post by the same user anyway.

Moaning about downvotes is usually a recipe for disaster though ;)

"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley

As other mentioned, I would not jump into the lower level API sets like DirectX or OpenGL, start with a good solid Multimedia API like SFML. You can easily create windows, draw images, access input, and, in no time you'll be controlling sprites moving on the screen. From there, you can make a lot of simple, fun games.

My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)

This topic is closed to new replies.

Advertisement