What's next in Game programming

Started by
8 comments, last by 0r0d 10 years, 11 months ago

Hello,

I want to be a game programmer. I want to work in game company as Ubisoft, Naughty Dog..

It's my dream and I do for it everything.

It's about one year, when I start programming. I understood concept OOP, and C++ too. I've created 8 2D Games as Super Mario, Snake, Pong ...

But now, I don't know what I do next. I can go on 3D programming? If yes, which library a should use? Or I can go on Engines? Or I can stayed in 2D Game?

Advertisement

Hello,

I want to be a game programmer. I want to work in game company as Ubisoft, Naughty Dog..

It's my dream and I do for it everything.

It's about one year, when I start programming. I understood concept OOP, and C++ too. I've created 8 2D Games as Super Mario, Snake, Pong ...

But now, I don't know what I do next. I can go on 3D programming? If yes, which library a should use? Or I can go on Engines? Or I can stayed in 2D Game?

Moving on to 3D sounds like a good idea at this stage. I'd suggest you get a good book on OpenGL or DirectX and work through that. Then make a game using what you've learned and writing your own simple engine.

Then depending on which areas of game development interest you (graphics, physics, gameplay, engine architecture, tools, etc) you can continue to build on and improve your engine and go on to another more ambitious project. Do a couple of those and you might be good enough to be considered for a junior position at a game studio... assuming they hire junior people in the first place. Studios like Naughty Dog might only hire mid to senior-level programmers.

Other things you can do while working on that 3D game that will give you useful experience:

-integrate a 3rd-party physics engine like Bullet into your game

-write your own tool for something like object/level/material editing. You can use something like wxWidgets or Win32 or whatever you like

-multi-thread part of your code

-implement some post-effects using shaders (glow, DoF, motion blur, toon shader,.... whatever)

-learn to use a modelling program

-write an exporter for that modelling program

-integrate a scripting language into your engine and write some game code with it (triggers, UI flow, AI,... whatever)

-write a particle system

-write a UI system

-write a font rendering system

Anyway... there's much more you can think of, but those are ideas that you can integrate into a fairly simple 3D game and gain experience in lots of stuff that will be helpful when you're applying for a job at a big game studio.

Other than that, the things that will help you get a good job are solid knowledge of C++ and 3D math.

If you do decide to 3D on your own, you are generally left with two choices for graphics; OpenGL or DirectX. You should be prepared to spend quite some time (at least about 4-5 months full time in my case) figuring out and understanding one of these frameworks along with all the math involved. I would also recommend that you find a good, up-to-date book to help you through it.

Thanks for advice.


Ok, I'll go to 3D graphics, but I don't know which Graphic library I should use, OpenGL or DirectX? Which is better, which has a better perspective to the future?

Unfortunately there's no easy answer to that question, as they both have different pros and cons. One major difference is that DirectX is limited to Windows/Xbox/Windows mobile while OpenGL targets multiple additional platforms (Mac, Linux, Android etc). However as far as I know DirectX has been known to be slightly more optimized when it comes to performance. The good news is that their overall structure is quite similar, so once you've got the hang of one of them, the other will be much easier to pick up.

Thanks for advice.


Ok, I'll go to 3D graphics, but I don't know which Graphic library I should use, OpenGL or DirectX? Which is better, which has a better perspective to the future?

I prefer DirectX, but in general they work in almost the same way. Almost all functionality of one can be found in the other, so once you learn one you can port the code to the other API with little problem. The decision depends mostly on what platform you plan to target. If you're starting out on Windows I'd say go with DX, but you wouldnt be making a mistake if you went with OGL.

One piece of advice that comes to mind is that you shouldnt use these APIs to do your math, even though they offer functions for doing 3D math. You should have your own separate library for doing all the math so you can reuse it everywhere else without being tied to the rendering code. Also, try to wrap the API calls as much as possible if you can. This will allow you to port the code more easily to another API later if you need to. Since you're just starting out, I'd say create some "RenderEngine" class and put all the setup code into an init function, and then wrap all the DX/OGL low-level functions with thin wrappers... just so that you never use any actual DX/OGL code in your game, only calls to your RenderEngine.

Ok I'll go to DirectX. I found some tutorials, but these tutorials don't go to depth. I found some books too, but I don't know which is better on the beginning:

http://www.amazon.co.uk/Introduction-3D-Game-Programming-Directx/dp/1936420228/ref=sr_1_1?ie=UTF8&qid=1369471353&sr=8-1&keywords=DirectX+11

http://www.amazon.co.uk/Practical-Rendering-Computation-Direct3D-11/dp/1568817207/ref=sr_1_3?ie=UTF8&qid=1369471353&sr=8-3&keywords=DirectX+11

And last question, which graphic library use game consoles?

And last question, which graphic library use game consoles?

Xbox/Xbox 360/Xbox One use some version of DirectX. Playstations use OpenGL. The Wii used its own API, but was similar to OpenGL. Have not worked on the Wii U, but it's probably close to the Wii, but with shaders. Ouya uses OpenGL.

On handhelds... Windows Phone 8 uses DirectX, iOS uses OpenGL, Android uses OpenGL.

And last question, which graphic library use game consoles?

Playstations use OpenGL.

Not quite. The PS3 uses Sony's PSGL which is based on OpenGL ES (Embedded Systems) and Cg.


And last question, which graphic library use game consoles?

Playstations use OpenGL.

Not quite. The PS3 uses Sony's PSGL which is based on OpenGL ES (Embedded Systems) and Cg.

True, it's not exactly OpenGL, but close enough that I think of it as pretty much the same as OpenGL, like the APIs on the Xboxes are pretty much the same as DirectX, although those also had their own changes and extensions. Being overly pedantic doesnt help the OP with his question.

This topic is closed to new replies.

Advertisement