Jump to content

From C++ Programmer to Game Dev; How to transition?

jsnsheets

Greetings,

 

What I am looking for here is a bit of guidence. I consider myself to be a fairly compitent C++ programmer (About 2 years of acamidemic coursework), who is looking for resourses (books/websites) to help me work out the finer details of graphic design (MAYA or similar) so that, hopefully, I can make a 3D game for the PC!

 

My end goal is to create a throwback to one of my old favourite games, StarFox 64! This will need to be complete with 3D graphics, hit detection, and potentially multiplayer mode??

 

I am 100% new to the concept of game development. All I know right now is C++. I have heard that DirectX or OPENGL are two things that I might want to look at.

 

Any and all advice is hugely appreciated! I will be heading to Barnes & Noble later today to see what books I can find. I will be updating this thread with my progress!!

 

Jason

Link to comment
Share on other sites

Link to post
Share on other sites

My first stop I guess would be to look at OpenGL (or DirectX if you really want, but OpenGL is cross-platform and personally that would be my first choice). You could look at books that introduce you to OpenGL programming or you could skip the low-level details and head straight for playing with 3D rendering for modelling and then look into game engines for quick game development like Unity or Ogre3D, something simple to use but something you can achieve a decent amount in.

 

If you're definitely looking for books, browse through Amazon quickly and you'll find plenty of books aimed at game programming with OpenGL, or in general. Even some aimed at specific engines (http://www.amazon.co.uk/OpenGL-Game-Programming-development/dp/0761533303/ref=sr_1_1?ie=UTF8&qid=1369078377&sr=8-1&keywords=game+programming+opengl) or others. It really depends on where you want to start. Building your own game engine will take a lot of time and learning for everything you mentioned above (networking for multiplayer, collision detection and physics for hit detection etc.) or heading straight into a game engine and importing models from there.

 

Sorry if this is a bit vague/general. Is there anything specific you're looking into?

Link to comment
Share on other sites

Link to post
Share on other sites

There are so many variables to this question, so it's very hard to answer (Please excuse the length of this). There's no such thing as "knowing" a programming language (even I am guilty of saying that) because very few people actually know everything about that language or the concepts in general. Writing a game (especially a 3D one) requires a lot of experience from all angles of programming and design. However, I don't know how much knowledge you have, so this is just a generalization.

 

My advice is that (if you haven't already) learn about modularity. True modularity is extremely important for games, and even more so if you're using it for commercial purposes. The Source engine has existed since ~2004, and because of it's modular nature it's still easily maintained today. Imagine having to rewrite everything when the graphics standards change, or when Windows has an update. In my programs, I usually have a package (I do Java) called "Framework" that has all of the components that can't be removed. (These are the classes that manage the modules) Each "module" extends a class called "Service", and the services are the logic of the application and can be added/removed dynamically (they aren't connected at all). An example is my 2D engine (written in Java). I have a service for doing Logic, Graphics, Input, Collision Detection, etc. If I remove the part the handles the input, it would make no difference in the functionality of anything else. I haven't really seen too many book examples of modularity, because I'm mainly self-taught, but I'm pretty sure that's pretty close to standard. 

 

I strongly suggest that you start out with 2D games. They'll get you used to the OpenGL API, and to all of the concepts of game programming. Whenever I finish my 2D engine I will release it as public domain if you want to look at it.

Link to comment
Share on other sites

Link to post
Share on other sites

Unity 3D is a good game engine to use, there's a free version which is fine. (Unity uses c# and java which is easy to learn)

 

I've found that creating models in 3ds max is probably the easiest to do, although it's an expensive program. Blender is a free 3d modelling program, it fairly decent.

 

Texturing you'll probably need photoshop.

    CPU: 3930k  @ stock                                  RAM: 32GB RipjawsZ @ 2133Mhz       Cooling: Custom Loop
MOBO: AsRock x79 Extreme9                      SSD: 240GB Vertex 3 (OS)                     Case: HAF XB                     LG 34um95 + Ergotron MX Arm Mount - Dual Review
  GPUs: Gigabyte GTX 670 SLI                     HDD: 1TB WD Black                                PSU: Corsair AX 860                               Beyerdynamic - Custom One Pro Review

Link to comment
Share on other sites

Link to post
Share on other sites

I strongly suggest that you start out with 2D games. They'll get you used to the OpenGL API, and to all of the concepts of game programming. Whenever I finish my 2D engine I will release it as public domain if you want to look at it.

 

Interesting...I was able to pick up a few books about writing a 3D game engine last week. It seems to me that building a game with a pre-existing engine before starting work on a custom engine of my own might be the best place to start.

 

Im thinkin maybe a 2D/3D game (like don't starve) might be where I would like to start.

 

I will keep this thread updated on any progress that I make

 

THIS IS DON'T STARVE:

 

Dont-Starve.jpg

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×