You are here:

C++/C++ and game development


Anyways I started with java and have two years experience with it, and I also know true basic. However I starting to learn c++and c. And I just wanted to know and learn about making 3D games in c++ or java. C++ in this case. I want to be able to create games with awesome graphics. Can you help me, maybe recommend a book that helped you, or some program or what to download. Also what book can help my c++ skills enhance.

Hi, Ari.

Very little about awesome graphics is in the hands of programmers, to be honest.  We can write a model rendered, animation code, a shader or two, but for the most part, the awesome graphics in a game come from the artists who make the models, textures, animations, environments, etc.

That said, if you are truly interested in making 3D games, then I can point you in the right direction.  First, you will need a solid understanding of 3D math and how it applies to graphics programming.  There are two phenomenal books for this.  First, "Real-Time Rendering," which is currently in its third edition (I have the second edition).  This book covers the nuts and bolts of 3D rendering from the ground up.  Second, "Mathematics for 3D Game Programming and Computer Graphics."  This book is heavily focused just on 3D math, which you will use all over the place in game programming.  I've linked to each book below:

Beyond this, you will need to become familiar with DirectX.  Direct3D is the primary graphics pipeline used these days.  Direct3D is used in games for Windows and Xbox 360.  You will also highly benefit from learning OpenGL, as many other non-Direct3D graphics engines are largely based on OpenGL (the DS's 3D API, for example, is almost directly lifted from OpenGL).  There are many, many tutorials online covering DirectX and OpenGL and also many books covering the topics.  For OpenGL, the NeHe tutorials are probably the most well known and comprehensive:

DirectX covers more than just 3D graphics, so you will want to investigate all of the DirectX systems.  Input, audio, networking, etc. are all part of the overall DirectX package.  I also recommend looking at other middleware.  Some of it is available free-ish for learning or just messing around.  FMOD is a wonderful and widely used audio middleware package, for example.

All of this may be somewhat mysterious if you are unfamiliar with C++ to begin with, though with your previous Java experience, I suspect you are taking fairly quickly to C++.  You may well be able to pick up C++ as you go along learning this other stuff.

If you have any further questions, please don't hesitate to ask.  I'm here to help. :)


All Answers

Answers by Expert:

Ask Experts


Joseph Moore


I've been programming in one form or another since my brother taught me BASIC when I was 6. I've been programing professionally since I was 20, first web development with HTML, JS, DHTML, CSS, etc., then I became a video game developer, writing code in C, C++, C#, SQL, assembly, and various scripting languages. I've even written my own scripting languages, custom designed for the games I was making. I also dabble in Java, PHP, and Perl. I've worked on pretty much every aspect of game development, including graphics, audio, gameplay, tool, UI, input, animation, and physics.


I've been writing C++ code for 12 years, both on my own in my spare time and professionally.


Bachelor of Science in Game Design and Development, Full Sail University, Winter Park, FL

Awards and Honors
Salutatorian and Advanced Achiever Awards at Full Sail; Independent Games Festival Student Showcase winner, 2004; Featured article on Gamasutra about an experimental game developed in 2004

©2016 All rights reserved.