Thread: When to start 3D Game Programming?

  1. #1
    Registered User
    Join Date
    Dec 2008
    Location
    California
    Posts
    37

    When to start 3D Game Programming?

    I have been programming games for almost 3 years in C#, C++ and in Java. I created many games using SDL, Allegro, and OpenGL but only in 2D. I'm not really great in math, is that a big problem for me? The latest math that I know is Calculus 1.

    So, when should I know that I'm really ready in 3D game programming.

  2. #2
    Woof, woof! zacs7's Avatar
    Join Date
    Mar 2007
    Location
    Australia
    Posts
    3,459
    IMO, the biggest problem you'll have is with design (ie design of the game, engine etc).

    Sure you'll need maths, but you'll need to understand the principals more than anything. Also 3D culling is a little different, more maths there .

  3. #3
    Registered User
    Join Date
    Oct 2008
    Posts
    1,262
    I think even a novice programmer can start coding 3D games. However, start of with extremely simple games. Look through nehe's tutorials (I really dislike them, but there aren't many good ones as far as I know).
    Just start off rendering some simple triangle.

    A possible first game would be a 3D maze game where you have to find the exit. That's extremely easy to code, but quite fun as well.

    Don't start off with an engine, though. Just code the game.


    But as long as you're not *really* good at your programming language, don't expect to code top-notch games. But learning OpenGL simultaneous to the programming language is easy enough.

  4. #4
    Registered User
    Join Date
    Aug 2003
    Posts
    1,218
    WRONG!

    Dont learn a 3D api alongside a language. You will need a good understanding of the programming language and you will have to be a good problem-solver before starting 3D games.

    Design is the main strugglepoint that I have. To actually render something isnt that hard, its when you have to interact with the user in different ways that things gets complicated. And yes, 3D games programming is among the harder things you can do programming-wise, so to say its easy is dead wrong!

  5. #5
    Registered User
    Join Date
    Oct 2008
    Posts
    1,262
    Quote Originally Posted by Shakti View Post
    WRONG!

    Dont learn a 3D api alongside a language. You will need a good understanding of the programming language and you will have to be a good problem-solver before starting 3D games.

    Design is the main strugglepoint that I have. To actually render something isnt that hard, its when you have to interact with the user in different ways that things gets complicated. And yes, 3D games programming is among the harder things you can do programming-wise, so to say its easy is dead wrong!
    Well, maybe not easy, but not difficult either. Yes, you need to be a good problem solver before starting writing good 3D games. However, like I said, the maze game barely needed any problem solving. And once you've written a game, you feel fairly satisfied, so this may be a very good motivation to learn the programming language better.

    Yes, you need to solve some basic problems even for the simple maze game. You'll need to understand the logic beyond coding. You need to know the basic syntax and keywords and functions and objects the language provides you. You must understand functions. But for instance, you don't even need to know std::vector exists for starting writing simple games. You need not know call-by-reference. Sure, you will definitely need it for good games, but you can write simple games without it. And you can learn those things when working on games.
    3D coding hard? Well, using OpenGL, not really, in my opinion. Not the basics at least; simple rendering, texturing, simple lighting are really simple. Sure, it won't make a perfect game, but you can do some simple games.
    Finally, this person seems to have experience with several languages for several years. He'll understand the concepts of programming. And even though you may not know C++ on more than a novice level (I don't know), he should have enough skill to write simple games.

    You know the first time I touched C++ was in a DirectX book. I fully understood it without problems. After reading the book, my C++ skills weren't perfect, but they weren't dreadful either. And no, the book didn't explain the language itself, it only explained DirectX. I don't recommend this approach, though.

  6. #6
    Registered User
    Join Date
    Aug 2003
    Posts
    1,218
    I didnt comment on him not knowing enough. I commented on your comments about 3D game programming being easy, its not.

    And in my opinion its better to learn the language, learn the pitfalls and learn what works and doesnt work when it comes down to the design of the actual game. You might be able to write a maze game or a pong game or something like that but if you just hack it together without thinking things through you will end up having to face those problems when you write more complicated stuff, so why not get it right from the start, or at least consider it from the start?

    Your approach works for the simplest games but once it gets complicated (and it gets complicated fast) you may very well end up ditching a project because of a decision you made in the beginning, went with it but it ended up limiting you to such a degree it would be easier to just rewrite it all (trust me, I know what bad design can do to a project).

    Now to the OP: It sounds like you have enough experience to try on the 3D part. Really the graphics is very very little when you piece it all together. Its the resource handling, event handlers and all other behind the scene stuff you need to code that poses the real challenge. To get something to show up in a 3D environment is the easy part. But it sounds like you have done some 2D programming so why not give 3D a shot?

  7. #7
    Registered User
    Join Date
    Dec 2008
    Location
    California
    Posts
    37
    I don't know if I still lack programming skills but I do know how to use some advance concept like inheritance, polymorphism, templates, exceptions, typecasting, and etc.

    Yeah I coded many 2D games and experience a lot of trigonometry that deals most in angles. And also I know some basic OpenGL like creating 2D shapes, rotating, scaling, translating.

    I tried using an Ogre3D rendering engine but it really eats me because I don't understand why do I need to do this and that. I also tried the Irrlicht which is easier than ogre3d but I gave up already because I don't understand most of them. I told to myself that I think I should not hurry myself in using some existing 3D engine.

    So, I think I'll use OpenGL which is a cross platform 3D API so most of the people can play my games not only in one specific OS.

    Thank you for the replies guys

  8. #8

    Join Date
    May 2005
    Posts
    1,042
    I just say dive in.
    I'm not immature, I'm refined in the opposite direction.

  9. #9
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    I would say dive in except I would temper it with a 'learn fundamental C++ first'. Once you learn or are exposed to C++ concepts then dive right in. You can learn the concepts from the graphics but it will take longer than just learning the concepts first and then the graphics.

  10. #10
    Registered User
    Join Date
    Dec 2008
    Location
    California
    Posts
    37
    Ok thank you very much for the reply.

    Any suggestion what game should I make in 3D for a beginner like me in 3D spaces? Does creating a 3D maze as mentioned above would be easy for a beginner?

  11. #11
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Quote Originally Posted by m3rk View Post
    I have been programming games for almost 3 years in C#, C++ and in Java. I created many games using SDL, Allegro, and OpenGL but only in 2D. I'm not really great in math, is that a big problem for me? The latest math that I know is Calculus 1.

    So, when should I know that I'm really ready in 3D game programming.
    The most advanced math you will need in 3d programmign is advanced algebra. Specifically matrix math.

  12. #12
    Crazy Fool Perspective's Avatar
    Join Date
    Jan 2003
    Location
    Canada
    Posts
    2,640
    Quote Originally Posted by m3rk View Post
    Ok thank you very much for the reply.

    Any suggestion what game should I make in 3D for a beginner like me in 3D spaces? Does creating a 3D maze as mentioned above would be easy for a beginner?
    A maze would be a good start. Walking around a heightmapped terrain is pretty easy as well.

  13. #13
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    Specifically matrix math.
    Agreed.

    I tried to learn it last summer with just some knowledge in single variable calculus. I had to give up because of the linear algebra stuff. All of the few tutorials I tried to follow assumed knowledge of linear algebra (vectors, dot products, cross products, transformation matrices, projections, etc) and I couldn't keep up.

    Going to try again this summer, after taking a term of linear algebra .

  14. #14
    Registered User
    Join Date
    Dec 2008
    Location
    California
    Posts
    37
    Ok I'll start creating 3D maze this weekend.

    By the way, my university doesn't have any linear algebra course for computer science. What should I do? I'm 18 years old and I think I am left behind.

  15. #15
    Registered User
    Join Date
    Dec 2008
    Location
    California
    Posts
    37
    @Elysia

    What do you mean it is a serious problem? I know how to use those things because of my object oriented programming class. I know also how to use templates in C++ but only the basics. Do I need to master those things before going to 3D?

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Game Of Life 3D
    By blackslither in forum C Programming
    Replies: 8
    Last Post: 11-02-2008, 03:30 PM
  2. Were to Start Your Game Programming Carrer
    By C+noob in forum Game Programming
    Replies: 3
    Last Post: 07-14-2005, 01:33 AM
  3. How to start a game...?
    By TaraTheCasper in forum Game Programming
    Replies: 30
    Last Post: 10-24-2004, 09:20 PM
  4. 3d game
    By cgod in forum C++ Programming
    Replies: 10
    Last Post: 10-21-2004, 06:06 AM
  5. Need some help with a basic tic tac toe game
    By darkshadow in forum C Programming
    Replies: 1
    Last Post: 05-12-2002, 04:21 PM