When and how do I start graphics? (C++)

Started by
6 comments, last by Oldfella 9 years, 1 month ago

When does one start graphics, I read and understand this whole tutorial: http://www.cplusplus.com/doc/tutorial/ I have created many console apps, I think I know the basics of C++, but how much do I need to know to start learning DirectX or OpenGL (Which is better?). Where would I start learning if I have what it takes? I'm looking for tutorials, any opinions on where and how to start, and if the C++ tutorial I read and fully understand is enough to start graphics.

Advertisement

start learning the basics of 2d graphics as soon as possible. it is easy to get disillusioned continually writing console apps and feeling like they are not "really games yet".

learn about coordinate systems, pixels and sprites and how they are drawn, pick a library (eg. directx, opengl) and start using it to draw to the screen.

If you know the basic syntax of a language it should take you a little while to get to grips with using a graphics library by following some of the excellent tutorials that are available via google.

After console apps and before I jumped into DirectX, I learned win32 GUI programming a little.
There are a few online tutorials you can google.
I believe it can be helpful to know the anatomy of a message loop, what a winproc is etc before you modify it to accommodate a game loop.
Alternatively you could opt for SDL 2 which abstracts this and is portable.

IF you really want to use c++ and make games then learn SFML it's object oriented, fast, and will teach you good habits. Combine it with box2d for physics/collision detection.

Once you can handle that stuff you may consider UE4, it's free and you can script in c++ with it.

That said if your end goal is making 3d games then perhaps just skip on up to UE4 or Unity with c#.

Check my sig for more info.

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

Check out Casey Muratori's Handmade Hero course on Youtube. It's like having an experienced, old-school game engine developer mentoring you from the very basics. http://handmadehero.org

Learning a full on graphics library like Direct3D or opengl isn't necessarily required early on, a utility library like SFML or SDL work perfectly fine for making some basic games, they abstract away the drawing and keep it simplistic so you can focus on learning the game concepts without having to worry about matrices and shaders and all that nonsense.

However it doesn't hurt to pick up that stuff later once you feel curious about it, it is particularly useful for making the switch to 3d or getting a better understanding of the mechanics behind the 2d rendering.

I took the jump in at the deep end path of learning GL and DX, and just did an internship for a company where I ported a OpenGL renderer to D3D9c. The benefit of doing this was that I didn't have to deal with setting up a pipeline to be able to render stuff that all existed, I could just focus on learning D3D and GL

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

I made the transition to graphics programing from Win32 GUI to DX7 when it was first released, it was a big jump as was the more recent porting my Game Editor and tools to DX10/11 but was well worth it and a great learning experience. My advice is to choose a Graphics API be it GL or DX and enjoy the learning curve, either way, there is a wealth of information on this site and links to others that will set you on your way.

Cheers

This topic is closed to new replies.

Advertisement